-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
68 lines (50 loc) · 1.34 KB
/
test.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
61
62
63
64
65
66
67
68
import test from 'ava'
import { trancio } from './index.js'
const count = (offset = 0) => (_, n) => offset + n + 1
const numbers = {
origin: Array.from({ length: 20 }).map(count(0)),
size: {
three: Array.from({ length: 7 }).map((_, index) =>
Array.from({ length: index === 6 ? 2 : 3 }).map(count(index * 3))
),
},
}
test('functional', (t) => {
const trancia = trancio(numbers.origin, 3)
for (let index = 0; index < 7; index += 1) {
t.deepEqual(trancia(), numbers.size.three[index])
}
})
test('iterator', (t) => {
let index = 0
for (const fetta of trancio(numbers.origin, 3)) {
t.deepEqual(fetta, numbers.size.three[index])
index += 1
}
})
test('spread', (t) => {
const tranci = [...trancio(numbers.origin, 3)]
t.deepEqual(tranci, numbers.size.three)
})
test('next', (t) => {
const trancia = trancio(numbers.origin, 3)
const fetta = trancia.next()
for (let index = 0; index < 7; index += 1) {
t.deepEqual(fetta.value, numbers.size.three[index])
trancia.next()
}
t.is(fetta.value, undefined)
t.is(fetta.done, true)
})
test('zero size', (t) => {
const trancia = trancio(numbers.origin, 0)
for (let index = 0; index < 100; index++) {
t.deepEqual(trancia(), [])
}
})
test('negative size', (t) => {
const trancia = trancio(numbers.origin, -5)
for (let index = 0; index < 100; index++) {
t.deepEqual(trancia(), [])
}
})