diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2018-04-04 19:37:28 +0300 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2018-04-04 19:37:28 +0300 |
| commit | 8ec494de47647016f5b60baf952a25b529a17077 (patch) | |
| tree | 1904efd56ee1204e222897bb8c05fb78bc80d7e6 | |
| parent | 242470f1aec66c967a774355b9a36b3f6bf83e1e (diff) | |
| download | nimpb-8ec494de47647016f5b60baf952a25b529a17077.tar.gz nimpb-8ec494de47647016f5b60baf952a25b529a17077.zip | |
Add test for zigzags
| -rw-r--r-- | tests/test_nimpb.nim | 39 |
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 |
