-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_day21.py
More file actions
129 lines (120 loc) · 4.05 KB
/
test_day21.py
File metadata and controls
129 lines (120 loc) · 4.05 KB
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
import day21
import unittest
class TestDay21a(unittest.TestCase):
def test_test_input(self):
self.assertEqual(12, day21.calc_a(test_input, 2))
def test_input(self):
self.assertEqual(155, day21.calc_a(input, 5))
class TestDay21b(unittest.TestCase):
def test_input(self):
self.assertEqual(2449665, day21.calc_a(input, 18))
test_input = """../.# => ##./#../...
.#./..#/### => #..#/..../..../#..#"""
input = """../.. => #.#/.#./...
#./.. => .../..#/..#
##/.. => .#./##./###
.#/#. => ..#/#../##.
##/#. => ##./..#/#.#
##/## => ###/###/.##
.../.../... => ...#/#.##/.##./#..#
#../.../... => .###/#.##/##.#/##.#
.#./.../... => #.../.###/..#./#.##
##./.../... => .#.#/.###/##../#.##
#.#/.../... => .##./..../##.#/#...
###/.../... => ..##/.#.#/###./#..#
.#./#../... => .#.#/##.#/.#.#/.##.
##./#../... => ###./.###/#.../...#
..#/#../... => #.##/##../.#../.##.
#.#/#../... => ..##/..../..##/...#
.##/#../... => ####/#..#/.#../....
###/#../... => ##../..#./##../....
.../.#./... => .###/...#/#.../#...
#../.#./... => .#../.#.#/..##/#.#.
.#./.#./... => ##.#/####/.#.#/##..
##./.#./... => ..../.###/#.#./..##
#.#/.#./... => ..#./..#./..../....
###/.#./... => ###./..../..#./....
.#./##./... => ..../.##./##.#/....
##./##./... => ..#./.#../..##/#...
..#/##./... => #.##/.##./..#./.##.
#.#/##./... => .###/#.../##.#/..#.
.##/##./... => ###./##../..#./..##
###/##./... => ..#./.##./.###/#..#
.../#.#/... => ###./#.../####/#.#.
#../#.#/... => .##./.#../#.##/.#..
.#./#.#/... => .#../##../..##/.#.#
##./#.#/... => ###./#.#./##.#/##..
#.#/#.#/... => #.../.##./#.##/#.#.
###/#.#/... => ###./..##/#.##/###.
.../###/... => ##../...#/#.#./#.#.
#../###/... => .#../...#/##.#/####
.#./###/... => #.#./..##/#.#./.##.
##./###/... => ..##/..##/.###/#...
#.#/###/... => ####/##../..../#..#
###/###/... => ...#/#.##/#.##/#.#.
..#/.../#.. => .#.#/..##/#.##/#..#
#.#/.../#.. => ...#/..#./##../#..#
.##/.../#.. => ####/##../..../##..
###/.../#.. => ..#./..#./##.#/#..#
.##/#../#.. => .#../####/.###/#..#
###/#../#.. => ####/.#.#/...#/..##
..#/.#./#.. => #.#./.##./####/....
#.#/.#./#.. => ##../###./.#../##..
.##/.#./#.. => ###./.#../...#/....
###/.#./#.. => .#../.###/##../##.#
.##/##./#.. => .#../#..#/.###/#...
###/##./#.. => ..../.##./##../...#
#../..#/#.. => ##.#/...#/.###/##.#
.#./..#/#.. => ##../##../..../#.#.
##./..#/#.. => ..##/.#../#.#./.#.#
#.#/..#/#.. => ..../..##/...#/...#
.##/..#/#.. => #.../..##/...#/####
###/..#/#.. => #.../..#./##.#/.#.#
#../#.#/#.. => ..##/#.../#..#/..#.
.#./#.#/#.. => #..#/#.../.##./#.##
##./#.#/#.. => ##.#/.##./##.#/...#
..#/#.#/#.. => ####/.#.#/.##./#.#.
#.#/#.#/#.. => #..#/.##./.##./.###
.##/#.#/#.. => ...#/...#/..../.##.
###/#.#/#.. => .#../###./..../.###
#../.##/#.. => ##.#/##../#.#./...#
.#./.##/#.. => ###./.#.#/#.##/####
##./.##/#.. => #.##/..#./.#../#..#
#.#/.##/#.. => #.#./..##/..##/.#.#
.##/.##/#.. => .#../.###/.###/#.##
###/.##/#.. => #.../##../#.#./.#..
#../###/#.. => #.#./###./.##./..#.
.#./###/#.. => #.../#.../.##./.#..
##./###/#.. => ..#./.###/..##/#...
..#/###/#.. => #.##/.#../###./.###
#.#/###/#.. => .#.#/#..#/###./##..
.##/###/#.. => #.#./#.##/..##/.#..
###/###/#.. => ##../#.../..#./#..#
.#./#.#/.#. => #..#/####/#.#./#..#
##./#.#/.#. => ..##/.#../##.#/#..#
#.#/#.#/.#. => ####/#.#./#..#/#.#.
###/#.#/.#. => #.../##.#/..../#...
.#./###/.#. => ..##/.##./####/.###
##./###/.#. => .##./..#./#.##/#..#
#.#/###/.#. => ##.#/##../####/...#
###/###/.#. => ..##/####/...#/.#..
#.#/..#/##. => #.##/.#.#/#.#./#.##
###/..#/##. => ...#/##.#/#..#/..#.
.##/#.#/##. => .#.#/..#./..../###.
###/#.#/##. => ###./####/##.#/#.##
#.#/.##/##. => ##.#/#.##/.##./##..
###/.##/##. => .#.#/#.#./###./####
.##/###/##. => .#../####/.#../....
###/###/##. => .#../..../##.#/.##.
#.#/.../#.# => #.../#.../..##/..##
###/.../#.# => ...#/..#./##.#/####
###/#../#.# => .###/..##/.#../....
#.#/.#./#.# => ###./####/.#../#..#
###/.#./#.# => #.../#.##/..../###.
###/##./#.# => .###/####/#..#/.###
#.#/#.#/#.# => .#.#/...#/.#.#/#.##
###/#.#/#.# => ..../..#./..#./####
#.#/###/#.# => ..##/...#/.#.#/.##.
###/###/#.# => .###/.##./..##/####
###/#.#/### => #.#./.#../.#.#/#.#.
###/###/### => #..#/##../#.#./####"""