@@ -22,13 +22,8 @@ import {bgRed as red, bgBlack as black} from 'chalk';
22
22
23
23
const debug = _debug ( { red, black} ) ;
24
24
25
- test ( 'RedBlackTree::remove' , ( t ) => {
26
- const n = 10000 ;
27
- const reference = list ( range ( n ) ) ;
28
- shuffle ( reference , 0 , n ) ;
29
-
30
- // Const reference = [3,0,2,4,1];
31
- // const n = reference.length ;
25
+ const macro = ( t , reference ) => {
26
+ const n = reference . length ;
32
27
33
28
const tree = RedBlackTree . from ( increasing , reference ) ;
34
29
t . deepEqual (
@@ -37,8 +32,6 @@ test('RedBlackTree::remove', (t) => {
37
32
'tree contains n items' ,
38
33
) ;
39
34
40
- // Console.log(reference);
41
-
42
35
const m = ( n / 2 ) | 0 ;
43
36
for ( const i of range ( m ) ) {
44
37
const x = reference [ i ] ;
@@ -79,7 +72,24 @@ test('RedBlackTree::remove', (t) => {
79
72
}
80
73
81
74
t . deepEqual ( list ( tree ) , [ ] , 'tree is empty' ) ;
82
- } ) ;
75
+ } ;
76
+
77
+ macro . title = ( title , reference ) =>
78
+ title ||
79
+ 'Test RedBlackTree::remove with ' +
80
+ ( reference . length >= 10
81
+ ? `${ reference . length } elements`
82
+ : JSON . stringify ( reference ) ) ;
83
+
84
+ const n = 10000 ;
85
+ const huge_list = list ( range ( n ) ) ;
86
+ shuffle ( huge_list , 0 , n ) ;
87
+ test ( macro , huge_list ) ;
88
+
89
+ test ( macro , [ 5 , 3 , 2 , 6 , 7 , 8 , 4 , 1 ] ) ;
90
+ test ( macro , [ 5 , 3 , 2 , 6 , 7 , 8 , 4 ] ) ;
91
+ test ( macro , [ 5 , 3 , 2 , 6 , 7 , 8 ] ) ;
92
+ test ( macro , [ 5 , 3 , 2 , 6 , 7 ] ) ;
83
93
84
94
test ( 'delete root with right child' , ( t ) => {
85
95
const tree = new RedBlackTree ( increasing ) ;
0 commit comments