42 lines
999 B
Python
42 lines
999 B
Python
import tempfile
|
|
from itertools import combinations_with_replacement
|
|
from numbers import Number
|
|
from pathlib import Path
|
|
|
|
import numpy as np
|
|
import pytest
|
|
from tiffwrite import tiffwrite
|
|
|
|
from ndbioimage import Imread
|
|
|
|
|
|
@pytest.fixture
|
|
def array():
|
|
return np.random.randint(0, 255, (64, 64, 2, 3, 4), "uint8")
|
|
|
|
|
|
@pytest.fixture()
|
|
def image(array):
|
|
with tempfile.TemporaryDirectory() as folder:
|
|
file = Path(folder) / "test.tif"
|
|
tiffwrite(file, array, "yxczt")
|
|
with Imread(file, axes="yxczt") as im:
|
|
yield im
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"s",
|
|
combinations_with_replacement(
|
|
(0, -1, 1, slice(None), slice(0, 1), slice(-1, 0), slice(1, 1)), 5
|
|
),
|
|
)
|
|
def test_slicing(s, image, array):
|
|
s_im, s_a = image[s], array[s]
|
|
if isinstance(s_a, Number):
|
|
assert isinstance(s_im, Number)
|
|
assert s_im == s_a
|
|
else:
|
|
assert isinstance(s_im, Imread)
|
|
assert s_im.shape == s_a.shape
|
|
assert np.all(s_im == s_a)
|