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)
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)
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)
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
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_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