class CirclesTestCases(unittest.TestCase): """Test cases with only circles""" def setUp(self): self.p = Cartesian(0, 0) self.p1 = Cartesian(1, 1) self.p2 = Cartesian(10, 20) self.circ = Circle(self.p, 5) self.circ1 = Circle(self.p1, 1) self.circ2 = Circle(self.p2, 1) def test_perimeter(self): self.assertAlmostEqual(self.circ1.perimeter(), 2*pi) def test_edge_of_circle_in_circle(self): test_point = Cartesian(5, 0) self.assertTrue(self.circ.point_in_circle(test_point)) def test_point_outside_of_circle(self): test_point = Cartesian(10, 10) self.assertFalse(self.circ.point_in_circle(test_point)) def test_two_intersecting_circles_intersect(self): self.assertTrue(self.circ.intersect(self.circ1)) # Make sure it's reflexive self.assertTrue(self.circ1.intersect(self.circ)) def test_two_nonintersecting_circles_not_intersect(self): self.assertFalse(self.circ.intersect(self.circ2)) # make sure it's relfexive self.assertFalse(self.circ2.intersect(self.circ))
class DifferentObjectsTests(unittest.TestCase): def setUp(self): self.p = Cartesian(0, 0) self.p1 = Cartesian(1, 1) self.p2 = Cartesian(10, 20) self.circ = Circle(self.p, 5) self.circ1 = Circle(self.p1, 1) self.circ2 = Circle(self.p2, 1) self.p5 = Cartesian(1, 3) self.p6 = Cartesian(2, 4) self.p7 = Cartesian(4, 2) self.p8 = Cartesian(3, 1) self.poly2 = Polygon(self.p5, self.p6, self.p7, self.p8) self.p9 = Cartesian(-1, 1) self.p10 = Cartesian(2, 1) self.p11 = Cartesian(2, -1) self.p12 = Cartesian(-1, -1) self.poly3 = Polygon(self.p9, self.p10, self.p11, self.p12) def test_circle_overlapping_polygon_intersect(self): self.assertTrue(self.poly2.intersect(self.circ1)) self.assertTrue(self.circ1.intersect(self.poly2)) def test_circle_not_overlapping_polygon_dont_intersect(self): self.assertFalse(self.poly2.intersect(self.circ2)) self.assertFalse(self.circ2.intersect(self.poly2))