def test_intersect_normal(self): s_1: Segment = Segment(Point(0, 0), Point(3, 0)) s_2: Segment = Segment(Point(1, 1), Point(2, -1)) s_3: Segment = Segment(Point(3, 1), Point(3, -1)) s_4: Segment = Segment(Point(3, -2), Point(5, 0)) self.assertEqual(intersect(s_1, s_2), True) self.assertEqual(intersect(s_1, s_3), True) self.assertEqual(intersect(s_1, s_4), False)
def test_get_distance_ss_normal(self): s_0: Segment = Segment(Point(0, 0), Point(2, 2)) s_1: Segment = Segment(Point(-3, -3), Point(-1, -1)) s_2: Segment = Segment(Point(0, -3), Point(1, -2)) s_3: Segment = Segment(Point(0, 2), Point(2, 0)) self.assertEqual(equals(get_distance_ss(s_0, s_1), math.sqrt(2)), True) self.assertEqual(equals(get_distance_ss(s_0, s_2), math.sqrt(5)), True) self.assertEqual(equals(get_distance_ss(s_0, s_3), 0), True)
def test_get_cross_point_normal(self): s_1: Segment = Segment(Point(0, 0), Point(1, 1)) s_2: Segment = Segment(Point(0, 1), Point(1, 0)) s_3: Segment = Segment(Point(1, 0), Point(0, 1)) s_4: Segment = Segment(Point(0, 1), Point(1, 2)) self.assertEqual(equals(get_cross_point(s_1, s_2).x, 0.5), True) self.assertEqual(equals(get_cross_point(s_1, s_2).y, 0.5), True) self.assertEqual(equals(get_cross_point(s_1, s_3).x, 0.5), True) self.assertEqual(equals(get_cross_point(s_1, s_3).y, 0.5), True) self.assertIsNone(get_cross_point(s_1, s_4))
def test_is_parallel_normal(self): # Vector v_1: Vector = Vector(1.0, 1.0) v_2: Vector = Vector(2.0, 2.0) self.assertEqual(is_parallel(v_1, v_2), True) # Points p_1: Point = Point(1.0, 1.0) p_2: Point = Point(2.0, 2.0) p_3: Point = Point(-1.0, -1.0) p_4: Point = Point(-2.0, -2.0) self.assertEqual(is_parallel(p_1, p_2, p_3, p_4), True) # Segments s_1: Segment = Segment(p_1, p_2) s_2: Segment = Segment(p_3, p_4) self.assertEqual(is_parallel(s_1, s_2), True)
def test_defined_segment_correctly(self) -> None: """ Segment Data Structure Normal Case Test :return: None """ segment: Segment = Segment(Point(0.1, 0.2), Point(0.3, 0.4)) self.assertEqual(segment.p1.x, 0.1) self.assertEqual(segment.p1.y, 0.2) self.assertEqual(segment.p2.x, 0.3) self.assertEqual(segment.p2.y, 0.4)
def test_get_distance_sp_normal(self): p_l: Point = Point(-1, -1) p_r: Point = Point(1, 1) s: Segment = Segment(p_l, p_r) p_1: Point = Point(-2, -2) p_2: Point = Point(0, 1) p_3: Point = Point(2, 2) self.assertEqual(equals(get_distance_sp(s, p_1), (p_1 - p_l).abs()), True) self.assertEqual(equals(get_distance_sp(s, p_2), 1.0 / math.sqrt(2)), True) self.assertEqual(equals(get_distance_sp(s, p_3), (p_3 - p_r).abs()), True)
def test_get_num_of_segment_intersections_normal(self): segments: List[Segment] = [ Segment(Point(2, 2), Point(2, 5)), Segment(Point(1, 3), Point(5, 3)), Segment(Point(4, 1), Point(4, 4)), Segment(Point(5, 2), Point(7, 2)), Segment(Point(6, 1), Point(6, 3)), Segment(Point(6, 5), Point(6, 7)) ] self.assertEqual(3, get_num_of_segment_intersections(segments))
def test_reflect_normal(self): seg: Segment = Segment(Point(0, 0), Point(3, 4)) p: Point = Point(2, 5) self.assertEqual(equals(reflect(seg, p).x, 4.24), True) self.assertEqual(equals(reflect(seg, p).y, 3.32), True)
def test_project_normal(self): seg: Segment = Segment(Point(0, 0), Point(3, 4)) p: Point = Point(2, 5) self.assertEqual(equals(project(seg, p).x, 3.12), True) self.assertEqual(equals(project(seg, p).y, 4.16), True)