-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_maze.py
137 lines (102 loc) · 2.89 KB
/
test_maze.py
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
130
131
132
133
134
135
136
137
from main import find_distances, copy_maze_with_walls
def test_maze():
assert find_distances([[0, 0]]) == [[0, 1], ], find_distances([[0, 0]])
assert find_distances([[0, 0], [0]]) == [[0, 1], [1]], find_distances([[0, 0, 0]])
assert find_distances([[0, 0]], 0, 1) == [[1, 0]]
def test_different_find_distancesing_point():
assert find_distances([[0],
[0]], 1, 0) == [[1],
[0]]
def test_2_by_2_with_shape_l():
square = [[0],
[0, 0]]
assert find_distances(square, 0, 0) == [
[0],
[1, 2],
]
def test_2_by_2_empty_square():
square = [[0, 0],
[0, 0]]
assert find_distances(square, 0, 0) == [
[0, 1],
[1, 2],
]
def test_1_by_1():
assert find_distances([[0]], 0, 0) == [[0]]
def test_walls():
actual = [[0, 1]]
assert copy_maze_with_walls(actual) == [[0, -1]]
assert find_distances(actual, 0, 0) == [[0, -1]]
def test_create_copy_of_maze_and_fill_with_zeroes():
maze = [[0, 1], [1, 1]]
dist = copy_maze_with_walls(maze)
dist[0][0] = 'a'
assert dist == [['a', -1], [-1, -1]], dist
def test_unreachable():
actual = [[0, 1, 0]]
assert find_distances(actual, 0, 0) == [[0, -1, 0]]
def test_immutable_input():
find_distances(((0,),))
def test_2_by_3():
maze = (
(0, 1, 0),
(0, 0, 0),
)
assert find_distances(maze) == [
[0, -1, 4],
[1, 2, 3],
]
assert -True == -1
def test_3_by_3():
maze = (
(0, 1, 0),
(0, 0, 0),
(0, 1, 0),
)
assert find_distances(maze) == [
[0, -1, 4],
[1, 2, 3],
[2, -1, 4],
]
assert -True == -1
def test_5_by_3():
maze = (
(0, 1, 0, 0, 0, 0, 0, 0, 0),
(0, 0, 1, 0, 0, 0, 0, 0, 0),
(0, 1, 0, 1, 0, 0, 0, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 1, 0, 0, 0, 0, 0, 0, 0),
(0, 1, 0, 0, 0, 0, 0, 0, 0),
)
assert find_distances(maze) == [
[0, -1, 4, 5, 6],
[1, 2, 3, 4, 5],
[2, -1, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, -1, 6, 7, 8],
[5, -1, 7, 8, 9],
]
def test_the_secret_maze_wave():
maze = (
(1, 0, 1, 0, 0, 1, 1, 1),
(1, 0, 1, 0, 0, 1, 0,),
(0, 1, 0, 0, 1, 1, 1,),
)
solved = [
[-1, 0, -1, 4.0, 3.5, -1, -1, -1],
[-1, 1.0, -1, 2.5, 4.0, -1, 0],
[1.5, -1, 1.5, 3.0, -1, -1, -1]
]
assert find_distances(maze, 0, 1) == solved
def test_demo_rect():
maze = (
(0, 1, 0, 0, 0, 1, 0, 0, 0, 0),
(0, 0, 0, 1, 0, 1, 0, 0, 0, 0),
(0, 1, 1, 1, 1, 0, 0, 0, 0, 0),
(0, 0, 0, 0, 1, 1, 1, 1, 0, 0),
(0, 1, 1, 0, 1, 0, 0, 0, 0, 1),
(0, 0, 0, 0, 0, 0, 1, 0, 0, 0),
(0, 1, 0, 1, 1, 1, 1, 0, 0, 0),
(0, 1, 1, 0, 0, 1, 0, 0, 0, 0),
)
find_distances(maze)