def test_components(self): l = Line(1, 2, 3) m = Line(4, 5, 6) g = Line(3, 2, 1) h = Line(6, 5, 4) q = QuadricCollection([Conic.from_lines(l, m), Conic.from_lines(g, h)]) assert q.components == [LineCollection([m, g]), LineCollection([l, h])] e = Plane(1, 2, 3, 4) f = Plane(4, 3, 2, 1) g = Plane(5, 6, 7, 8) h = Plane(8, 7, 6, 5) q = QuadricCollection([Quadric.from_planes(e, f), Quadric.from_planes(g, h)]) assert q.components == [PlaneCollection([e, g]), PlaneCollection([f, h])]
def test_intersect(self): c = Circle(Point(0, 0), 1) i = c.intersect(Line(0, 1, 0)) assert len(i) == 2 assert Point(1, 0) in i assert Point(-1, 0) in i c2 = Circle(Point(0, 2), 1) assert Point(0, 1) in c.intersect(c2) c3 = Conic.from_lines(Line(1, 0, 0), Line(0, 1, 0)) assert Point(1, 0) in c.intersect(c3) assert Point(0, 1) in c.intersect(c3) assert Point(-1, 0) in c.intersect(c3) assert Point(0, -1) in c.intersect(c3)