예제 #1
0
 def test_interior_edges_tuple_non_ortho(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(2, 1)
     p3 = IntegerPoint(1, 2)
     t1 = IntegerTriangle(p1, p2, p3)
     interiorEdges = []
     for edgeTuple in t1.interior_edges_tuple():
         interiorEdges.append(IntegerSegment(edgeTuple))
예제 #2
0
 def test_sides(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(2, 0)
     p3 = IntegerPoint(2, 1)
     a = IntegerSegment(p1, p2)
     b = IntegerSegment(p2, p3)
     c = IntegerSegment(p3, p1)
     t1 = IntegerTriangle(p1, p2, p3)
     self.assertTupleEqual(t1.sides(), (a, b, c))
예제 #3
0
 def test_ortho_right_squaring_shapes(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(6, 0)
     p3 = IntegerPoint(6, 4)
     p4 = IntegerPoint(0, 4)
     t1 = IntegerTriangle(p1, p2, p3)
     shapes = t1.squaring_shapes()
     self.assertEqual(len(shapes), 1)
     expectedTriangle = IntegerOrthoRightTriangle(p1, p3, p4)
     self.assertTrue(shapes[0].like(expectedTriangle))
예제 #4
0
 def test_common_edge_squaring_shapes_right(self):
     p1 = IntegerPoint(5, 0)
     p2 = IntegerPoint(0, 2)
     p3 = IntegerPoint(5, 4)
     p4 = IntegerPoint(0, 0)
     p5 = IntegerPoint(0, 4)
     t1 = IntegerTriangle(p1, p2, p3)
     shapes = t1.squaring_shapes()
     expectedTriangle1 = IntegerTriangle(p1, p2, p4)
     expectedTriangle2 = IntegerTriangle(p2, p3, p5)
     self.assertEqual(len(shapes), 2)
     self.assertTrue(len([shape for shape in shapes if shape.like(expectedTriangle1)]), 1)
     self.assertTrue(len([shape for shape in shapes if shape.like(expectedTriangle2)]), 1)
예제 #5
0
 def test_circumscribed_rectangle_non_ortho_2_pts_common_pos_slope_on_diagonal(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(2, 2)
     p3 = IntegerPoint(5, 5)
     t1 = IntegerTriangle(p1, p2, p3)
     rp1 = IntegerPoint(0, 0)
     rp3 = IntegerPoint(5, 5)
     a = IntegerSegment(rp1, IntegerPoint(rp3._x, rp1._y))
     b = IntegerSegment(IntegerPoint(rp3._x, rp1._y), rp3)
     c = IntegerSegment(rp3, IntegerPoint(rp1._x, rp3._y))
     d = IntegerSegment(IntegerPoint(rp1._x, rp3._y), rp1)
     self.assertTupleEqual(t1.circumscribed_rectangle().sides(), (a, b, c, d))
     self.assertTupleEqual(t1.circumscribed_rectangle().vertices(), (a._p1, b._p1, c._p1, d._p1))
예제 #6
0
 def test_circumscribed_rectangle_non_ortho_2_pts_common_neg_slope_above_diagonal(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(3, -1)
     p3 = IntegerPoint(5, -5)
     t1 = IntegerTriangle(p1, p2, p3)
     rp1 = IntegerPoint(0, -5)
     rp3 = IntegerPoint(5, 0)
     a = IntegerSegment(rp1, IntegerPoint(rp3._x, rp1._y))
     b = IntegerSegment(IntegerPoint(rp3._x, rp1._y), rp3)
     c = IntegerSegment(rp3, IntegerPoint(rp1._x, rp3._y))
     d = IntegerSegment(IntegerPoint(rp1._x, rp3._y), rp1)
     rect = t1.circumscribed_rectangle()
     self.assertTupleEqual(rect.sides(), (a, b, c, d))
     self.assertTupleEqual(rect.vertices(), (a._p1, b._p1, c._p1, d._p1))
예제 #7
0
 def test_squaring_shapes_no_interior_vertex(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(5, 2)
     p3 = IntegerPoint(2, 5)
     p4 = IntegerPoint(5, 0)
     p5 = IntegerPoint(5, 5)
     p6 = IntegerPoint(0, 5)
     t1 = IntegerTriangle(p1, p2, p3)
     shapes = t1.squaring_shapes()
     expectedTriangle1 = IntegerTriangle(p1, p2, p4)
     expectedTriangle2 = IntegerTriangle(p2, p3, p5)
     expectedTriangle3 = IntegerTriangle(p1, p3, p6)
     self.assertEqual(len(shapes), 3)
     self.assertTrue(len([shape for shape in shapes if shape.like(expectedTriangle1)]), 1)
     self.assertTrue(len([shape for shape in shapes if shape.like(expectedTriangle2)]), 1)
     self.assertTrue(len([shape for shape in shapes if shape.like(expectedTriangle3)]), 1)
예제 #8
0
 def test_squaring_shapes_upper_right_interior_vertex(self):
     p1 = IntegerPoint(0, 5)
     p2 = IntegerPoint(4, 4)
     p3 = IntegerPoint(6, 0)
     p4 = IntegerPoint(6, 4)
     p5 = IntegerPoint(4, 5)
     p6 = IntegerPoint(0, 0)
     t1 = IntegerTriangle(p1, p2, p3)
     shapes = t1.squaring_shapes()
     expectedTriangle1 = IntegerTriangle(p1, p2, p5)
     expectedTriangle2 = IntegerTriangle(p2, p3, p4)
     expectedTriangle3 = IntegerTriangle(p1, p3, p6)
     expectedRectangle = IntegerOrthoRectangle(p4, p5)
     self.assertEqual(len(shapes), 4)
     self.assertTrue(len([shape for shape in shapes if shape.like(expectedTriangle1)]), 1)
     self.assertTrue(len([shape for shape in shapes if shape.like(expectedTriangle2)]), 1)
     self.assertTrue(len([shape for shape in shapes if shape.like(expectedTriangle3)]), 1)
     self.assertTrue(len([shape for shape in shapes if shape.like(expectedRectangle)]), 1)
예제 #9
0
 def test_ortho_right_interior_pt_ct_upper_left(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(0, 4)
     p3 = IntegerPoint(6, 4)
     t1 = IntegerTriangle(p1, p2, p3)
     self.assertEqual(t1.interior_pt_ct(), 7)
예제 #10
0
 def test_common_edge_interior_pt_ct_right(self):
     p1 = IntegerPoint(5, 0)
     p2 = IntegerPoint(0, 2)
     p3 = IntegerPoint(5, 4)
     t1 = IntegerTriangle(p1, p2, p3)
     self.assertEqual(t1.interior_pt_ct(), 8)
예제 #11
0
 def test_common_edge_interior_pt_ct_bottom(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(2, 4)
     p3 = IntegerPoint(5, 0)
     t1 = IntegerTriangle(p1, p2, p3)
     self.assertEqual(t1.interior_pt_ct(), 7)
예제 #12
0
 def test_interior_pt_ct_lower_right_interior_vertex(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(3, 1)
     p3 = IntegerPoint(4, 5)
     t1 = IntegerTriangle(p1, p2, p3)
     self.assertEqual(t1.interior_pt_ct(), 5)
예제 #13
0
 def test_interior_pt_ct_no_interior_vertex(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(5, 2)
     p3 = IntegerPoint(2, 5)
     t1 = IntegerTriangle(p1, p2, p3)
     self.assertEqual(t1.interior_pt_ct(), 9)
예제 #14
0
 def test_side_tuple(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(2, 0)
     p3 = IntegerPoint(2, 1)
     t1 = IntegerTriangle(p1, p2, p3)
     self.assertTupleEqual(t1.vertex_tuple(), ((0, 0), (2, 0), (2, 1)))
예제 #15
0
 def test_vertices(self):
     p1 = IntegerPoint(0, 0)
     p2 = IntegerPoint(2, 0)
     p3 = IntegerPoint(2, 1)
     t1 = IntegerTriangle(p1, p2, p3)
     self.assertTupleEqual(t1.vertices(), (p1, p2, p3))
예제 #16
0
 def test_creation_from_tuple(self):
     t1 = IntegerTriangle((0, 0), (2, 0), (2, 1))
     self.assertTupleEqual(t1.vertex_tuple(), ((0, 0), (2, 0), (2, 1)))