-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.js
More file actions
80 lines (59 loc) · 2.46 KB
/
test.js
File metadata and controls
80 lines (59 loc) · 2.46 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import slice from './';
describe('nano-slice', () => {
test('array', () => {
const arr = [1, '2', 3, '4', 5, '6', 7, '8', 9, '0'];
expect(slice(arr)[200]).toEqual([undefined]);
expect(slice(arr)['2']).toEqual([3]);
expect(slice(arr)[2]).toEqual([3]);
expect(slice(arr)['0:3']).toEqual([1, '2', 3]);
expect(slice(arr)['2:5']).toEqual([3, '4', 5]);
expect(slice(arr)[':2']).toEqual([1, '2']);
expect(slice(arr)[':-2']).toEqual([1, '2', 3, '4', 5, '6', 7, '8']);
expect(slice(arr)['2:']).toEqual([3, '4', 5, '6', 7, '8', 9, '0']);
expect(slice(arr)['-2:']).toEqual([9, '0']);
expect(slice(arr)[':']).toEqual([1, '2', 3, '4', 5, '6', 7, '8', 9, '0']);
expect(slice(arr)['::3']).toEqual([1, '4', 7, '0']);
expect(slice(arr)['1:5:2']).toEqual(['2', '4']);
expect(slice(arr)['-5:-1']).toEqual(['6', 7, '8', 9]);
expect(slice(arr)['-5:-1:2']).toEqual(['6', '8']);
expect(slice(arr)['5:1:-2']).toEqual(['6', '4']);
expect(slice(arr)['-1:0:-1']).toEqual(['0', 9, '8', 7, '6', 5, '4', 3, '2']);
expect(slice(arr)['-1:-5']).toEqual([]);
expect(slice(arr)['-5:-1:-1']).toEqual([]);
expect(slice(arr)[':20']).toEqual([1, '2', 3, '4', 5, '6', 7, '8', 9, '0']);
});
test('string', () => {
const str = '1234567890';
expect(slice(str)[200]).toEqual('');
expect(slice(str)['2']).toEqual('3');
expect(slice(str)[2]).toEqual('3');
expect(slice(str)['0:3']).toEqual('123');
expect(slice(str)['2:5']).toEqual('345');
expect(slice(str)[':2']).toEqual('12');
expect(slice(str)[':-2']).toEqual('12345678');
expect(slice(str)['2:']).toEqual('34567890');
expect(slice(str)['-2:']).toEqual('90');
expect(slice(str)[':']).toEqual('1234567890');
expect(slice(str)['::3']).toEqual('1470');
expect(slice(str)['1:5:2']).toEqual('24');
expect(slice(str)['-5:-1']).toEqual('6789');
expect(slice(str)['-5:-1:2']).toEqual('68');
expect(slice(str)['5:1:-2']).toEqual('64');
expect(slice(str)['-1:0:-1']).toEqual('098765432');
expect(slice(str)['-1:-5']).toEqual('');
expect(slice(str)['-5:-1:-1']).toEqual('');
expect(slice(str)[':20']).toEqual('1234567890');
});
test('exception', () => {
expect(() => {
slice('1234567890')['-1:9:0'];
}).toThrow('Step can not be zero!');
expect(() => {
slice(123)['-1:9:0'];
}).toThrow('Only string and array can be sliced!');
});
test('monkey', () => {
// TODO
// random path to run.
});
});