@@ -4,10 +4,21 @@ var assert = require('assert');
4
4
var quickSort = require ( '../../solutions/javascript/quick-sort' ) ;
5
5
6
6
describe ( 'Quick Sort' , function ( ) {
7
- var unsorted = [ 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ] ;
8
- var sorted = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] ;
7
+
8
+ it ( 'handles empty list' , function ( ) {
9
+ var results = quickSort ( [ ] ) ;
10
+ assert ( Array . isArray ( results ) , 'Expected result to be array' ) ;
11
+ assert ( results . length === 0 , 'Expected array to be empty' ) ;
12
+ } ) ;
13
+
14
+ it ( 'handles list of one' , function ( ) {
15
+ var results = quickSort ( [ 1 ] ) ;
16
+ assert . deepEqual ( results , [ 1 ] , 'Expected arrays to match' ) ;
17
+ } ) ;
9
18
10
19
it ( 'sorts an array of numbers' , function ( ) {
20
+ var unsorted = [ 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ] ;
21
+ var sorted = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] ;
11
22
var results = quickSort ( unsorted ) ;
12
23
assert . deepEqual ( results , sorted , 'Expected arrays to match' ) ;
13
24
} ) ;
@@ -20,4 +31,11 @@ describe('Quick Sort', function(){
20
31
assert . deepEqual ( results , sorted , 'Expected arrays to match' ) ;
21
32
} ) ;
22
33
34
+ it ( 'leaves input array intact' , function ( ) {
35
+ var words = [ 'apple' , 'beta' , 'carrot' ] ;
36
+ quickSort ( words ) ;
37
+ assert ( words . length === 3 ) ;
38
+ } ) ;
39
+
40
+
23
41
} ) ;
0 commit comments