import { sortPush } from "../utils/sortPush" ; const sortFn = ( a , b ) => a - b ; it ( "should sort push length=0" , ( ) => { const a = [ ] ; const x = - 1 ; const res = [ ... a , x ] . sort ( sortFn ) ; sortPush ( a , x , sortFn ) ; expect ( a ) . toEqual ( res ) ; } ) ; it ( "should sort push under" , ( ) => { const a = [ 1 , 2 , 3 , 4 , 5 ] ; const x = - 1 ; const res = [ ... a , x ] . sort ( sortFn ) ; sortPush ( a , x , sortFn ) ; expect ( a ) . toEqual ( res ) ; } ) ; it ( "should sort push 0" , ( ) => { const a = [ 1 , 2 , 3 , 4 , 5 ] ; const x = 1 ; const res = [ ... a , x ] . sort ( sortFn ) ; sortPush ( a , x , sortFn ) ; expect ( a ) . toEqual ( res ) ; } ) ; it ( "should sort push end" , ( ) => { const a = [ 1 , 2 , 3 , 4 , 5 ] ; const x = 5 ; const res = [ ... a , x ] . sort ( sortFn ) ; sortPush ( a , x , sortFn ) ; expect ( a ) . toEqual ( res ) ; } ) ; it ( "should sort push over" , ( ) => { const a = [ 1 , 2 , 3 , 4 , 5 ] ; const x = 10 ; const res = [ ... a , x ] . sort ( sortFn ) ; sortPush ( a , x , sortFn ) ; expect ( a ) . toEqual ( res ) ; } ) ; it ( "should sort push inside" , ( ) => { const a = [ 1 , 2 , 3 , 4 , 5 ] ; const x = 1.5 ; const res = [ ... a , x ] . sort ( sortFn ) ; sortPush ( a , x , sortFn ) ; expect ( a ) . toEqual ( res ) ; } ) ; describe ( "benchmark" , ( ) => { const n = 200 ; const samples = Array . from ( { length : 5000 } , ( ) => [ Math . random ( ) , Array . from ( { length : n } , ( ) => Math . random ( ) ) , ] ) ; const s0 = samples . map ( ( [ x , arr ] ) => [ x , arr . slice ( ) ] ) ; const s1 = samples . map ( ( [ x , arr ] ) => [ x , arr . slice ( ) ] ) ; it ( "push + sort" , ( ) => { for ( const [ x , arr ] of s0 ) { arr . push ( x ) ; arr . sort ( sortFn ) ; } } ) ; it ( "sortPush" , ( ) => { for ( const [ x , arr ] of s1 ) { sortPush ( arr , x , sortFn ) ; } } ) ; } ) ;