def test_distance_to_polygon_6(self): """Test calculating distance to polygon.""" mock_polygon = Polygon([ Point(-30.0, 179.0), Point(-30.0, -179.5), Point(-29.5, -179.5), Point(-29.5, 179.0), Point(-30.0, 179.0), ]) home_coordinates = (-29.8, -177.0) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_polygon) self.assertAlmostEqual(distance, 241.2, 1) home_coordinates = (-29.9, 178.0) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_polygon) self.assertAlmostEqual(distance, 96.4, 1) home_coordinates = (-29.0, -179.8) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_polygon) self.assertAlmostEqual(distance, 55.6, 1) home_coordinates = (-29.0, 179.8) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_polygon) self.assertAlmostEqual(distance, 55.6, 1)
def test_distance_to_bbox_1(self): """Test calculating distance to bounding box.""" home_coordinates = (20.0, 20.0) # 1. inside mock_bbox = BoundingBox(Point(10.0, 10.0), Point(30.0, 30.0)) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 0.0, 1) # 2. above-left mock_bbox = BoundingBox(Point(10.0, 25.0), Point(15.0, 30.0)) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 768.1, 1) # 3. above mock_bbox = BoundingBox(Point(10.0, 15.0), Point(15.0, 25.0)) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 556.0, 1) # 4. above-right mock_bbox = BoundingBox(Point(10.0, 10.0), Point(15.0, 15.0)) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 768.1, 1) # 5. left mock_bbox = BoundingBox(Point(15.0, 25.0), Point(25.0, 30.0)) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 522.4, 1) # 6. right mock_bbox = BoundingBox(Point(15.0, 10.0), Point(25.0, 15.0)) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 522.4, 1) # 7. below-left mock_bbox = BoundingBox(Point(25.0, 25.0), Point(30.0, 30.0)) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 756.8, 1) # 8. below mock_bbox = BoundingBox(Point(25.0, 15.0), Point(30.0, 25.0)) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 556.0, 1) # 9. below-right mock_bbox = BoundingBox(Point(25.0, 10.0), Point(30.0, 15.0)) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 756.8, 1) # special case home_coordinates = (-20.0, -20.0) mock_bbox = BoundingBox(Point(-30.0, -15.0), Point(-25.0, -10.0)) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 756.8, 1)
def test_distance_to_point(self): """Test calculating distance to point.""" home_coordinates = (-31.0, 150.0) mock_point = Point(-30.0, 151.0) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_point) self.assertAlmostEqual(distance, 146.8, 1)
def test_extract_coordinates_from_unsupported_geometry(self): """Test extracting coordinates from unsupported geometry.""" mock_unsupported_geometry = MagicMock() latitude, longitude = GeoRssDistanceHelper.extract_coordinates( mock_unsupported_geometry) self.assertIsNone(latitude) self.assertIsNone(longitude)
def test_distance_to_unsupported_geometry(self): """Test calculating distance to unsupported geometry.""" home_coordinates = (-31.0, 150.0) mock_unsupported_geometry = MagicMock() distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_unsupported_geometry) assert distance == float("inf")
def test_extract_coordinates_from_point(self): """Test extracting coordinates from point.""" mock_point = Point(-30.0, 151.0) latitude, longitude = GeoRssDistanceHelper.extract_coordinates( mock_point) assert latitude == -30.0 assert longitude == 151.0
def test_distance_to_bbox_2(self): """Test calculating distance to bounding box.""" mock_bbox = BoundingBox(Point(5.0, 175.0), Point(15.0, -175.0)) # 1. inside home_coordinates = (5.0, 176.0) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 0.0, 1) # 2. above-left home_coordinates = (20.0, 170.0) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 768.1, 1) # 3. above-right home_coordinates = (20.0, -170.0) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_bbox) self.assertAlmostEqual(distance, 768.1, 1)
def test_distance_to_polygon_4(self): """Test calculating distance to polygon.""" home_coordinates = (30.0, 151.3) mock_polygon = Polygon([ Point(30.0, 151.0), Point(30.0, 151.5), Point(30.5, 151.5), Point(30.5, 151.0), Point(30.0, 151.0), ]) distance = GeoRssDistanceHelper.distance_to_geometry( home_coordinates, mock_polygon) self.assertAlmostEqual(distance, 0.0, 1)
def test_extract_coordinates_from_polygon(self): """Test extracting coordinates from polygon.""" mock_polygon = Polygon([ Point(-30.0, 151.0), Point(-30.0, 151.5), Point(-30.5, 151.5), Point(-30.5, 151.0), Point(-30.0, 151.0), ]) latitude, longitude = GeoRssDistanceHelper.extract_coordinates( mock_polygon) self.assertAlmostEqual(latitude, -30.2, 1) self.assertAlmostEqual(longitude, 151.2, 1)