Skip to content

Commit fa4279d

Browse files
committed
Adding extra tests
1 parent b7d54af commit fa4279d

File tree

1 file changed

+43
-2
lines changed

1 file changed

+43
-2
lines changed

tests/integration/converters/test_nifti.py

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
import json
2+
13
import nibabel as nib
24
import numpy as np
35
import pytest
46

57
import tiledb
68
from tests import get_path
9+
from tiledb.bioimg.converters import DATASET_TYPE, FMT_VERSION
710
from tiledb.bioimg.converters.nifti import NiftiConverter
11+
from tiledb.bioimg.openslide import TileDBOpenSlide
812

913

1014
def compare_nifti_images(file1, file2, scaled_test):
@@ -43,8 +47,8 @@ def compare_nifti_images(file1, file2, scaled_test):
4347
@pytest.mark.parametrize(
4448
"compressor, lossless",
4549
[
46-
(tiledb.ZstdFilter(level=0), False),
47-
# WEBP is not supported for Grayscale images
50+
(tiledb.ZstdFilter(level=0), True),
51+
# WEBP is not supported for these images
4852
],
4953
)
5054
def test_nifti_converter_roundtrip(
@@ -71,3 +75,40 @@ def test_nifti_converter_roundtrip(
7175
output_path,
7276
scaled_test=False if filename == "nifti/visiblehuman.nii" else True,
7377
)
78+
79+
80+
@pytest.mark.parametrize(
81+
"filename, axes, canonical",
82+
[
83+
("nifti/example4d.nii", "XYZT", "TZYX"),
84+
("nifti/functional.nii", "XYZT", "TZYX"),
85+
("nifti/standard.nii", "XYZ", "ZYX"),
86+
("nifti/visiblehuman.nii", "XYZTC", "CZYX"),
87+
("nifti/anatomical.nii", "XYZ", "ZYX"),
88+
],
89+
)
90+
def test_nifti_converter_group_metadata(tmp_path, filename, axes, canonical):
91+
input_path = get_path(filename)
92+
tiledb_path = str(tmp_path / "to_tiledb")
93+
NiftiConverter.to_tiledb(input_path, tiledb_path, preserve_axes=False)
94+
95+
with TileDBOpenSlide(tiledb_path) as t:
96+
group_properties = t.properties
97+
assert group_properties["dataset_type"] == DATASET_TYPE
98+
assert group_properties["fmt_version"] == FMT_VERSION
99+
assert isinstance(group_properties["pkg_version"], str)
100+
assert group_properties["axes"] == axes
101+
102+
levels_group_meta = json.loads(group_properties["levels"])
103+
assert t.level_count == len(levels_group_meta)
104+
for level, level_meta in enumerate(levels_group_meta):
105+
assert level_meta["level"] == level
106+
assert level_meta["name"] == f"l_{level}.tdb"
107+
108+
level_axes = level_meta["axes"]
109+
shape = level_meta["shape"]
110+
level_width, level_height = t.level_dimensions[level]
111+
assert level_axes == canonical
112+
assert len(shape) == len(level_axes)
113+
assert shape[level_axes.index("X")] == level_width
114+
assert shape[level_axes.index("Y")] == level_height

0 commit comments

Comments
 (0)