@@ -22,13 +22,8 @@ import {bgRed as red, bgBlack as black} from 'chalk';
2222
2323const debug = _debug ( { red, black} ) ;
2424
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 ;
3227
3328 const tree = RedBlackTree . from ( increasing , reference ) ;
3429 t . deepEqual (
@@ -37,8 +32,6 @@ test('RedBlackTree::remove', (t) => {
3732 'tree contains n items' ,
3833 ) ;
3934
40- // Console.log(reference);
41-
4235 const m = ( n / 2 ) | 0 ;
4336 for ( const i of range ( m ) ) {
4437 const x = reference [ i ] ;
@@ -79,7 +72,24 @@ test('RedBlackTree::remove', (t) => {
7972 }
8073
8174 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 ] ) ;
8393
8494test ( 'delete root with right child' , ( t ) => {
8595 const tree = new RedBlackTree ( increasing ) ;
0 commit comments