@pytest.fixture
def geometry_ds():
    from shapely.geometry import MultiPoint, Point
    geoms = np.empty(4, dtype=object)
    geoms[:] = [MultiPoint([(1.0, 2.0), (2.0, 3.0)]), Point(3.0, 4.0), Point(4.0, 5.0), Point(3.0, 4.0)]
    ds = xr.Dataset({'data': xr.DataArray(range(len(geoms)), dims=('index',)), 'time': xr.DataArray([0, 0, 0, 1], dims=('index',))})
    shp_ds = ds.assign(geometry=xr.DataArray(geoms, dims=('index',)))
    cf_ds = ds.assign(x=xr.DataArray([1.0, 2.0, 3.0, 4.0, 3.0], dims=('node',), attrs={'axis': 'X'}), y=xr.DataArray([2.0, 3.0, 4.0, 5.0, 4.0], dims=('node',), attrs={'axis': 'Y'}), node_count=xr.DataArray([2, 1, 1, 1], dims=('index',)), crd_x=xr.DataArray([1.0, 3.0, 4.0, 3.0], dims=('index',), attrs={'nodes': 'x'}), crd_y=xr.DataArray([2.0, 4.0, 5.0, 4.0], dims=('index',), attrs={'nodes': 'y'}), geometry_container=xr.DataArray(attrs={'geometry_type': 'point', 'node_count': 'node_count', 'node_coordinates': 'x y', 'coordinates': 'crd_x crd_y'}))
    cf_ds = cf_ds.set_coords(['x', 'y', 'crd_x', 'crd_y'])
    return (cf_ds, shp_ds)
@pytest.fixture
def geometry_ds():
    from shapely.geometry import MultiPoint, Point
    geoms = np.empty(4, dtype=object)
    geoms[:] = [MultiPoint([(1.0, 2.0), (2.0, 3.0)]), Point(3.0, 4.0), Point(4.0, 5.0), Point(3.0, 4.0)]
    ds = xr.Dataset({'data': xr.DataArray(range(len(geoms)), dims=('index',)), 'time': xr.DataArray([0, 0, 0, 1], dims=('index',))})
    shp_ds = ds.assign(geometry=xr.DataArray(geoms, dims=('index',)))
    cf_ds = ds.assign(x=xr.DataArray([1.0, 2.0, 3.0, 4.0, 3.0], dims=('node',), attrs={'axis': 'X'}), y=xr.DataArray([2.0, 3.0, 4.0, 5.0, 4.0], dims=('node',), attrs={'axis': 'Y'}), node_count=xr.DataArray([2, 1, 1, 1], dims=('index',)), crd_x=xr.DataArray([1.0, 3.0, 4.0, 3.0], dims=('index',), attrs={'nodes': 'x'}), crd_y=xr.DataArray([2.0, 4.0, 5.0, 4.0], dims=('index',), attrs={'nodes': 'y'}), geometry_container=xr.DataArray(attrs={'geometry_type': 'point', 'node_count': 'node_count', 'node_coordinates': 'x y', 'coordinates': 'crd_x crd_y'}))
    cf_ds = cf_ds.set_coords(['x', 'y', 'crd_x', 'crd_y'])
    return (cf_ds, shp_ds)