def test_generate_plottable_linear_points_between_twopoints(self): pt_start = Point(1, 1) pt_end = Point(20, 20) unit = Vector.create_vector_from_2points(pt_start, pt_end).UnitVector new_points = Util.generate_plottable_points_between_twopoints( pt_start, pt_end) distance_start_end = Point.euclidean_distance(pt_start, pt_end) for new_point in new_points: distance_from_start = Point.euclidean_distance(pt_start, new_point) self.assertTrue(distance_from_start < distance_start_end) new_unit = Vector.create_vector_from_2points(pt_start, new_point).UnitVector dot_product = Vector.dot_product(new_unit, unit) self.assertAlmostEquals(dot_product, 1.0, delta=0.1)
def test_generate_points_from_circle_model_center_at_0_0_radius_10(self): center_x = 0 center_y = 0 radius = 100.0 distance = 5 model = CircleModel(center_x, center_y, radius) points = CircleModel.generate_points_from_circle(model, distance=distance) pt: Point for pt in points: distance_from_center = math.sqrt((pt.X - center_x)**2 + (pt.Y - center_y)**2) self.assertAlmostEqual(distance_from_center, radius, 2) #compare distance for index in range(1, len(points)): point1 = points[index] point2 = points[index - 1] actual_distance = Point.euclidean_distance(point1, point2) self.assertAlmostEqual(distance, actual_distance, delta=2)