-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
integer.test.ts
48 lines (37 loc) · 1.2 KB
/
integer.test.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
import { describe, expect, it } from "@jest/globals";
import fc from "fast-check";
import type { Integer, Product, Sum } from "../src/integer.js";
import { integer, product, sum } from "./arbitraries.js";
const integerToStringDefinition = (m: Integer): void => {
expect(m.toString()).toStrictEqual(`Integer(${m.value})`);
};
const sumToStringDefinition = (m: Sum): void => {
expect(m.toString()).toStrictEqual(`Sum(${m.value})`);
};
const productToStringDefinition = (m: Product): void => {
expect(m.toString()).toStrictEqual(`Product(${m.value})`);
};
describe("Integer", () => {
describe("toString", () => {
it("should convert Integer to a string", () => {
expect.assertions(100);
fc.assert(fc.property(integer, integerToStringDefinition));
});
});
});
describe("Sum", () => {
describe("toString", () => {
it("should convert Sum to a string", () => {
expect.assertions(100);
fc.assert(fc.property(sum, sumToStringDefinition));
});
});
});
describe("Product", () => {
describe("toString", () => {
it("should convert Product to a string", () => {
expect.assertions(100);
fc.assert(fc.property(product, productToStringDefinition));
});
});
});