def __init__(self, start, target, allow_diagonals, World): self.start = Node(start, target, 0, None, World, True, allow_diagonals) self.target = Node(target, target, -1, None, World, True, allow_diagonals) self.open_nodes = [self.start] self.closed_nodes = [] self.last_node = None self.reached = False self.available_tiles = World.list_available_tiles() while (not (self.start.is_accessible())): stdout.write("\033[;1m" + "\033[1;31m") stdout.write('START Tile have no children, choose another one ! ') stdout.write("\033[0;0m") start = int(input("New START Tile ---> ")) self.start = Node(start, target, 0, None, World, False, allow_diagonals, True) while (not (self.target.is_accessible())): stdout.write("\033[;1m" + "\033[1;31m") stdout.write('TARGET Tile have no children, choose another one ! ') stdout.write("\033[0;0m") target = int(input("New TARGET Tile ---> ")) self.target = Node(target, target, 0, None, World, False, allow_diagonals, True) self.path = [self.start.tile_pos] self.costs = [0]
def test_outofbounds(): env = World(10, 10, 0.2) free_tiles = env.list_available_tiles() new_node = [Node(i, 84, 0, None, env) for i in free_tiles] for elem in new_node: assert (elem.tile_pos >= 0 and elem.tile_pos <= (env.L * env.H))
def test_availability(): env = World(10, 10, 0.2) free_tiles = env.list_available_tiles() new_node = [Node(i, 84, 0, None, env) for i in free_tiles] for elem in new_node: assert (env.w[elem.tile_pos] != 1)
def test_uniqueness(): env = World(10, 10, 0.2) free_tiles = env.list_available_tiles() nodes = [Node(i, 84, 0, None, env) for i in free_tiles] # list of positions pos = [] for elem in nodes: pos.append(elem.tile_pos) # check uniqueness seen = set() uniqueness = not any(k in seen or seen.add(k) for k in pos) assert (uniqueness == True)