@@ -12,6 +12,18 @@ func assertEq(t *testing.T, lhs interface{}, rhs interface{}) {
12
12
}
13
13
}
14
14
15
+ func assertEqTuple (t * testing.T , lhs * Tuple , rhs * Tuple ) {
16
+ if lhs .Ne (rhs ) {
17
+ t .Error (lhs , ".Ne(" , rhs , ")" )
18
+ }
19
+ }
20
+
21
+ func assertNeTuple (t * testing.T , lhs * Tuple , rhs * Tuple ) {
22
+ if lhs .Eq (rhs ) {
23
+ t .Error (lhs , ".Eq(" , rhs , ")" )
24
+ }
25
+ }
26
+
15
27
func TestNewTuple (t * testing.T ) {
16
28
tup := NewTuple (3 )
17
29
n := tup .Len ()
@@ -39,15 +51,45 @@ func TestNewTupleFromItems(t *testing.T) {
39
51
func TestCopy (t * testing.T ) {
40
52
t1 := NewTupleFromItems (1 , 2 , 3 )
41
53
t2 := t1 .Copy ()
42
- assertEq (t , t1 . Eq ( t2 ), true )
54
+ assertEqTuple (t , t1 , t2 )
43
55
t1 .Set (1 , 20 )
44
- assertEq (t , t1 . Eq ( NewTupleFromItems (1 , 20 , 3 )), true )
45
- assertEq (t , t2 . Eq ( NewTupleFromItems (1 , 2 , 3 )), true )
56
+ assertEqTuple (t , t1 , NewTupleFromItems (1 , 20 , 3 ))
57
+ assertEqTuple (t , t2 , NewTupleFromItems (1 , 2 , 3 ))
46
58
}
47
59
48
- func TestSlice (t * testing.T ) {
60
+ func TestData (t * testing.T ) {
49
61
tup := NewTupleFromItems (3 , 2 , 1 )
50
- assertEq (t , fmt .Sprintf ("%x" , tup .Slice ()), fmt .Sprintf ("%x" , []int {3 , 2 , 1 }))
62
+ assertEq (t , fmt .Sprintf ("%x" , tup .Data ()), fmt .Sprintf ("%x" , []int {3 , 2 , 1 }))
63
+ }
64
+
65
+ func TestSlice (t * testing.T ) {
66
+ tup := NewTupleFromItems (100 , 200 , 300 , 400 )
67
+ assertEqTuple (t , tup .Slice (0 , 0 ), NewTuple (0 ))
68
+ assertEqTuple (t , tup .Slice (0 , 1 ), NewTupleFromItems (100 ))
69
+ assertEqTuple (t , tup .Slice (0 , 3 ), NewTupleFromItems (100 , 200 , 300 ))
70
+ assertEqTuple (t , tup .Slice (0 , 10 ), NewTupleFromItems (100 , 200 , 300 , 400 ))
71
+ assertEqTuple (t , tup .Slice (1 , 2 ), NewTupleFromItems (200 ))
72
+ assertEqTuple (t , tup .Slice (2 , 4 ), NewTupleFromItems (300 , 400 ))
73
+ assertEqTuple (t , tup .Slice (4 , 4 ), NewTuple (0 ))
74
+ assertEqTuple (t , tup .Slice (10 , 100 ), NewTuple (0 ))
75
+ assertEqTuple (t , tup .Slice (- 1 , 100 ), NewTupleFromItems (400 ))
76
+ assertEqTuple (t , tup .Slice (- 3 , - 1 ), NewTupleFromItems (200 , 300 ))
77
+ }
78
+
79
+ func TestLeft (t * testing.T ) {
80
+ tup := NewTupleFromItems (100 , 200 , 300 , 400 )
81
+ assertEqTuple (t , tup .Left (0 ), NewTuple (0 ))
82
+ assertEqTuple (t , tup .Left (1 ), NewTupleFromItems (100 ))
83
+ assertEqTuple (t , tup .Left (3 ), NewTupleFromItems (100 , 200 , 300 ))
84
+ assertEqTuple (t , tup .Left (10 ), NewTupleFromItems (100 , 200 , 300 , 400 ))
85
+ }
86
+
87
+ func TestRight (t * testing.T ) {
88
+ tup := NewTupleFromItems (100 , 200 , 300 , 400 )
89
+ assertEqTuple (t , tup .Right (0 ), NewTuple (0 ))
90
+ assertEqTuple (t , tup .Right (1 ), NewTupleFromItems (400 ))
91
+ assertEqTuple (t , tup .Right (3 ), NewTupleFromItems (200 , 300 , 400 ))
92
+ assertEqTuple (t , tup .Right (10 ), NewTupleFromItems (100 , 200 , 300 , 400 ))
51
93
}
52
94
53
95
func TestOffset (t * testing.T ) {
@@ -87,15 +129,15 @@ func TestPopLeft(t *testing.T) {
87
129
x := tup .PopLeft ()
88
130
assertEq (t , x , 2 )
89
131
assertEq (t , tup .Len (), 3 )
90
- assertEq (t , tup . Eq ( NewTupleFromItems (4 , 6 , 8 )), true )
132
+ assertEqTuple (t , tup , NewTupleFromItems (4 , 6 , 8 ))
91
133
}
92
134
93
135
func TestPopRight (t * testing.T ) {
94
136
tup := NewTupleFromItems (1 , 3 , 5 , 7 )
95
137
x := tup .PopRight ()
96
138
assertEq (t , x , 7 )
97
139
assertEq (t , tup .Len (), 3 )
98
- assertEq (t , tup . Eq ( NewTupleFromItems (1 , 3 , 5 )), true )
140
+ assertEqTuple (t , tup , NewTupleFromItems (1 , 3 , 5 ))
99
141
}
100
142
101
143
func TestEq (t * testing.T ) {
@@ -104,22 +146,22 @@ func TestEq(t *testing.T) {
104
146
tup2 .Set (0 , 3 )
105
147
tup2 .Set (1 , 6 )
106
148
tup2 .Set (2 , 9 )
107
- assertEq (t , tup1 . Eq ( tup2 ), true )
149
+ assertEqTuple (t , tup1 , tup2 )
108
150
assertEq (t , tup1 .Ne (tup2 ), false )
109
151
110
152
tup5 := NewTupleFromItems (int16 (100 ), int32 (200 ), int64 (300 ))
111
153
tup6 := NewTupleFromItems (int8 (100 ), int16 (200 ), int32 (300 ))
112
- assertEq (t , tup5 . Eq ( tup6 ), true )
154
+ assertEqTuple (t , tup5 , tup6 )
113
155
114
156
tup7 := NewTupleFromItems (nil , nil , nil )
115
157
tup8 := NewTuple (3 )
116
- assertEq (t , tup7 . Eq ( tup8 ), true )
158
+ assertEqTuple (t , tup7 , tup8 )
117
159
118
160
tup9 := NewTupleFromItems (NewTupleFromItems (1 , 2 ), NewTupleFromItems (5 , 10 ), NewTupleFromItems (10 , 20 ))
119
161
tup10 := NewTupleFromItems (NewTupleFromItems (1 , 2 ), NewTupleFromItems (5 , 10 ), NewTupleFromItems (10 , 20 ))
120
- assertEq (t , tup9 . Eq ( tup10 ), true )
162
+ assertEqTuple (t , tup9 , tup10 )
121
163
tup11 := NewTupleFromItems (NewTupleFromItems (1 , 2 ), NewTupleFromItems (3 , 10 ), NewTupleFromItems (10 , 20 ))
122
- assertEq (t , tup10 . Eq ( tup11 ), false )
164
+ assertNeTuple (t , tup10 , tup11 )
123
165
124
166
}
125
167
@@ -187,7 +229,7 @@ func TestReverse(t *testing.T) {
187
229
tup1 := NewTupleFromItems (1 , 3 , 5 , 7 , 9 , 11 , 13 )
188
230
tup1 .Reverse ()
189
231
tup2 := NewTupleFromItems (13 , 11 , 9 , 7 , 5 , 3 , 1 )
190
- assertEq (t , tup1 . Eq ( tup2 ), true )
232
+ assertEqTuple (t , tup1 , tup2 )
191
233
}
192
234
193
235
func TestIndex (t * testing.T ) {
@@ -212,7 +254,7 @@ func TestCount(t *testing.T) {
212
254
func TestSortInternal (t * testing.T ) {
213
255
tup1 := NewTupleFromItems (1 , 9 , 7 , 2 , 3 , 10 , 5 , 4 , 8 , 6 )
214
256
sort .Sort (tup1 )
215
- assertEq (t , tup1 . Eq ( NewTupleFromItems (1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 )), true )
257
+ assertEqTuple (t , tup1 , NewTupleFromItems (1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ))
216
258
}
217
259
218
260
func TestSortTuples (t * testing.T ) {
@@ -224,42 +266,31 @@ func TestSortTuples(t *testing.T) {
224
266
tups [1 ] = tup1
225
267
tups [2 ] = tup2
226
268
sort .Sort (ByElem (tups ))
227
- assertEq (t , tups [0 ]. Eq ( tup1 ), true )
228
- assertEq (t , tups [1 ]. Eq ( tup2 ), true )
229
- assertEq (t , tups [2 ]. Eq ( tup0 ), true )
269
+ assertEqTuple (t , tups [0 ], tup1 )
270
+ assertEqTuple (t , tups [1 ], tup2 )
271
+ assertEqTuple (t , tups [2 ], tup0 )
230
272
}
231
273
232
274
func TestAppend (t * testing.T ) {
233
275
tup0 := NewTupleFromItems (1 , 2 , 3 )
234
276
tup1 := NewTupleFromItems ("a" , "b" , "c" )
235
277
tup0 .Append (tup1 )
236
- assertEq (t , tup0 . Eq ( NewTupleFromItems (1 , 2 , 3 , "a" , "b" , "c" )), true )
278
+ assertEqTuple (t , tup0 , NewTupleFromItems (1 , 2 , 3 , "a" , "b" , "c" ))
237
279
tup1 .AppendItems ("d" , "e" , "f" )
238
- assertEq (t , tup1 . Eq ( NewTupleFromItems ("a" , "b" , "c" , "d" , "e" , "f" )), true )
280
+ assertEqTuple (t , tup1 , NewTupleFromItems ("a" , "b" , "c" , "d" , "e" , "f" ))
239
281
// TODO: try with reference elements, show they are not deep copied during the append
240
282
}
241
283
242
284
func TestInsert (t * testing.T ) {
243
285
tup0 := NewTupleFromItems (1 , 2 , 3 )
244
286
tup1 := NewTupleFromItems ("a" , "b" , "c" )
245
287
tup0 .Insert (0 , tup1 )
246
- assertEq (t , tup0 . Eq ( NewTupleFromItems ("a" , "b" , "c" , 1 , 2 , 3 )), true )
288
+ assertEqTuple (t , tup0 , NewTupleFromItems ("a" , "b" , "c" , 1 , 2 , 3 ))
247
289
248
290
tup2 := NewTupleFromItems (10 , 20 )
249
291
tup1 .Insert (1 , tup2 )
250
- assertEq (t , tup1 . Eq ( NewTupleFromItems ("a" , 10 , 20 , "b" , "c" )), true )
292
+ assertEqTuple (t , tup1 , NewTupleFromItems ("a" , 10 , 20 , "b" , "c" ))
251
293
252
294
tup1 .Insert (- 1 , NewTupleFromItems ("x" , "y" , "z" ))
253
- assertEq (t , tup1 .Eq (NewTupleFromItems ("a" , 10 , 20 , "b" , "x" , "y" , "z" , "c" )), true )
254
-
255
- }
256
-
257
- /*
258
- func TestWTF(t *testing.T) {
259
- if nil == nil {
260
- fmt.Println("nil equals nil")
261
- } else {
262
- fmt.Println("nil does not equal nil")
263
- }
295
+ assertEqTuple (t , tup1 , NewTupleFromItems ("a" , 10 , 20 , "b" , "x" , "y" , "z" , "c" ))
264
296
}
265
- */
0 commit comments