go-xim/serialize_test.go

487 lines
12 KiB
Go
Raw Normal View History

2021-11-07 07:50:42 +00:00
package iid
import (
"testing"
)
func TestSerialize(t *testing.T) {
tests := []struct{
Value uint64
}{
{
Value: 0b0000000000000000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000000000000001,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000000000000010,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000000000000100,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000000000001000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000000000010000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000000000100000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000000001000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000000010000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000000100000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000001000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000010000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000000100000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000001000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000010000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000000100000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000001000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000010000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000000100000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000001000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000010000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000000100000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000001000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000010000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000100000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000001000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000010000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000100000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000001000000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000010000000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000001000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000010000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000100000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000001000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000010000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000100000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000000001000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000000010000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000000100000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000001000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000010000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000000100000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000001000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000010000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000000100000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000001000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000010000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000000100000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000001000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000010000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000000100000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000001000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000010000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000000100000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000001000000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000010000000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000000100000000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000001000000000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000010000000000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0000100000000000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0001000000000000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0010000000000000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0100000000000000000000000000000000000000000000000000000000000000,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111111111111110,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111111111111101,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111111111111011,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111111111110111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111111111101111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111111111011111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111111110111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111111101111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111111011111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111110111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111101111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111011111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111110111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111101111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111011111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111110111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111101111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111011111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111110111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111101111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111011111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111110111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111101111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111011111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111110111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111101111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111011111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111110111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111101111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111011111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111110111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111101111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111011111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111110111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111101111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111011111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111110111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111101111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111011111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111110111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111101111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111011111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111110111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111101111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111011111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111110111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111101111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111011111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111110111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111101111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111011111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111110111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111101111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111011111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111110111111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111101111111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111011111111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111110111111111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111101111111111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111011111111111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0110111111111111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0101111111111111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0011111111111111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111111111111111111111111111,
},
{
Value: 0b0000000000000000000000000000000000000000111111111111111111111111,
},
{
Value: 0b0111111111111111111111111111111111111111000000000000000000000000,
},
{
Value: 0b0000000000000000000000000000000000000000100000000000000000000001,
},
{
Value: 0b0100000000000000000000000000000000000001000000000000000000000000,
},
{
Value: 0b0000000001100001100001110110100111011001110000111111000101100100,
},
{
Value: 0b0000000001100001100001110110101000001110110110001111101101100001,
},
{
Value: 0b0000000001100001100001110110101000100000100100010111101000001110,
},
{
Value: 0b0000000001100001100001110110101000111010100110110011110001010101,
},
{
Value: 0b0000000001100001100001110110101001010010100011000011110001000100,
},
}
for testNumber, test := range tests {
var serialized string = serialize(test.Value)
actual, successful := unserialize(serialized)
if !successful {
t.Errorf("For test #%d, expected unserialization of serialized data to be successful but wasn't." , testNumber)
t.Logf("SUCCESSFUL: %t", successful)
t.Logf("VALUE: %064b", test.Value)
continue
}
if expected := test.Value; expected != actual {
t.Errorf("For test #%d, ", testNumber)
t.Logf("SUCCESSFUL: %t", successful)
t.Logf("EXPECTED: %064b", expected)
t.Logf("ACTUAL: %064b", actual)
continue
}
}
}