def test_find_spot(): flr = "g-b(1,2)-l1" state = {} address, x, y = find_spot(flr, state) assert address is not None assert address == "{flr}-b({x},{y})".format(**locals()) assert 0 <= x <= FLOOR_W assert 0 <= y <= FLOOR_H
def test_find_spot_next_free(): flr = "g-b(1,2)-l1" pos_hints = { "next_free": True, } vacancies = [{}]*350 + [None] db = MagicMock() db.buildings.find_one = MagicMock(side_effect=vacancies) address, got_x, got_y = find_spot(flr, position_hints=pos_hints, db=db) expected_x, expected_y = 150, 1 assert got_x == expected_x assert got_y == expected_y assert address is not None assert address == "{flr}-b({expected_x},{expected_y})".format(**locals())
def test_find_spot_near(): flr = "g-b(1,2)-l1" near_x = 12 near_y = 34 pos_hints = { "near_x": near_x, "near_y": near_y } address, x, y = find_spot(flr, position_hints=pos_hints) assert address is not None assert address == "{flr}-b({x},{y})".format(**locals()) assert 0 <= x <= FLOOR_W assert 0 <= y <= FLOOR_H assert abs(x - near_x) <= PROXIMITY assert abs(y - near_y) <= PROXIMITY