This repository was archived by the owner on Dec 12, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 504
Expand file tree
/
Copy pathquick-sort.js
More file actions
52 lines (39 loc) · 1.32 KB
/
Copy pathquick-sort.js
File metadata and controls
52 lines (39 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
'use strict';
var assert = require('assert');
var quickSort = require('../../solutions/javascript/quick-sort');
describe('Quick Sort', function(){
it('throws error if input not an array', function() {
try {
quickSort(null);
} catch (err) {
return;
}
assert(false, 'Expected exception to be thrown.');
});
it('handles empty list', function() {
var results = quickSort([]);
assert(Array.isArray(results), 'Expected result to be array');
assert(results.length === 0, 'Expected array to be empty');
});
it('handles list of one', function() {
var results = quickSort([1]);
assert.deepEqual(results, [1], 'Expected arrays to match');
});
it('sorts an array of numbers', function() {
var unsorted = [9, 8, 7, 6, 5, 4, 3, 2, 1];
var sorted = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var results = quickSort(unsorted);
assert.deepEqual(results, sorted, 'Expected arrays to match');
});
it('sorts an array of words', function() {
var words = ['carrot','beta','apple'];
var sorted = ['apple','beta','carrot'];
var results = quickSort(words);
assert.deepEqual(results, sorted, 'Expected arrays to match');
});
it('leaves input array intact', function() {
var words = ['apple','beta','carrot'];
quickSort(words);
assert(words.length === 3);
});
});