support for @Unsigned fields and fox bad error of kotlinjs x is Float glitch: it returns true for integers

This commit is contained in:
sergeych committed 2023-03-13 16:27:06 +01:00
1 parent 6bc01e9534
commit 0e8f3daf99
7 files changed
+103 -30

No files matched your search

@@ -64,4 +64,5 @@ class SmartintTest {
// }
}
}
}
@@ -40,6 +40,17 @@ data class FoobarFP1(val bar: Int, val foo: Int,val other: Int = -1)
class BipackEncoderTest {
@Serializable
data class FoobarSize(val i: Int)
@Test
fun testSize() {
println(BipackEncoder.encode(17).toDump())
assertEquals(1, BipackEncoder.encode(17).size)
// assertEquals(1, BipackEncoder.encode(FoobarSize(17)).size)
}
@Test
fun encodeSimple() {
val a = Foobar1(42)//, "bum")
@@ -87,13 +98,34 @@ class BipackEncoderTest {
}
@Serializable
data class FBU(val u: UInt, val i: Int)
data class FBU(
@Unsigned
val u: UInt,
@Unsigned
val i: Int,
val k: UInt = 3u)
@Test
fun testByteArray() {
// val z = Foobar1(42)//, "bum")
// println(BipackEncoder.encode(z).toDump())
val x = byteArrayOf(1,2,3)
println(BipackEncoder.encode(x).toDump())
println(BipackEncoder.encode("123").toDump())
println(BipackEncoder.encode(FBU(3u, 3)).toDump())
// println(BipackEncoder.encode(1U).toDump())
var d = BipackEncoder.encode(x)
println(d.toDump())
assertEquals(0x0c, d[0])
d = BipackEncoder.encode("123")
println(d.toDump())
assertEquals(0x0c, d[0])
val f = FBU(3u, 3)
d = BipackEncoder.encode(f)
println(d.toDump())
assertEquals(0x0c, d[0])
assertEquals(0x0c, d[1])
// Signed encoding despite UInt type:
assertEquals(0x18, d[2])
assertEquals(f, BipackDecoder.decode(d))
}
}