going-rogue/test/test_geometry_point.py

52 lines
1.5 KiB
Python

# Eryn Wells <eryn@erynwells.me>
from erynrl.geometry import Point
def test_point_neighbors():
'''Check that Point.neighbors returns all neighbors'''
test_point = Point(5, 5)
expected_neighbors = set([
Point(4, 4),
Point(5, 4),
Point(6, 4),
Point(4, 5),
# Point(5, 5),
Point(6, 5),
Point(4, 6),
Point(5, 6),
Point(6, 6),
])
neighbors = set(test_point.neighbors)
for pt in expected_neighbors:
assert pt in neighbors
assert expected_neighbors - neighbors == set(), \
f"Found some points that didn't belong in the set of neighbors of {test_point}"
def test_point_manhattan_distance():
'''Check that the Manhattan Distance calculation on Points is correct'''
point_a = Point(3, 2)
point_b = Point(8, 5)
assert point_a.manhattan_distance_to(point_b) == 8
def test_point_is_adjacent_to():
'''Check that Point.is_adjacent_to correctly computes adjacency'''
test_point = Point(5, 5)
assert not test_point.is_adjacent_to(test_point), \
f"{test_point!s} should not be considered adjacent to itself"
for neighbor in test_point.neighbors:
assert test_point.is_adjacent_to(neighbor), \
f"Neighbor {neighbor!s} that was not considered adjacent to {test_point!s}"
assert not test_point.is_adjacent_to(Point(3, 5))
assert not test_point.is_adjacent_to(Point(7, 5))
assert not test_point.is_adjacent_to(Point(5, 3))
assert not test_point.is_adjacent_to(Point(5, 7))