sedona icon indicating copy to clipboard operation
sedona copied to clipboard

chore(geopandas): Add more edge cases to the `test_match_geopandas_series.py` suite

Open petern48 opened this issue 3 months ago • 0 comments

test_match_geopandas_series.py is where we compare that our results match the results of geopandas. We reuse the same lists of geometries (e.g self.linestrings, self.geoms, etc) in nearly every test. I wrote these cases very early and failed to consider various edge cases. In this issue, I'd like to add some test cases to these lists (e.g self.linestrings). I wouldn't be surprised if we fail some of these.

Here are the edge cases I think we should add. I think each of these should be their own PR, since it's possible that they cause test failures and require us to modify the implementation of existing sedona geopandas functions.

  • empty geometries (e.g POINT EMPTY)
  • non-valid polygons (e.g POLYGON((0 0, 0 1, 2 1, 2 2, 1 2, 1 0, 0 0)), see here to learn about validity)
  • GeometryCollections cases (apparently, there's only one case at the moment...)
    • geom with only empty geometries
    • geom collection w/ only a single geom (e.g is_closed only applies to linestrings, should it return true for this GeomCol (< a single closed linestring >)?
  • Z and M dimensions for everything
  • CRS
  • Other geometry types that Sedona doesn't support (e.g LinearRing, box)

Here's an example of the current cases (and hence where we would need to add more cases). https://github.com/apache/sedona/blob/6dc39e753b9d2087d27d2a6072b95d3eda91c53f/python/tests/geopandas/test_match_geopandas_series.py#L59-L67

petern48 avatar Oct 12 '25 00:10 petern48