toydesigner-cgal/tests/test_plane.py

67 lines
2.0 KiB
Python

from math import isclose
from pytest import fixture
from tdcgal.plane.objects import *
class TestPoint2D:
def setup_method(self):
self.point1 = Point2D(1.0, 2.0)
self.point2 = Point2D(3.0, 4.0)
def test_distance(self):
assert isclose(self.point1.distance_to_point(self.point2), 8 ** 0.5)
def test_x(self):
assert self.point1.x() == 1
assert self.point2.x() == 3
def test_y(self):
assert self.point1.y() == 2
assert self.point2.y() == 4
"""
class TestLine:
def setup_method(self):
self.line1 = Line((1, 3), (1, 4))
self.line2 = Line((1, 1), (2, 2))
self.line3 = Line((37, 5), (7, 29))
def test_slope(self):
assert self.line1.slope == float("inf")
assert self.line2.slope == 1
def test_y_intercept(self):
assert self.line1.y_intercept == float("inf")
assert self.line2.y_intercept == 0
assert self.line3.y_intercept == 34.6
def test_equation(self):
assert self.line1.expression == "1.0*x - 1.0 = 0"
assert self.line2.expression == "1.0*x - 1.0*y = 0"
assert self.line3.expression == "24.0*x + 30.0*y - 1038.0 = 0"
def test_contains(self):
assert (1, 5) not in self.line1
assert (1, 3.2) in self.line1
assert (1.45, 1.45) in self.line2
assert (3, 3) not in self.line2
assert (37, 5) in self.line3
assert (7, 29) in self.line3
assert (12, 25) in self.line3
assert (12, 12) not in self.line3
assert (3, 32.2) not in self.line3
assert self.line3.contains((6, 29.8), allow_on_extended=True)
def test_length(self):
assert self.line1.length == 1
assert self.line2.length == 2 ** 0.5
assert isclose(self.line3.length, 38.41874542459709)
def test_distance(self):
assert self.line1.point_distance((1, 5)) == 1
assert self.line2.point_distance((1.5, 1.5)) == 0
assert isclose(self.line3.point_distance((12, 24)),0.780868809443030)
"""