Exemple #1
0
    def test_len1(self):
        """
        Tests corner cases.

        Test tag: <tc>#tests#LineSegment.len</tc>
        """
        ls = LineSegment(Point((0, 0)), Point((0, 0)))
        self.assertEquals(ls.len, 0)

        ls = LineSegment(Point((0, 0)), Point((-3, 0)))
        self.assertEquals(ls.len, 3)
    def test_is_cw1(self):
        """
        Test corner cases for horizontal segment starting at origin.

        Test tag: <tc>#tests#LineSegment.is_cw</tc>
        """
        ls = LineSegment(Point((0, 0)), Point((5, 0)))
        self.assertFalse(ls.is_cw(
            Point((10, 0))))  # At positive boundary beyond segment
        self.assertFalse(ls.is_cw(Point((3, 0))))  # On segment
        self.assertFalse(ls.is_cw(
            Point((-10, 0))))  # At negative boundary beyond segment
        self.assertFalse(ls.is_cw(Point((0, 0))))  # Endpoint of segment
        self.assertFalse(ls.is_cw(Point((5, 0))))  # Endpoint of segment
    def test_is_ccw3(self):
        """
        Test corner cases for non-axis-aligned segment not through origin.

        Test tag: <tc>#tests#LineSegment.is_ccw</tc>
        """
        ls = LineSegment(Point((0, 1)), Point((5, 6)))
        self.assertFalse(ls.is_ccw(
            Point((10, 11))))  # At positive boundary beyond segment
        self.assertFalse(ls.is_ccw(Point((3, 4))))  # On segment
        self.assertFalse(ls.is_ccw(
            Point((-10, -9))))  # At negative boundary beyond segment
        self.assertFalse(ls.is_ccw(Point((0, 1))))  # Endpoint of segment
        self.assertFalse(ls.is_ccw(Point((5, 6))))  # Endpoint of segment
    def test_line1(self):
        """
        Tests corner cases.

        Test tag: <tc>#tests#LineSegment.line</tc>
        """
        import math
        ls = LineSegment(Point((0, 0)), Point((1, 0)))
        self.assertEquals(ls.line.m, 0)
        self.assertEquals(ls.line.b, 0)

        ls = LineSegment(Point((0, 0)), Point((0, 1)))
        self.assertEquals(ls.line.m, float('inf'))
        self.assertTrue(math.isnan(ls.line.b))

        ls = LineSegment(Point((0, 0)), Point((0, -1)))
        self.assertEquals(ls.line.m, float('inf'))
        self.assertTrue(math.isnan(ls.line.b))

        ls = LineSegment(Point((0, 0)), Point((0, 0)))
        self.assertEquals(ls.line, None)

        ls = LineSegment(Point((5,0)), Point((10,0)))
        ls1 = LineSegment(Point((5,0)), Point((10,1)))
        self.assertTrue(ls.intersect(ls1))
        ls2 = LineSegment(Point((5,1)), Point((10,1)))
        self.assertFalse(ls.intersect(ls2))
        ls2 = LineSegment(Point((7,-1)), Point((7,2)))
        self.assertTrue(ls.intersect(ls2))
    def test_get_swap1(self):
        """
        Tests corner cases.

        Test tag: <tc>#tests#LineSegment.get_swap</tc>
        """
        ls = LineSegment(Point((0, 0)), Point((10, 0)))
        swap = ls.get_swap()
        self.assertEquals(ls.p1, swap.p2)
        self.assertEquals(ls.p2, swap.p1)

        ls = LineSegment(Point((-5, 0)), Point((5, 0)))
        swap = ls.get_swap()
        self.assertEquals(ls.p1, swap.p2)
        self.assertEquals(ls.p2, swap.p1)

        ls = LineSegment(Point((0, 0)), Point((0, 0)))
        swap = ls.get_swap()
        self.assertEquals(ls.p1, swap.p2)
        self.assertEquals(ls.p2, swap.p1)

        ls = LineSegment(Point((5, 5)), Point((5, 5)))
        swap = ls.get_swap()
        self.assertEquals(ls.p1, swap.p2)
        self.assertEquals(ls.p2, swap.p1)
Exemple #6
0
    def test_line1(self):
        """
        Tests corner cases.

        Test tag: <tc>#tests#LineSegment.line</tc>
        """
        import math
        ls = LineSegment(Point((0, 0)), Point((1, 0)))
        self.assertEquals(ls.line.m, 0)
        self.assertEquals(ls.line.b, 0)

        ls = LineSegment(Point((0, 0)), Point((0, 1)))
        self.assertEquals(ls.line.m, float('inf'))
        self.assertTrue(math.isnan(ls.line.b))

        ls = LineSegment(Point((0, 0)), Point((0, -1)))
        self.assertEquals(ls.line.m, float('inf'))
        self.assertTrue(math.isnan(ls.line.b))

        ls = LineSegment(Point((0, 0)), Point((0, 0)))
        self.assertEquals(ls.line, None)
