Added test and small date fix.
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# tests/test_geometry.py
|
||||
|
||||
import pytest
|
||||
from tools.geometry import Point, Line, Polygon, Coordinate
|
||||
|
||||
|
||||
def test_coordinate_to_point():
|
||||
coord = Coordinate(lat=56.2006, long=12.5553)
|
||||
p1 = coord.to_Point()
|
||||
assert p1.x == 56.2006
|
||||
assert p1.y == 12.5553
|
||||
|
||||
p2 = coord.to_Point(reversed=True)
|
||||
assert p2.x == 12.5553
|
||||
assert p2.y == 56.2006
|
||||
|
||||
|
||||
def test_line_distance_to_point():
|
||||
# A straight line from (0,0) to (10,0)
|
||||
line = Line(Point(0, 0), Point(10, 0))
|
||||
|
||||
# Point exactly in the middle, 5 units above
|
||||
dist1 = line.distance_to_point(Point(5, 5))
|
||||
assert dist1 == 5.0
|
||||
|
||||
# Point way past the end of the line (closest point is the end (10,0))
|
||||
dist2 = line.distance_to_point(Point(13, 4))
|
||||
assert dist2 == 5.0 # 3-4-5 right triangle from (10,0) to (13,4)
|
||||
|
||||
|
||||
def test_polygon_contains():
|
||||
# A simple 10x10 square
|
||||
square = Polygon([[0, 0], [10, 0], [10, 10], [0, 10]])
|
||||
|
||||
# Inside
|
||||
assert square.contains(Point(5, 5)) is True
|
||||
# Outside
|
||||
assert square.contains(Point(15, 5)) is False
|
||||
# On the line (Edge case)
|
||||
assert square.contains(Point(10, 5)) is True
|
||||
Reference in New Issue
Block a user