Skip to content

Commit

Permalink
Don't remove test
Browse files Browse the repository at this point in the history
  • Loading branch information
maxrjones committed Jan 30, 2025
1 parent f9eb470 commit 14f216b
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 0 deletions.
2 changes: 2 additions & 0 deletions docs/releases.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ Documentation
Internal Changes
~~~~~~~~~~~~~~~~

- Add netCDF3 test. (:pull:`397`) By `Tom Nicholas <https://github.com/TomNicholas>`_.

.. _v1.2.0:

v1.2.0 (5th Dec 2024)
Expand Down
11 changes: 11 additions & 0 deletions virtualizarr/tests/test_readers/conftest.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import pathlib
import warnings

import h5py # type: ignore
Expand Down Expand Up @@ -322,3 +323,13 @@ def root_coordinates_hdf5_file(tmpdir, np_uncompressed_int16):
f.create_dataset(name="lon", data=data)
f.attrs.create(name="coordinates", data="lat lon")
return filepath


@pytest.fixture
def netcdf3_file(tmp_path: pathlib.Path) -> pathlib.Path:
ds = xr.Dataset({"foo": ("x", np.array([1, 2, 3]))})

filepath = tmp_path / "file.nc"
ds.to_netcdf(filepath, format="NETCDF3_CLASSIC")

return filepath
30 changes: 30 additions & 0 deletions virtualizarr/tests/test_readers/test_netcdf3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import numpy as np
import xarray as xr
import xarray.testing as xrt

from virtualizarr import open_virtual_dataset
from virtualizarr.manifests import ChunkManifest, ManifestArray
from virtualizarr.tests import requires_scipy
from virtualizarr.zarr import ZArray


@requires_scipy
def test_read_netcdf3(netcdf3_file):
filepath = str(netcdf3_file)
vds = open_virtual_dataset(filepath)

assert isinstance(vds, xr.Dataset)
assert list(vds.variables.keys()) == ["foo"]
assert isinstance(vds["foo"].data, ManifestArray)

expected_manifest = ChunkManifest(
entries={"0": {"path": filepath, "offset": 80, "length": 12}}
)
expected_zarray = ZArray(dtype=np.dtype(">i4"), shape=(3,), chunks=(3,))
expected_ma = ManifestArray(chunkmanifest=expected_manifest, zarray=expected_zarray)
expected_vds = xr.Dataset({"foo": xr.Variable(data=expected_ma, dims=["x"])})

xrt.assert_identical(vds, expected_vds)


# TODO test loading data against xarray backend, see issue #394 for context

0 comments on commit 14f216b

Please sign in to comment.