-
Notifications
You must be signed in to change notification settings - Fork 18
/
Take.ts
61 lines (45 loc) · 2.16 KB
/
Take.ts
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
import { asAsync, itAsync, itEnumerable, itParallel } from "../TestHelpers"
describe("take", () => {
itEnumerable("Take", (asEnumerable) => {
const array = asEnumerable([1, 2, 3, 4, 5]).take(2).toArray()
expect(array).toEqual([1, 2])
})
itAsync("Take", async () => {
const array = await asAsync([1, 2, 3, 4, 5]).take(2).toArray()
expect(array).toEqual([1, 2])
})
itParallel("Take", async (asParallel) => {
const array = await asParallel([1, 2, 3, 4, 5]).take(2).toArray()
expect(array).toEqual([1, 2])
})
const vals = [1, 2, 3, 4]
const valsAsync = asAsync(vals)
itEnumerable("various positive amounts", (asEnumerable) => {
expect(asEnumerable(vals).take(4).toArray()).toEqual(vals)
expect(asEnumerable(vals).take(1).toArray()).toEqual([1])
expect(asEnumerable(vals).take(2).toArray()).toEqual([1, 2])
})
itAsync("various positive amounts", async () => {
expect(await valsAsync.take(4).toArray()).toEqual(vals)
expect(await valsAsync.take(1).toArray()).toEqual([1])
expect(await valsAsync.take(2).toArray()).toEqual([1, 2])
})
itParallel("various positive amounts", async (asParallel) => {
const valsParallel = asParallel(vals)
expect(await valsParallel.take(4).toArray()).toEqual(vals)
expect(await valsParallel.take(1).toArray()).toEqual([1])
expect(await valsParallel.take(2).toArray()).toEqual([1, 2])
})
itEnumerable("zero elements", (asEnumerable) =>
expect(asEnumerable(vals).take(0).toArray()).toEqual([]))
itAsync("zero elements", async () =>
expect(await valsAsync.take(0).toArray()).toEqual([]))
itParallel("zero elements", async (asParallel) =>
expect(await asParallel(vals).take(0).toArray()).toEqual([]))
itEnumerable("negative amount", (asEnumerable) =>
expect(asEnumerable(vals).take(-1).toArray()).toEqual([]))
itAsync("negative amount", async () =>
expect(await valsAsync.take(-1).toArray()).toEqual([]))
itParallel("negative amount", async (asParallel) =>
expect(await asParallel(vals).take(-1).toArray()).toEqual([]))
})