Exemple #7
0
    def test_bounding_box(self):
        """
        Tests corner cases.

        Test tag: <tc>#tests#LineSegment.bounding_box</tc>
        """
        ls = LineSegment(Point((0, 0)), Point((0, 10)))
        self.assertEquals(ls.bounding_box.left, 0)
        self.assertEquals(ls.bounding_box.lower, 0)
        self.assertEquals(ls.bounding_box.right, 0)
        self.assertEquals(ls.bounding_box.upper, 10)

        ls = LineSegment(Point((0, 0)), Point((-3, -4)))
        self.assertEquals(ls.bounding_box.left, -3)
        self.assertEquals(ls.bounding_box.lower, -4)
        self.assertEquals(ls.bounding_box.right, 0)
        self.assertEquals(ls.bounding_box.upper, 0)

        ls = LineSegment(Point((-5, 0)), Point((3, 0)))
        self.assertEquals(ls.bounding_box.left, -5)
        self.assertEquals(ls.bounding_box.lower, 0)
        self.assertEquals(ls.bounding_box.right, 3)
        self.assertEquals(ls.bounding_box.upper, 0)
Exemple #8
0
    def test_is_cw2(self):
        """
        Test corner cases for vertical segment ending at origin.

        Test tag: <tc>#tests#LineSegment.is_cw</tc>
        """
        ls = LineSegment(Point((0, -5)), Point((0, 0)))
        self.assertFalse(ls.is_cw(Point(
            (0, 10))))  # At positive boundary beyond segment
        self.assertFalse(ls.is_cw(Point((0, -3))))  # On segment
        self.assertFalse(ls.is_cw(Point(
            (0, -10))))  # At negative boundary beyond segment
        self.assertFalse(ls.is_cw(Point((0, -5))))  # Endpoint of segment
        self.assertFalse(ls.is_cw(Point((0, 0))))  # Endpoint of segment
Exemple #9
0
    def test_is_cw1(self):
        """
        Test corner cases for horizontal segment starting at origin.

        Test tag: <tc>#tests#LineSegment.is_cw</tc>
        """
        ls = LineSegment(Point((0, 0)), Point((5, 0)))
        self.assertFalse(ls.is_cw(Point(
            (10, 0))))  # At positive boundary beyond segment
        self.assertFalse(ls.is_cw(Point((3, 0))))  # On segment
        self.assertFalse(ls.is_cw(Point(
            (-10, 0))))  # At negative boundary beyond segment
        self.assertFalse(ls.is_cw(Point((0, 0))))  # Endpoint of segment
        self.assertFalse(ls.is_cw(Point((5, 0))))  # Endpoint of segment
Exemple #10
0
    def test_is_ccw3(self):
        """
        Test corner cases for non-axis-aligned segment not through origin.

        Test tag: <tc>#tests#LineSegment.is_ccw</tc>
        """
        ls = LineSegment(Point((0, 1)), Point((5, 6)))
        self.assertFalse(ls.is_ccw(Point(
            (10, 11))))  # At positive boundary beyond segment
        self.assertFalse(ls.is_ccw(Point((3, 4))))  # On segment
        self.assertFalse(ls.is_ccw(Point(
            (-10, -9))))  # At negative boundary beyond segment
        self.assertFalse(ls.is_ccw(Point((0, 1))))  # Endpoint of segment
        self.assertFalse(ls.is_ccw(Point((5, 6))))  # Endpoint of segment
    def test_is_cw2(self):
        """
        Test corner cases for vertical segment ending at origin.

        Test tag: <tc>#tests#LineSegment.is_cw</tc>
        """
        ls = LineSegment(Point((0, -5)), Point((0, 0)))
        self.assertFalse(ls.is_cw(
            Point((0, 10))))  # At positive boundary beyond segment
        self.assertFalse(ls.is_cw(Point((0, -3))))  # On segment
        self.assertFalse(ls.is_cw(
            Point((0, -10))))  # At negative boundary beyond segment
        self.assertFalse(ls.is_cw(Point((0, -5))))  # Endpoint of segment
        self.assertFalse(ls.is_cw(Point((0, 0))))  # Endpoint of segment
Exemple #12
0
    def test_get_swap1(self):
        """
        Tests corner cases.

        Test tag: <tc>#tests#LineSegment.get_swap</tc>
        """
        ls = LineSegment(Point((0, 0)), Point((10, 0)))
        swap = ls.get_swap()
        self.assertEquals(ls.p1, swap.p2)
        self.assertEquals(ls.p2, swap.p1)

        ls = LineSegment(Point((-5, 0)), Point((5, 0)))
        swap = ls.get_swap()
        self.assertEquals(ls.p1, swap.p2)
        self.assertEquals(ls.p2, swap.p1)

        ls = LineSegment(Point((0, 0)), Point((0, 0)))
        swap = ls.get_swap()
        self.assertEquals(ls.p1, swap.p2)
        self.assertEquals(ls.p2, swap.p1)

        ls = LineSegment(Point((5, 5)), Point((5, 5)))
        swap = ls.get_swap()
        self.assertEquals(ls.p1, swap.p2)
        self.assertEquals(ls.p2, swap.p1)