Skip to content

Commit 562a19e

Browse files
authored
tests(library/math): clarifies test parameterization in greatestCommonDivisor suite (#542)
- facilitates #541
1 parent f06bdd8 commit 562a19e

File tree

1 file changed

+44
-10
lines changed

1 file changed

+44
-10
lines changed

src/library/math/operator/constructive/greatestCommonDivisor.test.ts

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,64 @@ import {
44
expect,
55
} from 'vitest';
66

7+
import {
8+
numberTaxonomy,
9+
} from '../../numberTaxonomy';
10+
711
import {
812
greatestCommonDivisor,
913
} from './greatestCommonDivisor';
1014

15+
const pairCombos = <
16+
LeftElement extends number,
17+
RightElement extends number,
18+
FillerElement extends number,
19+
>(
20+
given: {
21+
left: LeftElement;
22+
right: RightElement;
23+
filler: FillerElement;
24+
},
25+
) => [
26+
[given.left/* */, given.filler/**/],
27+
[given.left/* */, given.right/* */],
28+
[given.filler/**/, given.right/* */],
29+
] as const;
30+
31+
const symmetricPairCombos = <
32+
SymmetricElement extends number,
33+
FillerElement extends number,
34+
>(
35+
given: {
36+
of: SymmetricElement;
37+
filler: FillerElement;
38+
},
39+
) => pairCombos({
40+
left : given.of,
41+
right : given.of,
42+
filler: given.filler,
43+
});
44+
1145
describe(greatestCommonDivisor, () => {
1246
describe('the sad outcomes', () => {
1347
describe('when delegated', () => {
14-
const combosOfInoperableNumbers = [
15-
[NaN, 100],
16-
[NaN, NaN],
17-
[100, NaN],
18-
] as const;
48+
const primeA = 2;
49+
50+
const combosOfInoperableNumbers = symmetricPairCombos({
51+
of : numberTaxonomy.undefined,
52+
filler: primeA,
53+
});
1954

2055
it.each(combosOfInoperableNumbers)('should reject inoperable operands', (...$0) => {
2156
expect.assertions(1);
2257

2358
expect(() => greatestCommonDivisor(...$0)).toThrow(Error);
2459
});
2560

26-
const combosOfInfiniteNumbers = [
27-
[Infinity, 10000000],
28-
[Infinity, Infinity],
29-
[10000000, Infinity],
30-
] as const;
61+
const combosOfInfiniteNumbers = symmetricPairCombos({
62+
of : numberTaxonomy.infinite.positive,
63+
filler: primeA,
64+
});
3165

3266
it.each(combosOfInfiniteNumbers)('should reject infinite operands', (...$0) => {
3367
expect.assertions(1);

0 commit comments

Comments
 (0)