-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuint128_xor_test.go
148 lines (128 loc) · 6.63 KB
/
uint128_xor_test.go
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
package bits128_test
import (
"testing"
"github.com/reiver/go-bits128"
)
func TestUint128_Xor(t *testing.T) {
tests := []struct{
Value1 bits128.Uint128
Value2 bits128.Uint128
Expected bits128.Uint128
}{
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000000,0x0000000000000000}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000000,0x0000000000000000}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000001,0x0000000000000000}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFE,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000001,0x0000000000000000}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFE,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000002,0x0000000000000000}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFD,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000002,0x0000000000000000}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFD,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000004,0x0000000000000000}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFB,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000004,0x0000000000000000}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFB,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000008,0x0000000000000000}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFF7,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000008,0x0000000000000000}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFF7,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0x60754ec013a1bddf,0xcd3226e094b432b6}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0x0b73602cd34bce78,0x45afb17b4e3bdc8d}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0x6B062EECC0EA73A7,0x889D979BDA8FEE3B}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000010,0x0000000000000000}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFEF,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000010,0x0000000000000000}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFEF,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000020,0x0000000000000000}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFDF,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000020,0x0000000000000000}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFDF,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000040,0x0000000000000000}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFBF,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000040,0x0000000000000000}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFBF,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000080,0x0000000000000000}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFF7F,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000080,0x0000000000000000}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFF7F,0xFFFFFFFFFFFFFFFF}),
},
{
Value1: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Value2: bits128.Uint128FromUintsLittleEndian([2]uint{0xFFFFFFFFFFFFFFFF,0xFFFFFFFFFFFFFFFF}),
Expected: bits128.Uint128FromUintsLittleEndian([2]uint{0x0000000000000000,0x0000000000000000}),
},
}
for testNumber, test := range tests {
var actual bits128.Uint128
actual.Xor(&test.Value1, &test.Value2)
{
expected := test.Expected
if expected != actual {
t.Errorf("For test #%d, the actual cmp-value is not what was expected." , testNumber)
t.Logf("EXPECTED: %v", expected)
t.Logf("ACTUAL: %v", actual)
t.Logf("VALUE-1: %v", test.Value1)
t.Logf("VALUE-2: %v", test.Value2)
continue
}
}
}
}