summaryrefslogtreecommitdiffstats
path: root/day12/test_init.py
blob: f6e78e18bb19824a65eff46bfb82cc02b16e4795 (plain)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
from day12 import Node, AssignmentOne, AssignmentTwo


def test_calculate_all_paths_assignment_one():
    start = Node(id='start')
    end = Node(id='end')

    start.nodes.add(end)
    end.nodes.add(start)

    assert AssignmentOne.calculate_all_paths(start, end) == [
        [start, end]
    ]

    a = Node(id='a')
    start.nodes = { a }
    a.nodes = { start, end }
    end.nodes = { end }

    assert AssignmentOne.calculate_all_paths(start, end) == [
        [start, a, end]
    ]

    b = Node(id='b')
    start.nodes = { a, b }
    b.nodes = { start, end }
    a.nodes = { start, end }
    end.nodes = { a, b }

    assert sorted(AssignmentOne.calculate_all_paths(start, end)) == sorted([
        [start, a, end],
        [start, b, end]
    ])

    a.nodes.add(b)
    b.nodes.add(a)

    assert sorted(AssignmentOne.calculate_all_paths(start, end)) == sorted([
        [start, a, end],
        [start, a, b, end],
        [start, b, end],
        [start, b, a, end]
    ])

    a.big = True

    assert sorted(AssignmentOne.calculate_all_paths(start, end)) == sorted([
        [start, a, end],
        [start, a, b, end],
        [start, a, b, a, end],
        [start, b, end],
        [start, b, a, end],
    ])


def test_calculate_all_paths_assignment_two():
    start = Node(id='start')
    end = Node(id='end')

    a = Node(id='a')
    b = Node(id='b')

    start.nodes.add(a)
    a.nodes.add(b)
    a.nodes.add(start)
    b.nodes.add(a)
    b.nodes.add(end)
    end.nodes.add(b)

    assert sorted(AssignmentTwo.calculate_all_paths(start, end)) == sorted([
        [start, a, b, end]
    ])