コード例 #1
0
 def test_line_segment_could_not_contain_too_large_x_value_coordinate(self):
     """
     Tests that a line segment could not contain a coordinate with too large of an x value
     """
     line_segment_1 = LineSegment(Coordinate(-1, 0), Coordinate(1, 0))
     self.assertFalse(
         could_line_segment_contain_coordinate(line_segment_1,
                                               Coordinate(2, 0)))
コード例 #2
0
 def test_line_segment_could_not_contain_too_small_y_value_coordinate(self):
     """
     Tests that a line segment could not contain a coordinate with too small of a y value
     """
     line_segment_1 = LineSegment(Coordinate(-1, 0), Coordinate(1, 0))
     self.assertFalse(
         could_line_segment_contain_coordinate(line_segment_1,
                                               Coordinate(-1, -2)))
コード例 #3
0
 def test_line_segment_could_contain_coordinate(self):
     """
     Tests that a line segment could contain a coordinate with valid x and y values
     """
     line_segment_1 = LineSegment(Coordinate(-1, 0), Coordinate(1, 0))
     self.assertTrue(
         could_line_segment_contain_coordinate(line_segment_1,
                                               Coordinate(-1, 0)))
コード例 #4
0
 def test_counterclockwise_points(self):
     """
     Test that three points that form a right angle to the left returns 1
     """
     self.assertEqual(
         1,
         calculate_point_triplet_orientation(Coordinate(0, -1),
                                             Coordinate(0, 0),
                                             Coordinate(-1, 0)))
コード例 #5
0
 def test_collinear_points(self):
     """
     Test that three points on the same line returns 0
     """
     self.assertEqual(
         0,
         calculate_point_triplet_orientation(Coordinate(-1, -1),
                                             Coordinate(0, 0),
                                             Coordinate(1, 1)))
コード例 #6
0
    def test_parallel_line_segments_do_not_intersect(self):
        """
        Tests that two parallel line segments that do not intersect, returns False
        """
        line_segment_1 = LineSegment(Coordinate(-1, 0), Coordinate(1, 0))
        line_segment_2 = LineSegment(Coordinate(-1, 1), Coordinate(1, 1))

        self.assertFalse(
            do_line_segments_intersect(line_segment_1, line_segment_2))
        self.assertFalse(
            do_line_segments_intersect(line_segment_2, line_segment_1))
コード例 #7
0
    def test_collinear_overlapping_line_segments_intersect(self):
        """
        Tests that two line segments that are parallel and do intersect, returns True
        """
        line_segment_1 = LineSegment(Coordinate(-1, 0), Coordinate(1, 0))
        line_segment_2 = LineSegment(Coordinate(0, 0), Coordinate(4, 0))

        self.assertTrue(
            do_line_segments_intersect(line_segment_1, line_segment_2))
        self.assertTrue(
            do_line_segments_intersect(line_segment_2, line_segment_1))
コード例 #8
0
    def test_line_segments_do_not_intersect(self):
        """
        Tests that two line segments which never intersect, returns False
        """
        line_segment_1 = LineSegment(Coordinate(-1, 0), Coordinate(1, 0))
        line_segment_2 = LineSegment(Coordinate(0, 2), Coordinate(0, 1))

        self.assertFalse(
            do_line_segments_intersect(line_segment_1, line_segment_2))
        self.assertFalse(
            do_line_segments_intersect(line_segment_2, line_segment_1))
コード例 #9
0
    def test_proper_line_segments_intersect(self):
        """
        Tests that two proper line segments which intersect, returns True
        """
        line_segment_1 = LineSegment(Coordinate(-1, 0), Coordinate(1, 0))
        line_segment_2 = LineSegment(Coordinate(0, 1), Coordinate(0, -1))

        self.assertTrue(
            do_line_segments_intersect(line_segment_1, line_segment_2))
        self.assertTrue(
            do_line_segments_intersect(line_segment_2, line_segment_1))