@@ -18,6 +18,8 @@ import (
18
18
"math/rand"
19
19
"reflect"
20
20
"testing"
21
+
22
+ "github.com/stretchr/testify/require"
21
23
)
22
24
23
25
// TestIntervalTreeInsert tests interval tree insertion.
@@ -53,9 +55,7 @@ func TestIntervalTreeInsert(t *testing.T) {
53
55
54
56
tr := ivt .(* intervalTree )
55
57
visits := tr .visitLevel ()
56
- if ! reflect .DeepEqual (expected , visits ) {
57
- t .Fatalf ("level order expected %v, got %v" , expected , visits )
58
- }
58
+ require .Truef (t , reflect .DeepEqual (expected , visits ), "level order expected %v, got %v" , expected , visits )
59
59
}
60
60
61
61
// TestIntervalTreeSelfBalanced ensures range tree is self-balanced after inserting ranges to the tree.
@@ -107,13 +107,9 @@ func TestIntervalTreeSelfBalanced(t *testing.T) {
107
107
108
108
tr := ivt .(* intervalTree )
109
109
visits := tr .visitLevel ()
110
- if ! reflect .DeepEqual (expected , visits ) {
111
- t .Fatalf ("level order expected %v, got %v" , expected , visits )
112
- }
110
+ require .Truef (t , reflect .DeepEqual (expected , visits ), "level order expected %v, got %v" , expected , visits )
113
111
114
- if visits [len (visits )- 1 ].depth != 3 {
115
- t .Fatalf ("expected self-balanced tree with last level 3, but last level got %d" , visits [len (visits )- 1 ].depth )
116
- }
112
+ require .Equalf (t , 3 , visits [len (visits )- 1 ].depth , "expected self-balanced tree with last level 3, but last level got %d" , visits [len (visits )- 1 ].depth )
117
113
}
118
114
119
115
// TestIntervalTreeDelete ensures delete operation maintains red-black tree properties.
@@ -214,15 +210,11 @@ func TestIntervalTreeDelete(t *testing.T) {
214
210
{root : NewInt64Interval (953 , 954 ), color : red , left : newInt64EmptyInterval (), right : newInt64EmptyInterval (), depth : 4 },
215
211
}
216
212
visitsBeforeDelete := tr .visitLevel ()
217
- if ! reflect .DeepEqual (expectedBeforeDelete , visitsBeforeDelete ) {
218
- t .Fatalf ("level order after insertion expected %v, got %v" , expectedBeforeDelete , visitsBeforeDelete )
219
- }
213
+ require .Truef (t , reflect .DeepEqual (expectedBeforeDelete , visitsBeforeDelete ), "level order after insertion expected %v, got %v" , expectedBeforeDelete , visitsBeforeDelete )
220
214
221
215
// delete the node "514"
222
216
range514 := NewInt64Interval (514 , 515 )
223
- if deleted := tr .Delete (NewInt64Interval (514 , 515 )); ! deleted {
224
- t .Fatalf ("range %v not deleted" , range514 )
225
- }
217
+ require .Truef (t , tr .Delete (NewInt64Interval (514 , 515 )), "range %v not deleted" , range514 )
226
218
227
219
expectedAfterDelete514 := []visitedInterval {
228
220
{root : NewInt64Interval (510 , 511 ), color : black , left : NewInt64Interval (82 , 83 ), right : NewInt64Interval (830 , 831 ), depth : 0 },
@@ -246,15 +238,11 @@ func TestIntervalTreeDelete(t *testing.T) {
246
238
{root : NewInt64Interval (953 , 954 ), color : red , left : newInt64EmptyInterval (), right : newInt64EmptyInterval (), depth : 4 },
247
239
}
248
240
visitsAfterDelete514 := tr .visitLevel ()
249
- if ! reflect .DeepEqual (expectedAfterDelete514 , visitsAfterDelete514 ) {
250
- t .Fatalf ("level order after deleting '514' expected %v, got %v" , expectedAfterDelete514 , visitsAfterDelete514 )
251
- }
241
+ require .Truef (t , reflect .DeepEqual (expectedAfterDelete514 , visitsAfterDelete514 ), "level order after deleting '514' expected %v, got %v" , expectedAfterDelete514 , visitsAfterDelete514 )
252
242
253
243
// delete the node "11"
254
244
range11 := NewInt64Interval (11 , 12 )
255
- if deleted := tr .Delete (NewInt64Interval (11 , 12 )); ! deleted {
256
- t .Fatalf ("range %v not deleted" , range11 )
257
- }
245
+ require .Truef (t , tr .Delete (NewInt64Interval (11 , 12 )), "range %v not deleted" , range11 )
258
246
259
247
expectedAfterDelete11 := []visitedInterval {
260
248
{root : NewInt64Interval (510 , 511 ), color : black , left : NewInt64Interval (383 , 384 ), right : NewInt64Interval (830 , 831 ), depth : 0 },
@@ -277,9 +265,7 @@ func TestIntervalTreeDelete(t *testing.T) {
277
265
{root : NewInt64Interval (953 , 954 ), color : red , left : newInt64EmptyInterval (), right : newInt64EmptyInterval (), depth : 4 },
278
266
}
279
267
visitsAfterDelete11 := tr .visitLevel ()
280
- if ! reflect .DeepEqual (expectedAfterDelete11 , visitsAfterDelete11 ) {
281
- t .Fatalf ("level order after deleting '11' expected %v, got %v" , expectedAfterDelete11 , visitsAfterDelete11 )
282
- }
268
+ require .Truef (t , reflect .DeepEqual (expectedAfterDelete11 , visitsAfterDelete11 ), "level order after deleting '11' expected %v, got %v" , expectedAfterDelete11 , visitsAfterDelete11 )
283
269
}
284
270
285
271
func TestIntervalTreeIntersects (t * testing.T ) {
@@ -323,9 +309,7 @@ func TestIntervalTreeStab(t *testing.T) {
323
309
ivt .Insert (NewStringInterval ("0" , "3" ), 0 )
324
310
325
311
tr := ivt .(* intervalTree )
326
- if tr .root .max .Compare (StringComparable ("8" )) != 0 {
327
- t .Fatalf ("wrong root max got %v, expected 8" , tr .root .max )
328
- }
312
+ require .Equalf (t , 0 , tr .root .max .Compare (StringComparable ("8" )), "wrong root max got %v, expected 8" , tr .root .max )
329
313
if x := len (ivt .Stab (NewStringPoint ("0" ))); x != 3 {
330
314
t .Errorf ("got %d, expected 3" , x )
331
315
}
@@ -381,12 +365,8 @@ func TestIntervalTreeRandom(t *testing.T) {
381
365
for ab := range ivs {
382
366
for xy := range ivs {
383
367
v := xy .x + int64 (rand .Intn (int (xy .y - xy .x )))
384
- if slen := len (ivt .Stab (NewInt64Point (v ))); slen == 0 {
385
- t .Fatalf ("expected %v stab non-zero for [%+v)" , v , xy )
386
- }
387
- if ! ivt .Intersects (NewInt64Point (v )) {
388
- t .Fatalf ("did not get %d as expected for [%+v)" , v , xy )
389
- }
368
+ require .NotEmptyf (t , ivt .Stab (NewInt64Point (v )), "expected %v stab non-zero for [%+v)" , v , xy )
369
+ require .Truef (t , ivt .Intersects (NewInt64Point (v )), "did not get %d as expected for [%+v)" , v , xy )
390
370
}
391
371
if ! ivt .Delete (NewInt64Interval (ab .x , ab .y )) {
392
372
t .Errorf ("did not delete %v as expected" , ab )
0 commit comments