Passed
Branch master (1b85f8)
by Pieter Epeüs
19:20 queued 15:41
created

tests/unit/xandResult.spec.js   A

Complexity

Total Complexity 2
Complexity/F 1

Size

Lines of Code 68
Function Count 2

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 54
mnd 0
bc 0
fnc 2
dl 0
loc 68
rs 10
bpm 0
cpm 1
noi 1
c 0
b 0
f 0
1
import { XandTruthTable } from '../../src/TruthTable.mjs';
2
3
const TestCasesResult = [
4
    {
5
        description: '1 proposition',
6
        input: 1,
7
        expectedResult: [
8
            [true, false],
9
            [true, true],
10
        ],
11
    },
12
    {
13
        description: '2 propositions',
14
        input: 2,
15
        expectedResult: [
16
            [true, false, false],
17
            [false, false, true],
18
            [false, true, false],
19
            [true, true, true],
20
        ],
21
    },
22
    {
23
        description: '3 propositions',
24
        input: 3,
25
        expectedResult: [
26
            [true, false, false, false],
27
            [false, false, false, true],
28
            [false, false, true, false],
29
            [false, false, true, true],
30
            [false, true, false, false],
31
            [false, true, false, true],
32
            [false, true, true, false],
33
            [true, true, true, true],
34
        ],
35
    },
36
    {
37
        description: '4 propositions',
38
        input: 4,
39
        expectedResult: [
40
            [true, false, false, false, false],
41
            [false, false, false, false, true],
42
            [false, false, false, true, false],
43
            [false, false, false, true, true],
44
            [false, false, true, false, false],
45
            [false, false, true, false, true],
46
            [false, false, true, true, false],
47
            [false, false, true, true, true],
48
            [false, true, false, false, false],
49
            [false, true, false, false, true],
50
            [false, true, false, true, false],
51
            [false, true, false, true, true],
52
            [false, true, true, false, false],
53
            [false, true, true, false, true],
54
            [false, true, true, true, false],
55
            [true, true, true, true, true],
56
        ],
57
    },
58
];
59
60
describe.each(TestCasesResult)(
61
    'Test xand with inputs',
62
    ({ description, input, expectedResult }) => {
63
        it(description, () => {
64
            const table = XandTruthTable.create(input);
65
            expect(table.result).toMatchObject(expectedResult);
66
        });
67
    }
68
);
69