Skip to content

Commit ebc01a1

Browse files
ovitrifclaude
andcommitted
test: add MSat unit tests
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 6170ff3 commit ebc01a1

1 file changed

Lines changed: 78 additions & 0 deletions

File tree

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package to.bitkit.models
2+
3+
import org.junit.Test
4+
import kotlin.test.assertEquals
5+
6+
class MSatTest {
7+
8+
// region ceil
9+
@Test
10+
fun `ceil returns exact sat for multiple of 1000`() {
11+
assertEquals(1uL, MSat(1000uL).ceil())
12+
}
13+
14+
@Test
15+
fun `ceil rounds up for non-multiple`() {
16+
assertEquals(2uL, MSat(1001uL).ceil())
17+
}
18+
19+
@Test
20+
fun `ceil rounds up for 1 msat`() {
21+
assertEquals(1uL, MSat(1uL).ceil())
22+
}
23+
24+
@Test
25+
fun `ceil rounds up for 999 msat`() {
26+
assertEquals(1uL, MSat(999uL).ceil())
27+
}
28+
29+
@Test
30+
fun `ceil returns zero for zero`() {
31+
assertEquals(0uL, MSat(0uL).ceil())
32+
}
33+
34+
@Test
35+
fun `ceil handles realistic payment amount`() {
36+
assertEquals(223uL, MSat(222_222uL).ceil())
37+
}
38+
// endregion
39+
40+
// region floor
41+
@Test
42+
fun `floor returns exact sat for multiple of 1000`() {
43+
assertEquals(2uL, MSat(2000uL).floor())
44+
}
45+
46+
@Test
47+
fun `floor truncates for non-multiple`() {
48+
assertEquals(1uL, MSat(1999uL).floor())
49+
}
50+
51+
@Test
52+
fun `floor returns zero for sub-sat value`() {
53+
assertEquals(0uL, MSat(999uL).floor())
54+
}
55+
56+
@Test
57+
fun `floor returns zero for zero`() {
58+
assertEquals(0uL, MSat(0uL).floor())
59+
}
60+
61+
@Test
62+
fun `floor handles realistic fee amount`() {
63+
assertEquals(222uL, MSat(222_222uL).floor())
64+
}
65+
// endregion
66+
67+
// region sugar functions
68+
@Test
69+
fun `msatCeilOf matches MSat ceil`() {
70+
assertEquals(MSat(1500uL).ceil(), msatCeilOf(1500uL))
71+
}
72+
73+
@Test
74+
fun `msatFloorOf matches MSat floor`() {
75+
assertEquals(MSat(1500uL).floor(), msatFloorOf(1500uL))
76+
}
77+
// endregion
78+
}

0 commit comments

Comments
 (0)