topics/Linklist/circular/test.js   A
last analyzed

Complexity

Total Complexity 10
Complexity/F 1

Size

Lines of Code 69
Function Count 10

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 10
eloc 44
mnd 0
bc 0
fnc 10
dl 0
loc 69
rs 10
bpm 0
cpm 1
noi 0
c 0
b 0
f 0
1
const {isCircular1, isCircular2} = require('./index.js');
2
const {Linklist, Node} = require('../index.js');
3
// put your tests here]
4
5
6
describe('Linklist is circular: Solution1 with size', () => {
7
    test(' test empty list', () => {
8
        expect(isCircular1(new Linklist())).toEqual(false);
9
    });
10
    
11
    test(' test list which has only one node', () => {
12
        let list = new Linklist();
13
        list.insertAtHead(1);
14
        expect(isCircular1(list)).toEqual(false);
15
    });
16
    
17
    
18
    test('test list which has 2 nodes, not circular', () => {
19
        let list = new Linklist();
20
        list.insertAtTail(1);
21
        list.insertAtTail(2);
22
        expect(isCircular1(list)).toEqual(false);
23
    });
24
    
25
    test(' test list which has 3 nodes, circular', () => {
26
        let list = new Linklist();
27
        list.insertAtTail(1);
28
        list.insertAtTail(2);
29
        list.insertAtTail(3);
30
        let node2 = list.getElementAt(1),
31
            node3 = list.getElementAt(2);
32
            node3.next = node2;
33
        expect(isCircular1(list)).toEqual(true);
34
    });
35
    
36
});
37
38
39
describe('Linklist is circular: Solution 2 with 2 different speed walkers', () => {
40
    test(' test empty list', () => {
41
        expect(isCircular2(new Linklist())).toEqual(false);
42
    });
43
    
44
    test(' test list which has only one node', () => {
45
        let list = new Linklist();
46
        list.insertAtHead(1);
47
        expect(isCircular2(list)).toEqual(false);
48
    });
49
    
50
    
51
    test('test list which has 2 nodes, not circular', () => {
52
        let list = new Linklist();
53
        list.insertAtTail(1);
54
        list.insertAtTail(2);
55
        expect(isCircular2(list)).toEqual(false);
56
    });
57
    
58
    test(' test list which has 3 nodes, circular', () => {
59
        let list = new Linklist();
60
        list.insertAtTail(1);
61
        list.insertAtTail(2);
62
        list.insertAtTail(3);
63
        let node2 = list.getElementAt(1),
64
            node3 = list.getElementAt(2);
65
            node3.next = node2;
66
        expect(isCircular2(list)).toEqual(true);
67
    });
68
    
69
});