def test_intersection_half_of_square(self): board = Board(Polygon([[0, 0], [100, 100], [100, 0]]), [0, 0]) piece = PolygonPiece(Polygon([[0, 0], [0, 100], [100, 100], [100, 0]]), [0, 0]) actual_area = PolygonIntersector().intersection_area( board.get_points_in_plane(), piece.get_points_in_plane()) self.assertEqual(piece.get_polygon().area() / 2, actual_area)
def test_get_intersection_area_same_as_piece_if_fully_submerged(self): board = Board(Polygon([[0, 0], [0, 1000], [1000, 1000], [1000, 0]]), [0, 0]) piece = PolygonPiece(Polygon([[0, 0], [100, 100], [100, 0]]), [50, 50]) actual_area = PolygonIntersector().intersection_area( board.get_points_in_plane(), piece.get_points_in_plane()) self.assertEqual(piece.get_polygon().area(), actual_area)
def test_get_intersection_zero_if_poly_on_a_different_planet(self): board = Board(Polygon([[0, 0], [0, 1000], [1000, 0], [1000, 1000]]), [0, 0]) piece = PolygonPiece(Polygon([[0, 0], [100, 100], [100, 0]]), [5000, 5000]) actual_area = PolygonIntersector().intersection_area( board.get_points_in_plane(), piece.get_points_in_plane()) self.assertEqual(0, actual_area)