some support for fixed number

This commit is contained in:
sergeych committed 2023-04-01 16:12:20 +01:00
1 parent 5b8df2ff20
commit 86eb5e9d7f
8 files changed
+81 -15

No files matched your search

@@ -2,6 +2,7 @@ package bipack
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import net.sergeych.bintools.encodeToHex
import net.sergeych.bintools.toDump
import net.sergeych.bipack.*
import kotlin.experimental.xor
@@ -297,4 +298,28 @@ class BipackEncoderTest {
assertEquals(x, d.decodeFromBipack())
}
@Serializable
data class FI32(@Fixed val i: Int)
@Serializable
data class FU32(@Fixed val i: UInt)
@Serializable
data class FI16(@Fixed val i: Short)
@Serializable
data class FU16(@Fixed val i: UShort)
@Test
fun testFixedInt() {
val a= FI32(127)
println(BipackEncoder.encode(a).toDump())
assertContentEquals(byteArrayOf(0,0,0,0x7f), BipackEncoder.encode(a))
assertEquals("FF FF FF FF", BipackEncoder.encode(FI32(-1)).encodeToHex())
assertEquals(-1, BipackEncoder.encode(FI32(-1)).decodeFromBipack<FI32>().i)
assertEquals("FF FF FF FF", BipackEncoder.encode(FU32(0xFFFFFFFFu)).encodeToHex())
assertEquals("FF 01 02 03", BipackEncoder.encode(FU32(0xFF010203u)).encodeToHex())
assertEquals("FF 03", BipackEncoder.encode(FU16(0xFF03u)).encodeToHex())
assertEquals(0x7ffeu, BipackEncoder.encode(FU16(0x7ffeu)).decodeFromBipack<FU16>().i)
}
}