Example #1
0
test( 'RedBlackTree::has' , t => {

	for ( const compare of [ increasing , decreasing ] ) {

		const tree = new RedBlackTree( compare ) ;

		t.falsy( tree.has( 0 ) ) ;

		const n = 10000 ;
		const reference = [ ] ;

		for ( let i of range( n ) ) {
			const x = Math.random() ;
			tree.add( x ) ;
			reference.push( x ) ;
		}

		for ( let x of reference ) {
			t.truthy( tree.has( x ) ) ;
		}

		t.falsy( tree.has( -1 ) ) ;
		t.falsy( tree.has( n ) ) ;

	}

});
Example #2
0
test( 'RedBlackTree::range' , t => {

	for ( const [ s , compare ] of [ [ 1 , increasing ] , [ -1 , decreasing ] ] ) {

		const n = 10000 ;
		const reference = range( n ) ;
		shuffle( reference , 0 , n ) ;

		const tree = RedBlackTree.from( compare , reference ) ;

		const x = ( a , b ) => t.deepEqual( list( tree.range( a , b ) ) , list( range( a , b , s ) ) ) ;

		x( 0 , n ) ;
		x( 10 , 20 ) ;
		x( 20 , 10 ) ;
		x( 7 , 13 ) ;
		x( 13 , 7 ) ;
		x( n - 1 , -1 ) ;
		x( 10 , 10 ) ;

	}

});
Example #3
0
		const x = ( a , b ) => t.deepEqual( list( tree.range( a , b ) ) , list( range( a , b , s ) ) ) ;