def save(self, map_to_save): # deep copy backup = DuckietownMap(empty=True) # Fill backup layers for layer in map_to_save.layers: backup.add_layer(copy.deepcopy(layer)) if len(self.memento) == self.memento.maxlen - 1: self.memento.popleft() self.memento.append(backup)
def save(self, map): # deep copy backup = DuckietownMap() backup.tiles = [[]] for i in range(len(map.tiles)): backup.tiles.append([]) for j in range(len(map.tiles[i])): backup.tiles[i].append(copy.copy(map.tiles[i][j])) if map.items: for i in range(len(map.items)): backup.items.append(map.items[i]) if len(self.memento) == self.memento.maxlen - 1: self.memento.popleft() self.memento.append(backup)
def test_map_to_yaml_without_yaml(self): map = DuckietownMap() map.tiles = tiles_to_objects( get_tiles('../maps/regress_4way_adam.yaml')) map.items = map_objects_to_objects( get_objects('../maps/regress_4way_adam.yaml')) map_to_yaml(map, '../maps/test_result') new_map = DuckietownMap() new_map.tiles = tiles_to_objects(get_tiles('../maps/test_result.yaml')) new_map.items = map_objects_to_objects( get_objects('../maps/test_result.yaml')) for tile, new_tile in zip( np.array(map.tiles).flat, np.array(new_map.tiles).flat): self.assertEqual(tile.kind, new_tile.kind) self.assertEqual(tile.rotation, new_tile.rotation) for obj, new_obj in zip(map.items, new_map.items): self.assertEqual(obj.kind, new_obj.kind) self.assertEqual(obj.position, new_obj.position) self.assertEqual(obj.rotation, new_obj.rotation) self.assertEqual(obj.height, new_obj.height) self.assertEqual(obj.optional, new_obj.optional) self.assertEqual(obj.static, new_obj.static)
def test_map_to_yaml_without_objects(self): map = DuckietownMap() map.tiles = tiles_to_objects( get_tiles('../maps/regress_4way_drivable.yaml')) map.items = map_objects_to_objects( get_objects('../maps/regress_4way_drivable.yaml')) map_to_yaml(map, '../maps/test_result.yaml') new_map = DuckietownMap() new_map.tiles = tiles_to_objects(get_tiles('../maps/test_result.yaml')) new_map.items = map_objects_to_objects( get_objects('../maps/test_result.yaml')) for tile, new_tile in zip( np.array(map.tiles).flat, np.array(new_map.tiles).flat): self.assertEqual(tile.kind, new_tile.kind) self.assertEqual(tile.rotation, new_tile.rotation) self.assertEqual(map.items, new_map.items)
def test_map_to_yaml_2(self): map = DuckietownMap() map.set_tile_layer( tiles_to_objects(data_from_file('../maps/test.yaml').get('tiles'))) map.set_item_layer( map_objects_to_objects( data_from_file('../maps/test.yaml').get('objects'))) map_to_yaml(map, '../maps/test_result.yaml') new_map = DuckietownMap() new_map.set_tile_layer( tiles_to_objects( data_from_file('../maps/test_result.yaml').get('tiles'))) new_map.set_item_layer( map_objects_to_objects( data_from_file('../maps/test_result.yaml').get('objects'))) for tile, new_tile in zip( np.array(map.get_tile_layer().data).flat, np.array(new_map.get_tile_layer().data).flat): self.assertEqual(tile.kind, new_tile.kind) self.assertEqual(tile.rotation, new_tile.rotation) for obj, new_obj in zip(map.get_item_layer().data, new_map.get_item_layer().data): self.assertEqual(obj.kind, new_obj.kind) self.assertEqual(obj.position, new_obj.position) self.assertEqual(obj.rotation, new_obj.rotation) self.assertEqual(obj.height, new_obj.height) self.assertEqual(obj.optional, new_obj.optional) self.assertEqual(obj.static, new_obj.static)
def test_map_to_yaml_without_objects(self): map = DuckietownMap() map.set_tile_layer( tiles_to_objects( data_from_file('../maps/regress_4way_drivable.yaml').get( 'tiles'))) map.set_item_layer( map_objects_to_objects( data_from_file('../maps/regress_4way_drivable.yaml').get( 'objects'))) map_to_yaml(map, '../maps/test_result.yaml') new_map = DuckietownMap() new_map.set_tile_layer( tiles_to_objects( data_from_file('../maps/test_result.yaml').get('tiles'))) new_map.set_item_layer( map_objects_to_objects( data_from_file('../maps/test_result.yaml').get('objects'))) for tile, new_tile in zip( np.array(map.get_tile_layer().data).flat, np.array(new_map.get_tile_layer().data).flat): self.assertEqual(tile.kind, new_tile.kind) self.assertEqual(tile.rotation, new_tile.rotation) self.assertEqual(map.get_item_layer().data, new_map.get_item_layer().data)