-
Notifications
You must be signed in to change notification settings - Fork 0
/
mergesort.spec.js
61 lines (44 loc) · 1.55 KB
/
mergesort.spec.js
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
53
54
55
56
57
58
59
60
describe('Merge Sort', function(){
beforeEach(() => {
let swapCounter = 0;
let comparisonCounter = 0;
});
it('handles an empty array', function(){
expect( mergeSort([]) ).toEqual( [] );
});
it('handles an array with one element',function(){
expect ( mergeSort([14])).toEqual( [14] );
});
it('handles an ordered array',function(){
expect ( mergeSort([1, 2, 3])).toEqual( [1, 2, 3] );
});
it('handles a non-ordered array',function(){
expect ( mergeSort([6, 5, 4, 3, 2, 1])).toEqual( [1, 2, 3, 4, 5, 6] );
expect ( mergeSort([4, 5, 6, 1, 2, 3])).toEqual( [1, 2, 3, 4, 5, 6] );
});
it('handles a non-ordered array with duplicated numbers',function(){
expect ( mergeSort([6, 5, 4, 4, 3, 2, 1])).toEqual( [1, 2, 3, 4, 4, 5, 6] );
expect ( mergeSort([4, 5, 6, 1, 2, 4, 3])).toEqual( [1, 2, 3, 4, 4, 5, 6] );
});
it('handles an array mixing numbers and letters',function(){
expect ( mergeSort([6, 5, 'Patrick', 4, 'Fila', 2, 1])).toEqual( [1, 2, 4, 5, 6, 'Fila', 'Patrick'] );
});
});
describe('Split', function(){
beforeEach(() => {
let swapCounter = 0;
let comparisonCounter = 0;
});
it('splits an array of values in 2 and ',function(){
expect ( split([6, 5, 4, 3, 2, 1, 0])).toEqual( [ [ 6, 5, 4 ], [ 3, 2, 1, 0 ] ] );
});
});
describe('Merge', function(){
beforeEach(() => {
let swapCounter = 0;
let comparisonCounter = 0;
});
it('merges 2 sorted arrays into one array',function(){
expect ( merge([[1, 2, 4], [3, 5, 6]])).toEqual( [ 1, 2, 3, 4, 5, 6] );
});
});