Skip to content

Commit ba3eab4

Browse files
committed
Adding extra tests
1 parent b7d54af commit ba3eab4

File tree

1 file changed

+44
-2
lines changed

1 file changed

+44
-2
lines changed

tests/integration/converters/test_nifti.py

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
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
12+
from tiledb.cc import WebpInputFormat
813

914

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

0 commit comments

Comments
 (0)