|
| 1 | +import { test } from "tap"; |
| 2 | +import filter from "../../src/generators/filter"; |
| 3 | +import map from "../../src/generators/map"; |
| 4 | +import range from "../../src/generators/range"; |
| 5 | +import valueAt from "../../src/generators/valueAt"; |
| 6 | + |
| 7 | +test("filter(value, fn) filters", t => { |
| 8 | + function* input() { |
| 9 | + yield* [1, 2, 3, 4]; |
| 10 | + } |
| 11 | + t.deepEqual(Array.from(filter(input(), i => i % 2 === 0)), [2, 4]); |
| 12 | + t.end(); |
| 13 | +}); |
| 14 | + |
| 15 | +test("map(value, fn) maps", t => { |
| 16 | + function* input() { |
| 17 | + yield* [1, 2, 3, 4]; |
| 18 | + } |
| 19 | + t.deepEqual(Array.from(map(input(), i => i * 2)), [2, 4, 6, 8]); |
| 20 | + t.end(); |
| 21 | +}); |
| 22 | + |
| 23 | +test("range(start, stop) generates a range", t => { |
| 24 | + t.deepEqual(Array.from(range(1, 4)), [1, 2, 3]); |
| 25 | + t.deepEqual(Array.from(range(1, 5, 2)), [1, 3]); |
| 26 | + t.deepEqual(Array.from(range(3)), [0, 1, 2]); |
| 27 | + t.end(); |
| 28 | +}); |
| 29 | + |
| 30 | +test("valueAt(generator, i) picks a value", t => { |
| 31 | + function* input() { |
| 32 | + yield* [1, 2, 3, 4]; |
| 33 | + } |
| 34 | + t.equal(valueAt(input(), 2), 3); |
| 35 | + t.equal(valueAt(input()), undefined); |
| 36 | + t.end(); |
| 37 | +}); |
0 commit comments