aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2018-04-04 19:37:28 +0300
committerOskari Timperi <oskari.timperi@iki.fi>2018-04-04 19:37:28 +0300
commit8ec494de47647016f5b60baf952a25b529a17077 (patch)
tree1904efd56ee1204e222897bb8c05fb78bc80d7e6
parent242470f1aec66c967a774355b9a36b3f6bf83e1e (diff)
downloadnimpb-8ec494de47647016f5b60baf952a25b529a17077.tar.gz
nimpb-8ec494de47647016f5b60baf952a25b529a17077.zip
Add test for zigzags
-rw-r--r--tests/test_nimpb.nim39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/test_nimpb.nim b/tests/test_nimpb.nim
new file mode 100644
index 0000000..f6db94c
--- /dev/null
+++ b/tests/test_nimpb.nim
@@ -0,0 +1,39 @@
+import unittest
+
+import nimpb/nimpb
+
+test "zigzag encode 32bit":
+ assert zigzagEncode(int32(0)) == uint32(0)
+ assert zigzagEncode(int32(-1)) == uint32(1)
+ assert zigzagEncode(int32(1)) == uint32(2)
+ assert zigzagEncode(int32(-2)) == uint32(3)
+ assert zigzagEncode(int32(2)) == uint32(4)
+ assert zigzagEncode(int32(2147483647)) == uint32(4294967294)
+ assert zigzagEncode(int32(-2147483648)) == uint32(4294967295)
+
+test "zigzag decode 32bit":
+ assert zigzagDecode(uint32(0)) == int32(0)
+ assert zigzagDecode(uint32(1)) == int32(-1)
+ assert zigzagDecode(uint32(2)) == int32(1)
+ assert zigzagDecode(uint32(3)) == int32(-2)
+ assert zigzagDecode(uint32(4)) == int32(2)
+ assert zigzagDecode(uint32(4294967294)) == int32(2147483647)
+ assert zigzagDecode(uint32(4294967295)) == int32(-2147483648)
+
+test "zigzag encode 64bit":
+ assert zigzagEncode(int64(0)) == uint64(0)
+ assert zigzagEncode(int64(-1)) == uint64(1)
+ assert zigzagEncode(int64(1)) == uint64(2)
+ assert zigzagEncode(int64(-2)) == uint64(3)
+ assert zigzagEncode(int64(2)) == uint64(4)
+ assert zigzagEncode(9223372036854775807'i64) == 18446744073709551614'u64
+ assert zigzagEncode(-9223372036854775807'i64 - 1'i64) == 18446744073709551615'u64
+
+test "zigzag decode 64bit":
+ assert zigzagDecode(uint64(0)) == int64(0)
+ assert zigzagDecode(uint64(1)) == int64(-1)
+ assert zigzagDecode(uint64(2)) == int64(1)
+ assert zigzagDecode(uint64(3)) == int64(-2)
+ assert zigzagDecode(uint64(4)) == int64(2)
+ assert zigzagDecode(18446744073709551614'u64) == 9223372036854775807'i64
+ assert zigzagDecode(18446744073709551615'u64) == -9223372036854775807'i64 - 1'i64