aboutsummaryrefslogtreecommitdiff
path: root/tests/test_nimpb.nim
blob: f6db94c2aa0cee44ca2d6f79927d812200301d8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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