@@ -2,6 +2,19 @@ var bubbleSort = require('../src/sorting/bubblesort/bubblesort.js')
22
33describe ( 'Bubble sort' , function ( ) {
44
5+ function createRandomArray ( options ) {
6+ options = options || { } ;
7+ var size = options . size || 100 ,
8+ precision = options . precision || 2 ,
9+ multiplier = options . multiplier || 100 ;
10+
11+ var result = [ ] ;
12+ for ( var i = size ; i > 0 ; i -= 1 ) {
13+ result . push ( parseFloat ( ( Math . random ( ) * multiplier ) . toFixed ( precision ) ) ) ;
14+ }
15+ return result ;
16+ }
17+
518 it ( 'should work with empty array' , function ( ) {
619 expect ( bubbleSort ( [ ] ) ) . toEqual ( [ ] ) ;
720 } ) ;
@@ -12,19 +25,6 @@ describe('Bubble sort', function () {
1225
1326 it ( 'should work with random non-sorted arrays' , function ( ) {
1427
15- function createRandomArray ( options ) {
16- options = options || { } ;
17- var size = options . size || 100 ,
18- precision = options . precision || 2 ,
19- multiplier = options . multiplier || 100 ;
20-
21- var result = [ ] ;
22- for ( var i = size ; i > 0 ; i -= 1 ) {
23- result . push ( parseFloat ( ( Math . random ( ) * multiplier ) . toFixed ( precision ) ) ) ;
24- }
25- return result ;
26- }
27-
2828 var array = createRandomArray ( ) ;
2929 bubbleSort ( array ) ;
3030
@@ -33,4 +33,17 @@ describe('Bubble sort', function () {
3333 }
3434 } ) ;
3535
36+ it ( 'should sort the numbers in descending order when such comparator is provided' , function ( ) {
37+ function comparator ( a , b ) {
38+ return b - a ;
39+ }
40+
41+ var array = createRandomArray ( ) ;
42+ bubbleSort ( array , comparator ) ;
43+
44+ for ( var i = 0 ; i < array . length - 1 ; i += 1 ) {
45+ expect ( array [ i ] >= array [ i + 1 ] ) . toBeTruthy ( ) ;
46+ }
47+ } ) ;
48+
3649} ) ;
0 commit comments