### Question:
MapTileCircuitModel extends FeatureAbstract implements MapTileCircuit { @Override public void resolve(Tile tile) { updateTransitiveTile(tile); updateTile(tile, 0, 0); updateTile(tile, 0, 1); updateTile(tile, -1, 0); updateTile(tile, 0, -1); updateTile(tile, 1, 0); } MapTileCircuitModel(); @Override void prepare(FeatureProvider provider); @Override void loadCircuits(Media circuitsConfig); @Override void loadCircuits(Collection<Media> levels, Media sheetsConfig, Media groupsConfig); @Override void loadCircuits(Map<Circuit, Collection<Integer>> circuits); @Override void resolve(Tile tile); @Override Collection<Integer> getTiles(Circuit circuit);  }### Answer:
@Test void testResolution() { final MapTile map = createMap(TILE_GROUND); final MapTileGroup mapGroup = map.getFeature(MapTileGroup.class); final MapTileCircuit mapCircuit = map.getFeature(MapTileCircuitModel.class); map.setTile(5, 6, TILE_ROAD); map.setTile(5, 4, TILE_ROAD); map.setTile(5, 5, TILE_ROAD); map.setTile(4, 5, TILE_ROAD); map.setTile(6, 5, TILE_ROAD); mapCircuit.resolve(map.getTile(5, 5)); assertEquals(ROAD, mapGroup.getGroup(map.getTile(5, 5))); }
@Test void testTransitive() { final MapTile map = createMap(TILE_WATER); final MapTileGroup mapGroup = map.getFeature(MapTileGroup.class); final MapTileCircuit mapCircuit = map.getFeature(MapTileCircuitModel.class); map.setTile(5, 5, TILE_ROAD); final Tile newTile = map.getTile(5, 5); mapCircuit.resolve(newTile); assertEquals(ROAD, mapGroup.getGroup(map.getTile(5, 5))); assertEquals(TRANSITION, mapGroup.getGroup(map.getTile(4, 4))); assertEquals(TRANSITION, mapGroup.getGroup(map.getTile(5, 4))); assertEquals(TRANSITION, mapGroup.getGroup(map.getTile(6, 4))); assertEquals(TRANSITION, mapGroup.getGroup(map.getTile(4, 5))); assertEquals(TRANSITION, mapGroup.getGroup(map.getTile(6, 5))); assertEquals(TRANSITION, mapGroup.getGroup(map.getTile(4, 6))); assertEquals(TRANSITION, mapGroup.getGroup(map.getTile(5, 6))); assertEquals(TRANSITION, mapGroup.getGroup(map.getTile(6, 6))); }