Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_a_star2(self):
test_layout = (
""" ########
#1# #
# # #0 #
# #
######## """ )
universe = CTFUniverse.create(test_layout, 2)
al = Graph(universe.free_positions())
#Test distance to middle from both sides
print(al.a_star(universe.bots[0].current_pos, universe.bots[1].current_pos))
print(al.a_star(universe.bots[1].current_pos, universe.bots[0].current_pos))
assert 7 == len(al.a_star(universe.bots[0].current_pos, universe.bots[1].current_pos))
assert 7 == len(al.a_star(universe.bots[1].current_pos, universe.bots[0].current_pos))
def test_extended_adjacency_list(self):
test_layout = (
""" ##################
#0#. . # . #
# ##### ##### #
# . # . .#1#
################## """)
universe = CTFUniverse.create(test_layout, 2)
al = Graph(universe.free_positions())
adjacency_target = {(7, 3): [(7, 2), (7, 3), (6, 3)],
(1, 3): [(1, 2), (2, 3), (1, 3)],
(12, 1): [(13, 1), (12, 1), (11, 1)],
(16, 2): [(16, 3), (16, 1), (16, 2)],
(15, 1): [(16, 1), (15, 1), (14, 1)],
(5, 1): [(6, 1), (5, 1), (4, 1)],
(10, 3): [(10, 2), (11, 3), (10, 3), (9, 3)],
(7, 2): [(7, 3), (7, 1), (8, 2), (7, 2)],
(1, 2): [(1, 3), (1, 1), (1, 2)],
(3, 3): [(4, 3), (3, 3), (2, 3)],
(13, 3): [(14, 3), (13, 3), (12, 3)],
(8, 1): [(8, 2), (8, 1), (7, 1)],
(16, 3): [(16, 2), (16, 3)],
(6, 3): [(7, 3), (6, 3), (5, 3)],
def test_a_star3(self):
test_layout = (
"""
################################################################
#0# # # # # # #
# ######### ###### # # ### #
# # # ######## ## ## # # # # # #
# ############ # # # # # ## ############### #
# # # ### # # # ### ## # #### ###
# ####### #### # # # # # # #
# # 1 # ### ##### ## ############# ###########
# # # # # # # # ## # # #
# ######################### ## ## ######### ##############"""
)
universe = CTFUniverse.create(test_layout, 2)
al = Graph(universe.free_positions())
#Test distance to middle from both sides
assert 15 == len(al.a_star(universe.bots[0].current_pos, universe.bots[1].current_pos))
assert 15 == len(al.a_star(universe.bots[1].current_pos, universe.bots[0].current_pos))
def test_bfs_to_self(self):
test_layout = (
""" ############
#0. #.1#
############ """)
universe = CTFUniverse.create(test_layout, 2)
al = Graph(universe.free_positions())
assert [] == al.bfs((1,1), [(1, 1), (2, 1)])
def test_basic_adjacency_list(self):
test_layout = (
""" ######
# #
###### """)
universe = CTFUniverse.create(test_layout, 0)
al = Graph(universe.free_positions())
target = { (4, 1): [(4, 1), (3, 1)],
(1, 1): [(2, 1), (1, 1)],
(2, 1): [(3, 1), (2, 1), (1, 1)],
(3, 1): [(4, 1), (3, 1), (2, 1)]}
for val in al.values():
val.sort()
for val in target.values():
val.sort()
assert target == al
def len_of_shortest_path(layout):
uni = CTFUniverse.create(layout, 2)
al = Graph(uni.free_positions())
path = al.a_star(uni.bots[0].current_pos, uni.bots[1].current_pos)
return len(path)
def test_bfs_exceptions(self):
test_layout = (
""" ############
#0. #.1#
############ """)
universe = CTFUniverse.create(test_layout, 2)
al = Graph(universe.free_positions())
with pytest.raises(NoPathException):
al.bfs((1, 1), [(10, 1)])
with pytest.raises(NoPathException):
al.bfs((1, 1), [(10, 1), (9, 1)])
with pytest.raises(NoPathException):
al.bfs((0, 1), [(10, 1)])
with pytest.raises(NoPathException):
al.bfs((1, 1), [(11, 1)])
def test_a_star_exceptions(self):
test_layout = (
""" ############
#0. #.1#
############ """)
universe = CTFUniverse.create(test_layout, 2)
al = Graph(universe.free_positions())
with pytest.raises(NoPathException):
al.a_star((1, 1), (10, 1))
with pytest.raises(NoPathException):
al.a_star((0, 1), (10, 1))
with pytest.raises(NoPathException):
al.a_star((1, 1), (11, 1))
def test_a_star(self):
test_layout = (
""" ##################
#02.# . # . # #
# ### ####1 #
# ### . # . ##3#
# #
################## """)
universe = CTFUniverse.create(test_layout, 4)
al = Graph(universe.free_positions())
#Test distance to middle from both sides
assert 11 == len(al.a_star((1, 1), (7, 2)))
assert 12 == len(al.a_star((2, 1), (7, 2)))
assert 14 == len(al.a_star((16, 1), (7, 2)))
assert 15 == len(al.a_star((15, 1), (7, 2)))
# Test basic assertions
assert 0 == len(al.a_star((1, 1), (1, 1)))
assert 1 == len(al.a_star((1, 1), (2, 1)))
assert 1 == len(al.a_star((2, 1), (1, 1)))
# Test distance to middle from both sides
assert 11 == len(al.a_star((1, 1), (7, 2)))
assert 12 == len(al.a_star((2, 1), (7, 2)))