class TriangleTest(unittest.TestCase): """ Test triangle: /(1,1) B / | / | (0,0)--(1,0) A--C """ points = { Point(0, 0), # A Point(1, 0), # C Point(1, 1), # B } def test_constructor(self): return t = Triangle(self.points) self.assertEqual(t.A, self.points[0], 'a') self.assertEqual(t.B, self.points[2], 'b') self.assertEqual(t.C, self.points[1], 'c') def test_perimeter(self): return t = Triangle(self.points) perimeter = 1 + 1 + math.sqrt(2) self.assertEqual( t.perimeter(), perimeter, "Triangle perimeter should be {0} instead of {1}".format( perimeter, t.perimeter()))
def test_constructor(self): point = Point(10,13,"Actual position") self.assertEqual(point.x, 10) self.assertEqual(point.y, 13) self.assertEqual(point.label, "Actual position") point = Point(x=10, y=13, label="Actual position") self.assertEqual(point.x, 10) self.assertEqual(point.y, 13) self.assertEqual(point.label, "Actual position")
def __init__(self, points): """ :param points: 2 point at :return: """ if len(points) != 2: raise Exception p = Shape._nearest_to_origin(points) self.A = p points.remove(p) self.C = points.pop() self.B = Point(self.A.y, self.C.x) self.D = Point(self.A.x, self.C.y)
class RectangleTest(unittest.TestCase): p1 = Point(0, 0) p2 = Point(1, 0) p3 = Point(0, 1) p4 = Point(1, 1) def test_constructor(self): t = Rectangle({self.p1, self.p4}) self.assertEqual(t.A, self.p1, "") #self.assertEqual(t.B, self.p2, "") self.assertEqual(t.C, self.p4, "") @unittest.skip("Unsolved ordering of points") def test_perimeter(self): t = Rectangle({self.p1, self.p4}) perimeter = 4 self.assertEqual( t.perimeter(), perimeter, "Rectangle perimeter should be {0} instead of {1}".format( perimeter, t.perimeter()))
class Methods(unittest.TestCase): p0 = Point(0,0) p0b = Point(0,0) p01 = Point(0,1) p10 = Point(1,0) p11 = Point(1,1) p10n = Point(-1,0) p01n = Point(0,-1) p20 = Point(2,0) p20n = Point(-2,0) def test_zero_distance(self): self.assertEqual(self.p0.distance(self.p0b), 0) self.assertEqual(self.p0.distance(self.p0), 0) def test_simple_distance(self): self.assertEqual(self.p0.distance(self.p01), 1) self.assertEqual(self.p0.distance(self.p10), 1) def test_distance(self): self.assertAlmostEqual(self.p0.distance(self.p11), 1.414, 3) self.assertAlmostEqual(self.p0.distance(self.p11), math.sqrt(2), 25) self.assertAlmostEqual(self.p11.distance(self.p20n), 3.162, 3) self.assertAlmostEqual(self.p11.distance(self.p20n), math.sqrt(2)*math.sqrt(5), 25) self.assertAlmostEqual(self.p11.distance(self.p20n), math.sqrt(10), 25) self.assertEqual(self.p0.distance(self.p20), 2) self.assertEqual(self.p20n.distance(self.p20), 4) def test_angles_agains_zero(self): know_values = [ (self.p10, 0), (self.p11, 45), (self.p01, 90), (self.p10n, 180), (self.p01n, 270) ] for p, a in know_values: self.assertEqual( self.p0.angle(p), a, "Angle should be {0} (between {1} and {2}".format(a, self.p0, p) )