@@ -71,20 +71,25 @@ describe('SBTree', function () {
7171 var right = new Node ( 15 , root , Nil , Nil , 1 ) ;
7272 var leftLeft = new Node ( 10 , left , Nil , Nil , 1 ) ;
7373 left . left = leftLeft ;
74+ left . updateSize ( ) ;
7475 root . left = left ;
7576 root . right = right ;
77+ root . updateSize ( ) ;
78+ expect ( root . size ) . toBe ( 4 ) ;
79+
7680 updateChild ( left , leftLeft ) ;
7781 expect ( leftLeft . parent ) . toBe ( root ) ;
7882 expect ( root . left ) . toBe ( leftLeft ) ;
7983 updateChild ( leftLeft , Nil ) ;
8084 checkNil ( ) ;
8185 expect ( root . left ) . toBe ( Nil ) ;
86+ expect ( root . size ) . toBe ( 2 ) ;
8287 updateChild ( Nil , right ) ;
8388 expect ( right . parent ) . toBe ( Nil ) ;
8489 checkNil ( ) ;
8590 } ) ;
8691
87- it ( 'push and get 100000 elements' , function ( ) {
92+ it ( 'push and get 100000 elements, remove the array by always remove the first/last element ' , function ( ) {
8893 var sTree = new SBTree ( ) ;
8994 for ( var i = 0 ; i < 100000 ; ++ i ) {
9095 sTree . push ( i ) ;
@@ -93,5 +98,22 @@ describe('SBTree', function () {
9398 for ( var i = 0 ; i < 100000 ; ++ i ) {
9499 expect ( sTree . get ( i ) . value ) . toBe ( i ) ;
95100 }
101+ for ( var i = 0 ; i < 100000 ; ++ i ) {
102+ expect ( sTree . get ( 0 ) . value ) . toBe ( i ) ;
103+ var node = sTree . remove ( 0 ) ; // Always remove the first element;
104+ expect ( node . value ) . toBe ( i ) ;
105+ }
106+ checkNil ( ) ;
107+ expect ( sTree . _root ) . toBe ( Nil ) ;
108+ var count = 10000 ;
109+ for ( var i = 0 ; i < count ; ++ i ) {
110+ sTree . push ( i ) ;
111+ }
112+ for ( var i = 0 ; i < count ; ++ i ) {
113+ var node = sTree . remove ( count - i - 1 ) ; // Always remove the last element;
114+ expect ( node . value ) . toBe ( count - i - 1 ) ;
115+ expect ( sTree . size ) . toBe ( count - i - 1 ) ;
116+ }
117+ checkNil ( ) ;
96118 } ) ;
97119} ) ;
0 commit comments