Пример #1
0
 def test_get_valid_cell(self):
     map = WorldMapCreator.generate_world_map_from_cells_data(
         self._generate_cells())
     for x in (0, 1):
         for y in (0, 1):
             location = Location(x, y)
             self.assertEqual(map.get_cell(location).location, location)
Пример #2
0
 def test_all_cells(self):
     map = WorldMapCreator.generate_world_map_from_cells_data(
         self._generate_cells())
     self.assertLocationsEqual(
         map.all_cells(),
         [Location(x, y) for x in range(-1, 2) for y in range(-1, 2)],
     )
Пример #3
0
def test_interactable_cells():
    cells = _generate_cells()
    cells[0]["interactable"] = {"type": "health"}
    cells[8]["interactable"] = {"type": "damage_boost"}
    map = WorldMapCreator.generate_world_map_from_cells_data(cells)
    assertLocationsEqual(map.interactable_cells(),
                         (Location(-1, -1), Location(1, 1)))
Пример #4
0
 def test_score_cells(self):
     cells = self._generate_cells()
     cells[0]["interactable"] = {"type": "score"}
     cells[8]["interactable"] = {"type": "score"}
     map = WorldMapCreator.generate_world_map_from_cells_data(cells)
     self.assertLocationsEqual(map.score_cells(),
                               (Location(-1, -1), Location(1, 1)))
Пример #5
0
def test_get_y_off_map():
    map = WorldMapCreator.generate_world_map_from_cells_data(_generate_cells())
    for x in (0, 1):
        with pytest.raises(KeyError):
            map.get_cell(Location(x, -2))
        with pytest.raises(KeyError):
            map.get_cell(Location(x, 2))
Пример #6
0
def test_scan_nearby(avatar_state_json):
    cells = _generate_cells(5, 5)
    cells[0]["avatar"] = avatar_state_json
    cells[2]["obstacle"] = {"location": {"x": 0, "y": 0}}
    cells[4]["interactable"] = {"type": ARTEFACT_TYPES[-1]}
    map = WorldMapCreator.generate_world_map_from_cells_data(cells)
    artefacts = map.scan_nearby(Location(-1, 0))
    assert len(artefacts) == 1
Пример #7
0
 def test_get_y_off_map(self):
     map = WorldMapCreator.generate_world_map_from_cells_data(
         self._generate_cells())
     for x in (0, 1):
         with self.assertRaises(KeyError):
             map.get_cell(Location(x, -2))
         with self.assertRaises(KeyError):
             map.get_cell(Location(x, 2))
Пример #8
0
async def process_turn(request):
    data = json.loads(await request.content.read())
    world_map = WorldMapCreator.generate_world_map_from_cells_data(
        **data["world_map"])
    code, options = data["code"], data["options"]
    avatar_state = AvatarState(
        location=data["avatar_state"]["location"],
        score=data["avatar_state"]["score"],
        health=data["avatar_state"]["health"],
        backpack=data["avatar_state"]["backpack"],
        id=0,
        orientation="north",
    )

    response = avatar_runner.process_avatar_turn(world_map, avatar_state, code)
    return web.json_response(response)
Пример #9
0
def test_y_off_map_is_not_visible():
    map = WorldMapCreator.generate_world_map_from_cells_data(_generate_cells())
    for x in (0, 1):
        assert map.is_visible(Location(x, -2)) == False
        assert map.is_visible(Location(x, 2)) == False
Пример #10
0
def test_get_valid_cell():
    map = WorldMapCreator.generate_world_map_from_cells_data(_generate_cells())
    for x in (0, 1):
        for y in (0, 1):
            location = Location(x, y)
            assert map.get_cell(location).location == location
Пример #11
0
def test_artefact_cell():
    cells = _generate_cells()
    cells[0]["interactable"] = {"type": ARTEFACT_TYPES[0]}
    map = WorldMapCreator.generate_world_map_from_cells_data(cells)
    assert map.get_cell(Location(-1, -1)).has_artefact() == True
Пример #12
0
def test_location_is_visible():
    map = WorldMapCreator.generate_world_map_from_cells_data(_generate_cells())
    for x in (0, 1):
        for y in (0, 1):
            assert map.is_visible(Location(x, y)) == True
Пример #13
0
def test_grid_size():
    map = WorldMapCreator.generate_world_map_from_cells_data(
        _generate_cells(1, 3))
    assertGridSize(map, 1, 3)
Пример #14
0
 def test_can_move_to(self):
     map = WorldMapCreator.generate_world_map_from_cells_data(
         self._generate_cells())
     target = Location(1, 1)
     self.assertTrue(map.can_move_to(target))
Пример #15
0
def test_cannot_move_to_inhabited_cell(avatar_state_json):
    cells = _generate_cells()
    cells[1]["avatar"] = avatar_state_json
    map = WorldMapCreator.generate_world_map_from_cells_data(cells)
    assert map.can_move_to(Location(-1, 0)) == False
Пример #16
0
 def test_cannot_move_to_cell_off_grid(self):
     map = WorldMapCreator.generate_world_map_from_cells_data(
         self._generate_cells())
     target = Location(4, 1)
     self.assertFalse(map.can_move_to(target))
Пример #17
0
def test_cannot_move_to_cell_off_grid():
    map = WorldMapCreator.generate_world_map_from_cells_data(_generate_cells())
    target = Location(4, 1)
    assert map.can_move_to(target) == False
Пример #18
0
def test_cannot_move_to_uninhabitable_cell():
    cells = _generate_cells()
    cells[0]["obstacle"] = {"location": {"x": -1, "y": -1}}
    map = WorldMapCreator.generate_world_map_from_cells_data(cells)
    assert map.can_move_to(Location(-1, -1)) == False
Пример #19
0
def test_can_move_to():
    map = WorldMapCreator.generate_world_map_from_cells_data(_generate_cells())
    target = Location(1, 1)
    assert map.can_move_to(target) == True
Пример #20
0
 def test_cannot_move_to_inhabited_cell(self):
     cells = self._generate_cells()
     cells[1]["avatar"] = self.AVATAR
     map = WorldMapCreator.generate_world_map_from_cells_data(cells)
     self.assertFalse(map.can_move_to(Location(-1, 0)))
Пример #21
0
 def test_y_off_map_is_not_visible(self):
     map = WorldMapCreator.generate_world_map_from_cells_data(
         self._generate_cells())
     for x in (0, 1):
         self.assertFalse(map.is_visible(Location(x, -2)))
         self.assertFalse(map.is_visible(Location(x, 2)))
Пример #22
0
 def test_location_is_visible(self):
     map = WorldMapCreator.generate_world_map_from_cells_data(
         self._generate_cells())
     for x in (0, 1):
         for y in (0, 1):
             self.assertTrue(map.is_visible(Location(x, y)))
Пример #23
0
 def test_artefact_cell(self):
     cells = self._generate_cells()
     cells[0]["interactable"] = {"type": "artefact"}
     map = WorldMapCreator.generate_world_map_from_cells_data(cells)
     self.assertEqual(map.get_cell(Location(-1, -1)).has_artefact(), True)