-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.js
More file actions
88 lines (72 loc) · 1.85 KB
/
test.js
File metadata and controls
88 lines (72 loc) · 1.85 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
81
82
83
84
85
86
87
88
const splitOuter = require('./')
function assertEqual(actual, expected) {
if (JSON.stringify(actual) !== JSON.stringify(expected)) {
console.error('Test failed')
console.error(' Actual: ', actual)
console.error(' Expected:', expected)
console.error(' Location:', new Error().stack)
console.error('')
}
}
// Empty string
assertEqual(splitOuter(''), [])
// Empty entries
assertEqual(splitOuter(','), ['', ''])
assertEqual(splitOuter(',;'), ['', '', ''])
// No delimiter in source
assertEqual(splitOuter('abc'), ['abc'])
// Simple cases
assertEqual(splitOuter('abc, def'), ['abc', ' def'])
assertEqual(splitOuter('abc,, def'), ['abc', '', ' def'])
assertEqual(splitOuter('abc, ;def'), ['abc', ' ', 'def'])
// Options 'trim' and 'empties'
assertEqual(splitOuter('abc, ;de, f', {trim: true, empties: false}), ['abc', 'de', 'f'])
// Special delimiter
assertEqual(splitOuter('lalalal', {separators: 'a'}), ['l', 'l', 'l', 'l'])
// Brackets
assertEqual(splitOuter(
'Maude (smart, wise), Harold (funny, talkative); Higgins (France, California); ',
{trim: true, empties: false}
), [
'Maude (smart, wise)',
'Harold (funny, talkative)',
'Higgins (France, California)'
]
)
// Multiple nested brackets
assertEqual(splitOuter(
'หาxx, _[used as surp[r,i]se, intหาogation; suspicion]_, n2; n(x,x)หา3, n4',
), [
'หาxx',
' _[used as surp[r,i]se, intหาogation; suspicion]_',
' n2',
' n(x,x)หา3',
' n4'
]
)
// Faulty nesting
assertEqual(splitOuter(
'this, (shoudl {,be) illegal},hm?',
), [
'this',
' (shoudl {,be) illegal}',
'hm?'
]
)
// Too few closing brackets
assertEqual(splitOuter(
'this, (shoudl {,be illegal}, ',
), [
'this',
' (shoudl {,be illegal}, '
]
)
// Too many closing brackets
assertEqual(splitOuter(
'this, shoudl {,be )illegal}, what?',
), [
'this',
' shoudl {,be )illegal}',
' what?'
]
)