def run_test(map_param): if not isinstance(expected, str): plot_spec = ggplot() + geom_point(map_join=map_join, map=map_param) assert get_layer_spec(plot_spec, 'map_join') == expected else: assert_error( expected, lambda: ggplot() + geom_point(map_join=map_join, map=map_param) )
def test_when_both_data_and_map_are_gdf_should_has_geodataframe_meta_only_for_map( ): plot_spec = ggplot() + geom_polygon(data=make_geodataframe(), map=make_geodataframe()) assert EXPECTED_GDF_META == get_map_data_meta(plot_spec, 0) assert {} == get_data_meta(plot_spec, 0)
def test_plot_should_have_geometries_when_regions_in_map_parameter(self, mock_request): mock_request.return_value = make_success_response() \ .set_geocoded_features( [ FeatureBuilder() \ .set_query(USA_REQUEST) \ .set_id(USA_ID) \ .set_name(USA_NAME) \ .set_boundary(GeoPoint(0, 1)) .build_geocoded(), FeatureBuilder() \ .set_query(RUSSIA_REQUEST) \ .set_id(RUSSIA_ID) \ .set_name(RUSSIA_NAME) \ .set_boundary(GeoPoint(0, 1)) .build_geocoded() ] ).build() plotSpec = ggplot() + geom_polygon(map=self.make_regions()) # previous behaviour # expected_map_data_meta = { # 'georeference': {} # } expected_map_data_meta = { 'geodataframe': {'geometry': 'geometry'} } assert expected_map_data_meta == get_map_data_meta(plotSpec, 0)
def test_map_join_regions(map_join, map_columns, expected): class MockGeocoder(Geocoder): def get_centroids(self) -> 'GeoDataFrame': return geo_data_frame([Point(-5, 17)], map_columns) def get_geocodes(self) -> pandas.DataFrame: return pandas.DataFrame(columns=map_columns) geocoder = MockGeocoder() if not isinstance(expected, str): plot_spec = ggplot() + geom_point(map_join=map_join, map=geocoder) assert get_layer_spec(plot_spec, 'map_join') == expected else: assert_error( expected, lambda: ggplot() + geom_point(map_join=map_join, map=geocoder))
def test_plot_should_has_meta_data_for_geodataframe(): plotSpec = ggplot() + geom_polygon(data=make_geodataframe()) expected_data_meta = { 'geodataframe': {'geometry': 'coord'} } assert expected_data_meta == get_data_meta(plotSpec, 0)
def test_plot_should_has_meta_map_for_georeference(self): plotSpec = ggplot() + geom_polygon(map=self.make_regions()) expected_map_data_meta = {'georeference': {}} assert expected_map_data_meta == get_map_data_meta(plotSpec, 0)
def test_data_should_call_to_dataframe(): geocoder = mock_geocoder() plot_spec = ggplot() + geom_map(data=geocoder) geocoder.assert_get_geocodes_invocation() assert geocoder.get_test_geocodes() == get_layer_spec(plot_spec, 'data')
def test_geom_livemap_fetches_centroids(): geocoder = mock_geocoder() plot_spec = ggplot() + geom_livemap(map=geocoder) assert_map_data_meta(plot_spec) assert geocoder.get_test_point_dict() == get_map(plot_spec)
def test_geom_rect_fetches_limits(): geocoder = mock_geocoder() plot_spec = ggplot() + geom_rect(map=geocoder) assert_map_data_meta(plot_spec) assert geocoder.get_test_polygon_dict() == get_map(plot_spec)
def test_geom_polygon_fetches_boundaries(): geocoder = mock_geocoder() plot_spec = ggplot() + geom_polygon(map=geocoder) assert_map_data_meta(plot_spec) assert geocoder.get_test_polygon_dict() == get_map(plot_spec)
def test_geom_path_raises_an_error(): assert_error( "Geocoding doesn't provide geometries for geom_path", lambda: ggplot() + geom_path(map=mock_geocoder()) )
def test_plot_should_has_meta_map_for_geodataframe(): plot_spec = ggplot() + geom_polygon(map=make_geodataframe()) assert EXPECTED_GDF_META == get_map_data_meta(plot_spec, 0)