atomic-fns 0.3.5 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/{core → dist}/collections/BTree.d.ts +6 -6
- package/{core → dist}/collections/BTree.js +17 -17
- package/{core → dist}/collections/Heap.d.ts +3 -3
- package/{core → dist}/collections/Heap.js +0 -0
- package/dist/collections/LRUCache.d.ts +80 -0
- package/dist/collections/LRUCache.js +126 -0
- package/{core → dist}/collections/SortedMap.d.ts +2 -2
- package/{core → dist}/collections/SortedMap.js +0 -0
- package/{core → dist}/collections/SortedSet.d.ts +3 -3
- package/{core → dist}/collections/SortedSet.js +1 -1
- package/{core → dist}/collections/SortedTree.d.ts +3 -3
- package/{core → dist}/collections/SortedTree.js +1 -1
- package/{core → dist}/collections/SplayTree.d.ts +5 -5
- package/{core → dist}/collections/SplayTree.js +0 -0
- package/{core → dist}/collections/abc.d.ts +0 -0
- package/{core → dist}/collections/abc.js +0 -0
- package/{core → dist}/collections/deque.d.ts +6 -6
- package/{core → dist}/collections/deque.js +0 -0
- package/{core → dist}/collections/frozenset.d.ts +0 -0
- package/{core → dist}/collections/frozenset.js +3 -6
- package/{core → dist}/collections/index.d.ts +4 -4
- package/{core → dist}/collections/index.js +0 -0
- package/{core → dist}/functools/index.d.ts +27 -13
- package/{core → dist}/functools/index.js +34 -12
- package/{core → dist}/globals/index.d.ts +7 -10
- package/{core → dist}/globals/index.js +7 -14
- package/dist/i18n/date/index.d.ts +204 -0
- package/dist/i18n/date/index.js +530 -0
- package/dist/i18n/date/utils.d.ts +65 -0
- package/dist/i18n/date/utils.js +312 -0
- package/dist/i18n/duration.d.ts +112 -0
- package/dist/i18n/duration.js +392 -0
- package/dist/i18n/format.d.ts +26 -0
- package/dist/i18n/format.js +495 -0
- package/{core → dist}/i18n/index.d.ts +1 -1
- package/{core → dist}/i18n/index.js +1 -1
- package/{core → dist}/index.d.ts +0 -0
- package/{core → dist}/index.js +0 -0
- package/{core → dist}/itertools/index.d.ts +27 -27
- package/{core → dist}/itertools/index.js +24 -24
- package/{core → dist}/math/index.d.ts +3 -3
- package/{core → dist}/math/index.js +0 -0
- package/{core → dist}/operators/index.d.ts +2 -2
- package/{core → dist}/operators/index.js +2 -2
- package/{core → dist}/random/index.d.ts +1 -1
- package/{core → dist}/random/index.js +3 -3
- package/package.json +28 -42
- package/.editorconfig +0 -12
- package/.esdoc.json +0 -27
- package/.eslintignore +0 -1
- package/.eslintrc.json +0 -35
- package/.firebaserc +0 -5
- package/.prettierrc +0 -19
- package/core/collections/BTree.ts +0 -1340
- package/core/collections/Heap.ts +0 -189
- package/core/collections/LRUCache.d.ts +0 -152
- package/core/collections/LRUCache.js +0 -409
- package/core/collections/LRUCache.ts +0 -486
- package/core/collections/SortedMap.ts +0 -146
- package/core/collections/SortedSet.ts +0 -110
- package/core/collections/SortedTree.ts +0 -160
- package/core/collections/SplayTree.ts +0 -354
- package/core/collections/abc.ts +0 -176
- package/core/collections/deque.ts +0 -338
- package/core/collections/frozenset.ts +0 -37
- package/core/collections/index.ts +0 -1024
- package/core/collections/test.html +0 -10
- package/core/collections/typedArrays.d.ts +0 -31
- package/core/collections/typedArrays.js +0 -143
- package/core/collections/typedArrays.ts +0 -163
- package/core/functools/index.ts +0 -260
- package/core/globals/index.ts +0 -481
- package/core/i18n/date/format.d.ts +0 -16
- package/core/i18n/date/format.js +0 -307
- package/core/i18n/date/format.ts +0 -343
- package/core/i18n/date/index.d.ts +0 -224
- package/core/i18n/date/index.js +0 -387
- package/core/i18n/date/index.ts +0 -471
- package/core/i18n/date/test.html +0 -67
- package/core/i18n/index.ts +0 -8
- package/core/index.ts +0 -8
- package/core/itertools/index.ts +0 -494
- package/core/math/index.ts +0 -152
- package/core/operators/index.ts +0 -310
- package/core/random/index.ts +0 -66
- package/firebase.json +0 -10
- package/jasmine.json +0 -14
- package/tests/BTree.spec.ts +0 -143
- package/tests/Cache.spec.ts +0 -161
- package/tests/Heap.spec.ts +0 -66
- package/tests/SortedMap.spec.ts +0 -144
- package/tests/SortedSet.spec.ts +0 -84
- package/tests/SortedTree.spec.ts +0 -164
- package/tests/SplayTree.spec.ts +0 -121
- package/tests/collections.spec.ts +0 -288
- package/tests/deque.spec.ts +0 -107
- package/tests/globals.spec.ts +0 -270
- package/tests/itertools.spec.ts +0 -266
- package/tests/math.spec.ts +0 -25
- package/tests/operators.spec.ts +0 -40
- package/tests/random.spec.ts +0 -46
- package/tsconfig.json +0 -126
- package/tsconfig.node.json +0 -18
- package/tsconfig.xo.json +0 -9
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import {
|
|
3
|
-
clone,
|
|
4
|
-
compact,
|
|
5
|
-
count,
|
|
6
|
-
difference,
|
|
7
|
-
filter,
|
|
8
|
-
find,
|
|
9
|
-
findRight,
|
|
10
|
-
flatten,
|
|
11
|
-
forEach,
|
|
12
|
-
groupBy,
|
|
13
|
-
intersection,
|
|
14
|
-
merge,
|
|
15
|
-
omit,
|
|
16
|
-
pick,
|
|
17
|
-
remove,
|
|
18
|
-
sortedUniq,
|
|
19
|
-
union,
|
|
20
|
-
uniq
|
|
21
|
-
} from '../core/collections/index.js'
|
|
22
|
-
|
|
23
|
-
describe('collections', () => {
|
|
24
|
-
it('compact', () => {
|
|
25
|
-
let filtered = compact([0, 1, false, 2, '', 3])
|
|
26
|
-
assert.deepEqual(filtered, [1, 2, 3])
|
|
27
|
-
assert.deepEqual(compact({ a: 1, b: undefined, c: false, d: [] }), { a: 1 })
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
it('count', () => {
|
|
31
|
-
let counters = count([0, 1, false, 2, '', 3], (x) => !!x)
|
|
32
|
-
assert(counters['true'] === 3)
|
|
33
|
-
assert(counters['false'] === 3)
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
it('clone array', () => {
|
|
37
|
-
let arr = [4, 7, 1, 9]
|
|
38
|
-
assert.deepEqual(clone(arr), arr)
|
|
39
|
-
let target = { user: 'fred', age: 40, active: false }
|
|
40
|
-
assert.deepEqual(clone(target), target)
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
it('clone object', () => {
|
|
44
|
-
let target = { user: 'fred', age: 40, active: false }
|
|
45
|
-
assert.deepEqual(clone(target), target)
|
|
46
|
-
})
|
|
47
|
-
|
|
48
|
-
it('difference', () => {
|
|
49
|
-
let a = [1, 2, 5]
|
|
50
|
-
let b = [3, 4, 5]
|
|
51
|
-
assert.deepEqual(sortedUniq(difference(a, b)), [1, 2, 3, 4])
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
it('intersection', () => {
|
|
55
|
-
let a = [1, 2, 5]
|
|
56
|
-
let b = [3, 4, 5]
|
|
57
|
-
assert.deepEqual([...intersection(a, b)], [5])
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
it('union', () => {
|
|
61
|
-
let a = [1, 2, 5]
|
|
62
|
-
let b = [3, 4, 5]
|
|
63
|
-
assert.deepEqual(sortedUniq(union(a, b)), [1, 2, 3, 4, 5])
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
it('filter', () => {
|
|
67
|
-
assert(filter(null) == undefined)
|
|
68
|
-
let users = [
|
|
69
|
-
{ user: 'barney', age: 36, active: true },
|
|
70
|
-
{ user: 'fred', age: 40, active: false }
|
|
71
|
-
]
|
|
72
|
-
assert.deepEqual(
|
|
73
|
-
filter(users, (o) => o.active),
|
|
74
|
-
[users[0]]
|
|
75
|
-
)
|
|
76
|
-
})
|
|
77
|
-
|
|
78
|
-
it('filter matches', () => {
|
|
79
|
-
assert(filter(null) == undefined)
|
|
80
|
-
let users = [
|
|
81
|
-
{ user: 'barney', age: 36, active: true },
|
|
82
|
-
{ user: 'fred', age: 40, active: false }
|
|
83
|
-
]
|
|
84
|
-
assert.deepEqual(filter(users, { age: 36 }), [users[0]])
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
it('filter property', () => {
|
|
88
|
-
assert(filter(null) == undefined)
|
|
89
|
-
let users = [
|
|
90
|
-
{ user: 'barney', age: 36, active: true },
|
|
91
|
-
{ user: 'fred', age: 40, active: false }
|
|
92
|
-
]
|
|
93
|
-
assert.deepEqual(filter(users, 'active'), [users[0]])
|
|
94
|
-
})
|
|
95
|
-
|
|
96
|
-
it('find', () => {
|
|
97
|
-
let users = [
|
|
98
|
-
{ user: 'barney', age: 36, active: true },
|
|
99
|
-
{ user: 'fred', age: 40, active: false }
|
|
100
|
-
]
|
|
101
|
-
assert(find(users, (o) => o.active) === users[0])
|
|
102
|
-
})
|
|
103
|
-
|
|
104
|
-
it('find matches', () => {
|
|
105
|
-
let users = [
|
|
106
|
-
{ user: 'barney', age: 36, active: true },
|
|
107
|
-
{ user: 'fred', age: 40, active: false }
|
|
108
|
-
]
|
|
109
|
-
assert(find(users, { age: 36 }) === users[0])
|
|
110
|
-
})
|
|
111
|
-
|
|
112
|
-
it('find property', () => {
|
|
113
|
-
let users = [
|
|
114
|
-
{ user: 'barney', age: 36, active: true },
|
|
115
|
-
{ user: 'fred', age: 40, active: false }
|
|
116
|
-
]
|
|
117
|
-
assert(find(users, 'active') === users[0])
|
|
118
|
-
})
|
|
119
|
-
|
|
120
|
-
it('findRight', () => {
|
|
121
|
-
let users = [
|
|
122
|
-
{ user: 'barney', age: 36, active: true },
|
|
123
|
-
{ user: 'fred', age: 40, active: false },
|
|
124
|
-
{ user: 'barney', age: 36, active: true }
|
|
125
|
-
]
|
|
126
|
-
assert(findRight(users, { age: 36 }) === users[2])
|
|
127
|
-
})
|
|
128
|
-
|
|
129
|
-
it('findRight matches', () => {
|
|
130
|
-
let users = [
|
|
131
|
-
{ user: 'barney', age: 36, active: true },
|
|
132
|
-
{ user: 'fred', age: 40, active: false },
|
|
133
|
-
{ user: 'barney', age: 36, active: true }
|
|
134
|
-
]
|
|
135
|
-
assert(findRight(users, { age: 36 }) === users[2])
|
|
136
|
-
})
|
|
137
|
-
|
|
138
|
-
it('findRight property', () => {
|
|
139
|
-
let users = [
|
|
140
|
-
{ user: 'barney', age: 36, active: true },
|
|
141
|
-
{ user: 'fred', age: 40, active: false },
|
|
142
|
-
{ user: 'barney', age: 36, active: true }
|
|
143
|
-
]
|
|
144
|
-
assert(findRight(users, 'active') === users[2])
|
|
145
|
-
})
|
|
146
|
-
|
|
147
|
-
it('forEach', () => {
|
|
148
|
-
let users = [
|
|
149
|
-
{ user: 'barney', age: 36, active: true },
|
|
150
|
-
{ user: 'fred', age: 40, active: false }
|
|
151
|
-
]
|
|
152
|
-
let result = [] as any
|
|
153
|
-
forEach(users, (value, key) => result.push([key, value]))
|
|
154
|
-
assert.deepEqual(
|
|
155
|
-
result,
|
|
156
|
-
users.map((x, i) => [i, x])
|
|
157
|
-
)
|
|
158
|
-
})
|
|
159
|
-
|
|
160
|
-
it('forEach object key', () => {
|
|
161
|
-
let target = { user: 'fred', age: 40, active: false }
|
|
162
|
-
let objs = []
|
|
163
|
-
// @ts-expect-error
|
|
164
|
-
forEach(target, (value, key) => objs.push([key, value]))
|
|
165
|
-
assert.deepEqual(objs, Object.entries(target))
|
|
166
|
-
})
|
|
167
|
-
|
|
168
|
-
it('flatten Array', () => {
|
|
169
|
-
let data = flatten([1, 2, [3, 4], 5])
|
|
170
|
-
assert.deepEqual(data, [1, 2, 3, 4, 5])
|
|
171
|
-
})
|
|
172
|
-
|
|
173
|
-
it('flatten Array deep', () => {
|
|
174
|
-
let data = flatten([1, 2, [3, [4]], [5]], true)
|
|
175
|
-
assert.deepEqual(data, [1, 2, 3, 4, 5])
|
|
176
|
-
})
|
|
177
|
-
|
|
178
|
-
it('flatten Object', () => {
|
|
179
|
-
const data = {
|
|
180
|
-
dates: {
|
|
181
|
-
expiry_date: '30 sep 2018',
|
|
182
|
-
available: '30 sep 2017',
|
|
183
|
-
min_contract_period: [
|
|
184
|
-
{
|
|
185
|
-
id: 1,
|
|
186
|
-
name: '1 month'
|
|
187
|
-
}
|
|
188
|
-
]
|
|
189
|
-
},
|
|
190
|
-
price: {
|
|
191
|
-
currency: 'RM',
|
|
192
|
-
value: 1500
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
assert.deepEqual(flatten(data), {
|
|
196
|
-
'dates.expiry_date': '30 sep 2018',
|
|
197
|
-
'dates.available': '30 sep 2017',
|
|
198
|
-
'dates.min_contract_period[0].id': 1,
|
|
199
|
-
'dates.min_contract_period[0].name': '1 month',
|
|
200
|
-
'price.currency': 'RM',
|
|
201
|
-
'price.value': 1500
|
|
202
|
-
})
|
|
203
|
-
})
|
|
204
|
-
|
|
205
|
-
it('groupBy', () => {
|
|
206
|
-
assert.deepEqual(groupBy([6.1, 4.2, 6.3], Math.floor), { '4': [4.2], '6': [6.1, 6.3] })
|
|
207
|
-
})
|
|
208
|
-
|
|
209
|
-
it('merge', () => {
|
|
210
|
-
let object = {
|
|
211
|
-
a: [{ b: 2 }, { d: 4 }]
|
|
212
|
-
}
|
|
213
|
-
let other = {
|
|
214
|
-
a: [{ c: 3 }, { e: 5 }],
|
|
215
|
-
foo: null,
|
|
216
|
-
bar: true,
|
|
217
|
-
noop: undefined
|
|
218
|
-
}
|
|
219
|
-
assert.deepEqual(merge(object, other), {
|
|
220
|
-
a: [
|
|
221
|
-
{ b: 2, c: 3 },
|
|
222
|
-
{ d: 4, e: 5 }
|
|
223
|
-
],
|
|
224
|
-
foo: null,
|
|
225
|
-
bar: true
|
|
226
|
-
})
|
|
227
|
-
})
|
|
228
|
-
|
|
229
|
-
it('pick', () => {
|
|
230
|
-
let target = { user: 'fred', age: 40, active: false }
|
|
231
|
-
assert.deepEqual(pick(target, ['user']), { user: 'fred' })
|
|
232
|
-
assert.deepEqual(
|
|
233
|
-
pick(target, (x) => x >= 40),
|
|
234
|
-
{ age: 40 }
|
|
235
|
-
)
|
|
236
|
-
})
|
|
237
|
-
|
|
238
|
-
it('pickBy', () => {
|
|
239
|
-
let target = { user: 'fred', age: 40, active: false }
|
|
240
|
-
assert.deepEqual(
|
|
241
|
-
pick(target, (x) => x >= 40),
|
|
242
|
-
{ age: 40 }
|
|
243
|
-
)
|
|
244
|
-
})
|
|
245
|
-
|
|
246
|
-
it('omit', () => {
|
|
247
|
-
let target = { user: 'fred', age: 40, active: false }
|
|
248
|
-
assert.deepEqual(omit(target, ['age', 'active']), { user: 'fred' })
|
|
249
|
-
})
|
|
250
|
-
|
|
251
|
-
it('omitBy', () => {
|
|
252
|
-
let target = { user: 'fred', age: 40, active: false }
|
|
253
|
-
assert.deepEqual(
|
|
254
|
-
omit(target, (x) => !x),
|
|
255
|
-
{ user: 'fred', age: 40 }
|
|
256
|
-
)
|
|
257
|
-
})
|
|
258
|
-
|
|
259
|
-
it('remove', () => {
|
|
260
|
-
assert.deepEqual(remove([1, 2, 3, 4], 1), [2, 3, 4])
|
|
261
|
-
assert.deepEqual(remove([1, 2, 3, 4], [3, 4]), [1, 2])
|
|
262
|
-
})
|
|
263
|
-
|
|
264
|
-
it('removeBy', () => {
|
|
265
|
-
assert.deepEqual(
|
|
266
|
-
remove([1, 2, 3, 4], (x) => x % 2 === 0),
|
|
267
|
-
[1, 3]
|
|
268
|
-
)
|
|
269
|
-
})
|
|
270
|
-
|
|
271
|
-
it('sortedUniq', () => {
|
|
272
|
-
let arr = [4, 7, 1, 9, 1, 7, 4]
|
|
273
|
-
let sort = sortedUniq(arr)
|
|
274
|
-
assert.deepEqual(sort, [1, 4, 7, 9])
|
|
275
|
-
})
|
|
276
|
-
|
|
277
|
-
it('uniq', () => {
|
|
278
|
-
let arr = [4, 7, 1, 1, 9, 4, 7]
|
|
279
|
-
let distinct = uniq(arr)
|
|
280
|
-
assert.deepEqual(distinct, [4, 7, 1, 9])
|
|
281
|
-
})
|
|
282
|
-
|
|
283
|
-
it('uniqBy', () => {
|
|
284
|
-
let arr = [4, 7, 1, 1, 9, 4, 7]
|
|
285
|
-
let distinct = uniq(arr, (x) => x * 2)
|
|
286
|
-
assert.deepEqual(distinct, [8, 14, 2, 18])
|
|
287
|
-
})
|
|
288
|
-
})
|
package/tests/deque.spec.ts
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import { Deque } from '../core/collections/deque.js'
|
|
3
|
-
|
|
4
|
-
describe('deque', () => {
|
|
5
|
-
const print = (x) => console.log(x.toArray())
|
|
6
|
-
|
|
7
|
-
it('empty', () => {
|
|
8
|
-
let deque = new Deque()
|
|
9
|
-
assert(deque.size === 0)
|
|
10
|
-
})
|
|
11
|
-
|
|
12
|
-
it('iterable', () => {
|
|
13
|
-
let values = [1, 2, 3, 4]
|
|
14
|
-
let deque = new Deque(values)
|
|
15
|
-
let elements = [] as any[]
|
|
16
|
-
for (const value of deque.values()) {
|
|
17
|
-
elements.push(value)
|
|
18
|
-
}
|
|
19
|
-
assert.deepEqual(values, elements)
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
it('append', () => {
|
|
23
|
-
let values = [1, 2, 3, 4]
|
|
24
|
-
let deque = new Deque(values)
|
|
25
|
-
assert(deque.size === values.length)
|
|
26
|
-
assert.deepEqual(deque.toArray(), values)
|
|
27
|
-
deque.append(5)
|
|
28
|
-
assert(deque.size === 5)
|
|
29
|
-
assert.deepEqual(deque.toArray(), [1, 2, 3, 4, 5])
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
it('appendleft', () => {
|
|
33
|
-
let values = [1, 2, 3, 4]
|
|
34
|
-
let deque = new Deque(values)
|
|
35
|
-
deque.appendleft(0)
|
|
36
|
-
deque.appendleft(1)
|
|
37
|
-
deque.appendleft(1)
|
|
38
|
-
deque.appendleft(0)
|
|
39
|
-
assert.deepEqual(deque.toArray(), [0, 1, 1, 0, 1, 2, 3, 4])
|
|
40
|
-
assert(deque.size === 8)
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
it('pop', () => {
|
|
44
|
-
let values = [1, 2, 3, 4]
|
|
45
|
-
let deque = new Deque(values)
|
|
46
|
-
assert(deque.pop() === 4)
|
|
47
|
-
assert(deque.pop() === 3)
|
|
48
|
-
assert(deque.pop() === 2)
|
|
49
|
-
assert(deque.pop() === 1)
|
|
50
|
-
assert(deque.size === 0)
|
|
51
|
-
assert.deepEqual(deque.toArray(), [])
|
|
52
|
-
// assert.throws(() => deque.pop())
|
|
53
|
-
})
|
|
54
|
-
|
|
55
|
-
it('popleft', () => {
|
|
56
|
-
let values = [1, 2, 3, 4]
|
|
57
|
-
let deque = new Deque(values)
|
|
58
|
-
assert(deque.popleft() === 1)
|
|
59
|
-
assert(deque.popleft() === 2)
|
|
60
|
-
assert(deque.popleft() === 3)
|
|
61
|
-
assert(deque.popleft() === 4)
|
|
62
|
-
assert(deque.size === 0)
|
|
63
|
-
assert.deepEqual(deque.toArray(), [])
|
|
64
|
-
// assert.throws(() => deque.popleft())
|
|
65
|
-
})
|
|
66
|
-
|
|
67
|
-
it('contains', () => {
|
|
68
|
-
let values = [1, 2, 3, 4]
|
|
69
|
-
let deque = new Deque(values)
|
|
70
|
-
for (const val of values) {
|
|
71
|
-
assert(deque.contains(val))
|
|
72
|
-
}
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
it('get', () => {
|
|
76
|
-
let values = [1, 2, 3, 4]
|
|
77
|
-
let deque = new Deque(values)
|
|
78
|
-
for (let i = 0; i < values.length; i++) {
|
|
79
|
-
assert(deque.get(i) === values[i])
|
|
80
|
-
}
|
|
81
|
-
assert(deque.get(-1) === 4)
|
|
82
|
-
assert(deque.get(-2) === 3)
|
|
83
|
-
})
|
|
84
|
-
|
|
85
|
-
it('clear', () => {
|
|
86
|
-
let values = [1, 2, 3, 4]
|
|
87
|
-
let deque = new Deque(values)
|
|
88
|
-
deque.clear()
|
|
89
|
-
assert(deque.size === 0)
|
|
90
|
-
assert.deepEqual(deque.toArray(), [])
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
it('reversed', () => {
|
|
94
|
-
let values = [4, 3, 2, 0, 1]
|
|
95
|
-
let deque = new Deque(values)
|
|
96
|
-
values.reverse()
|
|
97
|
-
let arr = deque.reversed()
|
|
98
|
-
assert.deepEqual(arr, values)
|
|
99
|
-
})
|
|
100
|
-
|
|
101
|
-
it('toArray', () => {
|
|
102
|
-
let values = [1, 2, 3, 4]
|
|
103
|
-
let deque = new Deque(values)
|
|
104
|
-
assert(deque.size === values.length)
|
|
105
|
-
assert.deepEqual(deque.toArray(), values)
|
|
106
|
-
})
|
|
107
|
-
})
|
package/tests/globals.spec.ts
DELETED
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import {
|
|
3
|
-
bin,
|
|
4
|
-
call,
|
|
5
|
-
chr,
|
|
6
|
-
CustomError,
|
|
7
|
-
False,
|
|
8
|
-
get,
|
|
9
|
-
hash,
|
|
10
|
-
hashCode,
|
|
11
|
-
HASH_KEY,
|
|
12
|
-
hex,
|
|
13
|
-
isArray,
|
|
14
|
-
isArrayLike,
|
|
15
|
-
isAsyncFunction,
|
|
16
|
-
isBigint,
|
|
17
|
-
isBool,
|
|
18
|
-
isEmpty,
|
|
19
|
-
isFunction,
|
|
20
|
-
isNaN,
|
|
21
|
-
isNull,
|
|
22
|
-
isNumber,
|
|
23
|
-
isObject,
|
|
24
|
-
isPromise,
|
|
25
|
-
isString,
|
|
26
|
-
isSymbol,
|
|
27
|
-
keys,
|
|
28
|
-
list,
|
|
29
|
-
next,
|
|
30
|
-
oct,
|
|
31
|
-
ord,
|
|
32
|
-
str,
|
|
33
|
-
True,
|
|
34
|
-
type,
|
|
35
|
-
uniqueId,
|
|
36
|
-
values,
|
|
37
|
-
noop
|
|
38
|
-
} from '../core/globals/index.js'
|
|
39
|
-
import { enumerate } from '../core/itertools/index.js'
|
|
40
|
-
|
|
41
|
-
describe('globals', () => {
|
|
42
|
-
it('CustomError', () => {
|
|
43
|
-
let err = new CustomError('custom')
|
|
44
|
-
assert.equal(err.message, 'custom')
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
it('True', () => assert(True() === true))
|
|
48
|
-
|
|
49
|
-
it('False', () => assert(False() === false))
|
|
50
|
-
|
|
51
|
-
it('type', () => {
|
|
52
|
-
assert(type(null) === 'null')
|
|
53
|
-
assert(type(undefined) === 'undefined')
|
|
54
|
-
assert(type(true) === 'boolean')
|
|
55
|
-
assert(type(Boolean()) === 'boolean')
|
|
56
|
-
assert(type(True()) === 'boolean')
|
|
57
|
-
assert(type(False()) === 'boolean')
|
|
58
|
-
assert(type('') === 'string')
|
|
59
|
-
assert(type(String('')) === 'string')
|
|
60
|
-
assert(type(NaN) === 'NaN')
|
|
61
|
-
assert(type(42) === 'number')
|
|
62
|
-
assert(type(Number(42)) === 'number')
|
|
63
|
-
assert(type(Number('42')) === 'number')
|
|
64
|
-
assert(type(parseFloat('42.0')) === 'number')
|
|
65
|
-
assert(type(42n) === 'bigint')
|
|
66
|
-
assert(type(BigInt('42')) === 'bigint')
|
|
67
|
-
assert(type([]) === 'array')
|
|
68
|
-
assert(type({}) === 'object')
|
|
69
|
-
assert(type(type) === 'function')
|
|
70
|
-
assert(type(Error()) === 'error')
|
|
71
|
-
assert(type(new CustomError()) === 'error')
|
|
72
|
-
assert(type(Symbol()) === 'symbol')
|
|
73
|
-
assert(type(new Map()) === 'Map')
|
|
74
|
-
assert(type(new WeakMap()) === 'WeakMap')
|
|
75
|
-
assert(type(new Set()) === 'Set')
|
|
76
|
-
assert(type(new WeakSet()) === 'WeakSet')
|
|
77
|
-
assert(type(new Promise(noop)) === 'Promise')
|
|
78
|
-
assert(type(new Int8Array()) === 'Int8Array')
|
|
79
|
-
assert(type(new Uint8Array()) === 'Uint8Array')
|
|
80
|
-
assert(type(new Uint8ClampedArray()) === 'Uint8ClampedArray')
|
|
81
|
-
assert(type(new Int16Array()) === 'Int16Array')
|
|
82
|
-
assert(type(new Uint16Array()) === 'Uint16Array')
|
|
83
|
-
assert(type(new Int32Array()) === 'Int32Array')
|
|
84
|
-
assert(type(new Uint32Array()) === 'Uint32Array')
|
|
85
|
-
assert(type(new Float32Array()) === 'Float32Array')
|
|
86
|
-
assert(type(new Float64Array()) === 'Float64Array')
|
|
87
|
-
assert(type(new ArrayBuffer(8)) === 'ArrayBuffer')
|
|
88
|
-
assert(type(new DataView(new ArrayBuffer(8))) === 'DataView')
|
|
89
|
-
})
|
|
90
|
-
|
|
91
|
-
it('isBool', () => {
|
|
92
|
-
assert(isBool(true))
|
|
93
|
-
assert(isBool(Boolean()))
|
|
94
|
-
assert(!isBool(''))
|
|
95
|
-
assert(!isBool({}))
|
|
96
|
-
assert(!isBool(undefined))
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
it('isObject', () => {
|
|
100
|
-
assert(isObject({}))
|
|
101
|
-
assert(!isObject(''))
|
|
102
|
-
assert(!isObject([]))
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
it('isString', () => {
|
|
106
|
-
assert(isString(''))
|
|
107
|
-
assert(!isString([]))
|
|
108
|
-
})
|
|
109
|
-
|
|
110
|
-
it('isArray', () => {
|
|
111
|
-
assert(isArray([]))
|
|
112
|
-
assert(isArrayLike([]))
|
|
113
|
-
assert(!isArray(''))
|
|
114
|
-
assert(!isArrayLike(''))
|
|
115
|
-
})
|
|
116
|
-
|
|
117
|
-
it('isFunction', () => {
|
|
118
|
-
assert(isFunction(noop))
|
|
119
|
-
assert(!isFunction([]))
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
it('isAsyncFunction', () => {
|
|
123
|
-
assert(isAsyncFunction(async function () {}))
|
|
124
|
-
assert(isAsyncFunction(async () => {}))
|
|
125
|
-
assert(!isAsyncFunction(noop))
|
|
126
|
-
})
|
|
127
|
-
|
|
128
|
-
it('isNaN', () => {
|
|
129
|
-
assert(isNaN(NaN))
|
|
130
|
-
})
|
|
131
|
-
|
|
132
|
-
it('isNumber', () => {
|
|
133
|
-
assert(!isNumber(NaN))
|
|
134
|
-
assert(isNumber(42))
|
|
135
|
-
assert(isNumber(Number(42)))
|
|
136
|
-
assert(isNumber(Number('42')))
|
|
137
|
-
assert(isNumber(parseFloat('42.0')))
|
|
138
|
-
})
|
|
139
|
-
|
|
140
|
-
it('isBigInt', () => {
|
|
141
|
-
assert(isBigint(42n))
|
|
142
|
-
assert(isBigint(BigInt('42')))
|
|
143
|
-
})
|
|
144
|
-
|
|
145
|
-
it('isPromise', () => {
|
|
146
|
-
assert(isPromise(new Promise(noop)))
|
|
147
|
-
})
|
|
148
|
-
|
|
149
|
-
it('isSymbol', () => {
|
|
150
|
-
assert(isSymbol(Symbol()))
|
|
151
|
-
})
|
|
152
|
-
|
|
153
|
-
it('isNull', () => {
|
|
154
|
-
assert(isNull(null))
|
|
155
|
-
assert(isNull(undefined))
|
|
156
|
-
assert(!isNull(''))
|
|
157
|
-
assert(!isNull([]))
|
|
158
|
-
assert(!isNull({}))
|
|
159
|
-
})
|
|
160
|
-
|
|
161
|
-
it('str', () => {
|
|
162
|
-
assert(str(undefined) === '')
|
|
163
|
-
assert(str(null) === '')
|
|
164
|
-
assert(str(true) === 'true')
|
|
165
|
-
assert(str(false) === 'false')
|
|
166
|
-
assert(str(NaN) === 'NaN')
|
|
167
|
-
assert(str(42) === '42')
|
|
168
|
-
assert(str([]) === '')
|
|
169
|
-
assert(str([1, 2, 3]) === '1,2,3')
|
|
170
|
-
assert(str({}) === '[object Object]')
|
|
171
|
-
})
|
|
172
|
-
|
|
173
|
-
it('uniqueId', () => {
|
|
174
|
-
const uid = uniqueId()
|
|
175
|
-
assert(isNumber(uid))
|
|
176
|
-
let prefix = 'user_'
|
|
177
|
-
const userId = uniqueId('user_')
|
|
178
|
-
assert(userId.startsWith('user_'))
|
|
179
|
-
})
|
|
180
|
-
|
|
181
|
-
it('call', () => {
|
|
182
|
-
const obj = {
|
|
183
|
-
foo() {
|
|
184
|
-
return 42
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
assert(call(obj, 'foo') === 42)
|
|
188
|
-
})
|
|
189
|
-
|
|
190
|
-
it('chr', () => {
|
|
191
|
-
assert(chr(97) === 'a')
|
|
192
|
-
assert(chr(8364) === '€')
|
|
193
|
-
})
|
|
194
|
-
|
|
195
|
-
it('ord', () => {
|
|
196
|
-
assert(ord('a') === 97)
|
|
197
|
-
assert(ord('€') === 8364)
|
|
198
|
-
})
|
|
199
|
-
|
|
200
|
-
it('keys', () => {
|
|
201
|
-
let obj = { a: 1, b: 2 }
|
|
202
|
-
assert.deepEqual(keys(obj), Object.keys(obj))
|
|
203
|
-
})
|
|
204
|
-
|
|
205
|
-
it('values', () => {
|
|
206
|
-
let obj = { a: 1, b: 2 }
|
|
207
|
-
assert.deepEqual(values(obj), Object.values(obj))
|
|
208
|
-
})
|
|
209
|
-
|
|
210
|
-
it('next', () => {
|
|
211
|
-
const iter = enumerate([1, 2, 3])
|
|
212
|
-
assert.deepEqual(next(iter), [0, 1])
|
|
213
|
-
assert.deepEqual(next(iter), [1, 2])
|
|
214
|
-
assert.deepEqual(next(iter), [2, 3])
|
|
215
|
-
})
|
|
216
|
-
|
|
217
|
-
it('hash', () => {
|
|
218
|
-
let obj = { a: 1, b: 2 }
|
|
219
|
-
let h = hash(obj)
|
|
220
|
-
assert(h === hash(obj))
|
|
221
|
-
assert(obj[HASH_KEY] === h)
|
|
222
|
-
})
|
|
223
|
-
|
|
224
|
-
it('hashCode', () => {
|
|
225
|
-
let obj = '{ a: 1, b: 2 }'
|
|
226
|
-
assert(hash(obj) === hashCode(obj))
|
|
227
|
-
})
|
|
228
|
-
|
|
229
|
-
it('bin', () => {
|
|
230
|
-
assert(bin(42) === (42).toString(2))
|
|
231
|
-
})
|
|
232
|
-
|
|
233
|
-
it('hex', () => {
|
|
234
|
-
assert(hex(42) === (42).toString(16))
|
|
235
|
-
})
|
|
236
|
-
|
|
237
|
-
it('oct', () => {
|
|
238
|
-
assert(oct(42) === (42).toString(8))
|
|
239
|
-
})
|
|
240
|
-
|
|
241
|
-
it('list', () => {
|
|
242
|
-
const arr = [1, 2, 3]
|
|
243
|
-
assert.deepEqual(list(arr), arr)
|
|
244
|
-
assert.deepEqual(list(), [])
|
|
245
|
-
})
|
|
246
|
-
|
|
247
|
-
it('get', () => {
|
|
248
|
-
const arr = [1, 2, 3]
|
|
249
|
-
assert(get('2', arr) === 3)
|
|
250
|
-
assert(get('3', arr, false) === false)
|
|
251
|
-
assert(get('3', arr, false) === false)
|
|
252
|
-
let obj = { foo: { bar: true } }
|
|
253
|
-
let h = hash(obj)
|
|
254
|
-
assert(get('foo.bar', obj))
|
|
255
|
-
assert(get(['foo', 'bar'], obj))
|
|
256
|
-
assert(get(HASH_KEY, obj) === h)
|
|
257
|
-
assert(get([HASH_KEY], obj) === h)
|
|
258
|
-
})
|
|
259
|
-
|
|
260
|
-
it('isEmpty', () => {
|
|
261
|
-
assert(isEmpty(null))
|
|
262
|
-
assert(isEmpty(undefined))
|
|
263
|
-
assert(isEmpty([]))
|
|
264
|
-
assert(isEmpty(''))
|
|
265
|
-
assert(isEmpty({}))
|
|
266
|
-
assert(isEmpty(0))
|
|
267
|
-
assert(isEmpty(false))
|
|
268
|
-
assert(!isEmpty(1))
|
|
269
|
-
})
|
|
270
|
-
})
|