def test_join(self): p1 = Point(1, 1, 4, 0) p2 = Point(2, 1, 5, 0) p3 = Point(3, 4, 6, 0) p4 = Point(0, 2, 7, 0) p5 = Point(1, 5, 8, 0) # 4 points assert join(p1, p2, p3, p4).contains(p5) # 3 points assert join(p1, p2, p3).contains(p3) # two lines l = Line(p1, p2) m = Line(p3, p4) assert join(l, m) == Plane(p1, p2, p3, p4) # coplanar lines l = Line(p1, p2) m = Line(p1, p3) assert join(l, m).contains(p3) # point and line p = join(l, p3) assert p == join(p1, p2, p3) # 2 points l = p1.join(p2) assert l.contains(Point(3, 1, 6, 0))
def test_is_collinear(): p1 = Point(1, 0) p2 = Point(2, 0) p3 = Point(3, 0) l = Line(p1, p2) assert l.contains(p3) assert is_collinear(p1, p2, p3) p1 = PointCollection([(1, 0), (1, 1)], homogenize=True) p2 = PointCollection([(2, 0), (2, 1)], homogenize=True) p3 = PointCollection([(3, 0), (3, 1)], homogenize=True) p4 = PointCollection([(4, 0), (4, 1)], homogenize=True) assert all(is_collinear(p1, p2, p3, p4))