Skip to content

Commit 74dde89

Browse files
🔬 test(nodes,from,concat,append,prepend): Increase coverage.
1 parent 5ec1b9c commit 74dde89

File tree

4 files changed

+76
-5
lines changed

4 files changed

+76
-5
lines changed

test/src/_fixtures.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ export const iterableToString = (iterable) => iterable.toString();
3939
export const fromToString = (measure, iterable) =>
4040
`from(${measureToString(measure)}, ${iterableToString(iterable)})`;
4141

42+
export const fromLeftToString = (measure, iterable) =>
43+
`fromLeft(${measureToString(measure)}, ${iterableToString(iterable)})`;
44+
45+
export const fromRightToString = (measure, iterable) =>
46+
`fromRight(${measureToString(measure)}, ${iterableToString(iterable)})`;
47+
4248
export const fromLeft = (M, iterable) => {
4349
let tree = empty(M);
4450
for (const x of iterable) tree = tree.push(x);

test/src/regression/digit/nodes/generated.js

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ import {product} from '@set-theory/cartesian-product';
55

66
import {
77
ABSTRACT_COUNTER as COUNTER,
8-
fromToString as f,
9-
fromRight,
108
fromLeft,
9+
fromRight,
10+
fromLeftToString as fl,
11+
fromRightToString as fr,
1112
} from '../../../_fixtures.js';
1213

13-
const cover = (t, M, A, B) => {
14+
const flfr = (t, M, A, B) => {
1415
const left = fromLeft(M, A);
1516
const right = fromRight(M, B);
1617
const tree = left.concat(right);
@@ -19,8 +20,24 @@ const cover = (t, M, A, B) => {
1920
t.deepEqual(Array.from(tree), expected);
2021
};
2122

22-
cover.title = (title, M, A, B) => title ?? `${f(M, A)}.concat(${f(M, B)})`;
23+
flfr.title = (title, M, A, B) => title ?? `${fl(M, A)}.concat(${fr(M, B)})`;
24+
25+
const flifrt = (t, M, A, B) => {
26+
const left = fromLeft(M, A).init();
27+
const right = fromRight(M, B).tail();
28+
const tree = left.concat(right);
29+
const expected = Array.from(A).slice(0, -1).concat(Array.from(B).slice(1));
30+
t.is(tree.measure(), expected.length);
31+
t.deepEqual(Array.from(tree), expected);
32+
};
33+
34+
flifrt.title = (title, M, A, B) =>
35+
title ?? `${fl(M, A)}.init().concat(${fr(M, B)}.tail())`;
2336

2437
for (const [m, n] of product([range(62)], 2)) {
25-
test(cover, COUNTER, range(m), range(n));
38+
test(flfr, COUNTER, range(m), range(n));
39+
}
40+
41+
for (const [m, n] of product([range(19)], 2)) {
42+
test(flifrt, COUNTER, range(m), range(n));
2643
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import test from 'ava';
2+
3+
import {range} from '@iterable-iterator/range';
4+
5+
import {ABSTRACT_COUNTER as COUNTER, measure} from '../../_fixtures.js';
6+
7+
import {empty} from '../../../../src/index.js';
8+
9+
test('left instanceof Four', (t) => {
10+
const tree = empty(COUNTER)
11+
.append(range(2))
12+
.cons(-1)
13+
.cons(-2)
14+
.cons(-3)
15+
.append(range(2, 4));
16+
t.deepEqual(Array.from(tree), Array.from(range(-3, 4)));
17+
t.is(tree.measure(), measure(COUNTER, range(-3, 4)));
18+
});
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import test from 'ava';
2+
3+
import {tee} from '@iterable-iterator/tee';
4+
import {range} from '@iterable-iterator/range';
5+
6+
import {
7+
ABSTRACT_COUNTER as COUNTER,
8+
measure,
9+
measureToString,
10+
iterableToString,
11+
} from '../../_fixtures.js';
12+
13+
import {empty} from '../../../../src/index.js';
14+
15+
const macro = (t, M, iterable) => {
16+
const [copy1, copy2, copy3] = tee(iterable, 3);
17+
const tree = empty(M).append(copy1);
18+
19+
t.is(tree.measure(), measure(M, copy2));
20+
21+
const expected = Array.from(copy3);
22+
t.deepEqual(Array.from(tree), expected);
23+
};
24+
25+
macro.title = (title, M, iterable) =>
26+
title ?? `empty(${measureToString(M)}).append(${iterableToString(iterable)})`;
27+
28+
for (const i of range(10)) {
29+
test(macro, COUNTER, range(i));
30+
}

0 commit comments

Comments
 (0)