def test_containing_overlap(self):
     self.lines_intersect_test(HorizontalLine(0, 1, 4),
                               HorizontalLine(0, 0, 5),
                               HorizontalLine(0, 1, 4))
 def test_contained_by_overlap_inverse(self):
     self.lines_intersect_test(HorizontalLine(0, 1, 4),
                               HorizontalLine(0, 4, 1),
                               HorizontalLine(0, 0, 5))
 def test_continuing_lines_intersect(self):
     self.lines_intersect_test(Point(5, 0), HorizontalLine(0, 0, 5),
                               HorizontalLine(0, 5, 7))
 def test_start_end_overlap(self):
     self.lines_intersect_test(HorizontalLine(0, 2, 3),
                               HorizontalLine(0, 2, 4),
                               HorizontalLine(0, 0, 3))
 def test_touching_lines_intersect(self):
     self.lines_intersect_test(Point(0, 2), HorizontalLine(2, 0, 5),
                               VerticalLine(0, 0, 5))
 def test_crossing_lines_intersect2(self):
     self.lines_intersect_test(None, HorizontalLine(1, 1, 9),
                               VerticalLine(7, 6, 4))
 def test_crossing_lines_intersect(self):
     self.lines_intersect_test(Point(2, 2), HorizontalLine(2, 0, 5),
                               VerticalLine(2, 0, 5))
 def test_horizontal_parallel_lines_dont_intersect(self):
     self.lines_intersect_test(None, HorizontalLine(0, 0, 5),
                               HorizontalLine(1, 0, 5))
 def right(self, distance):
     self.add_line(
         HorizontalLine(self.head.y, self.head.x, self.head.x + distance))
     return self