overpy_series_test.py 1.97 KB
Newer Older
1
import unittest
2

3
import geopandas as gpd
4 5 6 7
from shapely.geometry import LineString, Point

from context import measprocess as mpc

Lukas Eller's avatar
Lukas Eller committed
8 9

class TestOSMAPI(unittest.TestCase):
10
    def setUp(self):
11
        self._coords = [(48.201914, 16.363859), (48.194170, 16.385466)]
Lukas Eller's avatar
Lukas Eller committed
12

13 14 15 16 17 18 19 20 21
        self._measurement_coords_not_set = gpd.GeoSeries(
            (Point(lon, lat) for lat, lon in self._coords)
        )

        self._measurement_coords_set = gpd.GeoSeries(
            (Point(lon, lat) for lat, lon in self._coords)
        ).set_crs("EPSG:4326")

    def test_basic_API(self):
22
        street_series = mpc.geospatial.fetch.geoseries_streets(
23 24 25
            self._measurement_coords_set
        )

26
        blockage_series = mpc.geospatial.fetch.geoseries_buildings(
27 28 29
            self._measurement_coords_set
        )

30
        self.assertTrue("EPSG:4326" == street_series.crs)
31

32
        self.assertTrue("EPSG:4326" == blockage_series.crs)
33 34 35 36

    def test_raise_error_if_crs_not_set(self):

        with self.assertRaises(ValueError):
37
            mpc.geospatial.fetch.geoseries_buildings(
38 39 40
                self._measurement_coords_not_set
            )

41
            mpc.geospatial.fetch.geoseries_streets(self._measurement_coords_not_set)
42 43 44

    def test_output_coordinates_streets(self):

45
        street_series = mpc.geospatial.fetch.geoseries_streets(
46 47 48 49 50 51
            self._measurement_coords_set
        )

        street_series = street_series.to_crs("EPSG:31287")
        projected = self._measurement_coords_set.to_crs("EPSG:31287")

52
        self.assertTrue(street_series.distance(projected[0]).mean() < 1000)
53 54 55

    def test_output_coordinates_blockages(self):

56
        blockage_series = mpc.geospatial.fetch.geoseries_buildings(
57 58 59 60 61 62
            self._measurement_coords_set
        )

        blockage_series = blockage_series.to_crs("EPSG:31287")
        projected = self._measurement_coords_set.to_crs("EPSG:31287")

63 64
        self.assertTrue(blockage_series.distance(projected[0]).mean() < 1000)

65

66
if __name__ == "__main__":
67
    unittest.main()