Skip to content

Commit 8b79856

Browse files
committed
Add test test_fieldset_from_structured_generic_datasets
1 parent 664a1aa commit 8b79856

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

tests/v4/test_fieldset.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from parcels._datasets.structured.generic import datasets as datasets_structured
1313
from parcels.field import Field, VectorField
1414
from parcels.fieldset import CalendarError, FieldSet, _datetime_to_msg
15-
from parcels.xgrid import XGrid
15+
from parcels.xgrid import _FIELD_DATA_ORDERING, XGrid, get_axis_from_dim_name
1616

1717
ds = datasets_structured["ds_2d_left"]
1818

@@ -84,6 +84,30 @@ def test_fieldset_gridset(fieldset):
8484
assert len(fieldset.gridset) == 2
8585

8686

87+
@pytest.mark.parametrize("ds", [pytest.param(ds, id=k) for k, ds in datasets_structured.items()])
88+
def test_fieldset_from_structured_generic_datasets(ds):
89+
grid = XGrid.from_dataset(ds)
90+
fields = []
91+
for var in ds.data_vars:
92+
fields.append(Field(var, ds[var], grid, mesh_type="flat"))
93+
94+
fieldset = FieldSet(fields)
95+
96+
assert len(fieldset.fields) == len(ds.data_vars)
97+
for field in fieldset.fields.values():
98+
assert (
99+
len(field.data.shape) == 4
100+
), f"Field data should have 4 dimensions (time, depth, lat, lon), got {len(field.data.shape)}"
101+
102+
for ax_expected, dim in zip(_FIELD_DATA_ORDERING, field.data.dims, strict=True):
103+
ax_actual = get_axis_from_dim_name(field.grid.xgcm_grid.axes, dim)
104+
if ax_actual is None:
105+
continue # None is ok
106+
assert ax_actual == ax_expected, f"Expected axis {ax_expected} for dimension '{dim}', got {ax_actual}"
107+
108+
assert len(fieldset.gridset) == 1
109+
110+
87111
def test_fieldset_gridset_multiple_grids(): ...
88112

89113

0 commit comments

Comments
 (0)