Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions tests/test_add_img.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import pytest

__author__ = "keviny2"
__copyright__ = "keviny2"
__license__ = "MIT"


def test_add_img(spe):
tspe = spe.add_img(
image_source="tests/images/sample_image4.png",
scale_factor=1,
sample_id="sample_2",
image_id="unsplash",
)

assert tspe.img_data.shape[0] == spe.img_data.shape[0] + 1

added_img = tspe.get_img(sample_id="sample_2", image_id="unsplash")
assert added_img is not None


def test_add_img_already_exists(spe):
img_data = spe.img_data
with pytest.raises(ValueError):
spe.add_img(
image_source="tests/images/sample_image4.png",
scale_factor=1,
sample_id=img_data["sample_id"][0],
image_id=img_data["image_id"][0],
)


def test_add_img_in_place(spe):
original_count = spe.img_data.shape[0]
original_id = id(spe)

result = spe.add_img(
image_source="tests/images/sample_image4.png",
scale_factor=1.5,
sample_id="sample_3",
image_id="new_image",
in_place=True
)

# Check if in-place
assert id(result) == original_id
assert spe.img_data.shape[0] == original_count + 1


def test_add_img_not_in_place(spe):
result = spe.add_img(
image_source="tests/images/sample_image4.png",
scale_factor=2,
sample_id="sample_4",
image_id="another_image"
)

# Check if not in-place
assert id(result) != id(spe)
assert spe.img_data.shape[0] == spe.img_data.shape[0]
assert result.img_data.shape[0] == spe.img_data.shape[0] + 1


def test_add_img_invalid_source(spe):
with pytest.raises(FileNotFoundError):
spe.add_img(
image_source="non_existent_image.png",
scale_factor=1,
sample_id="sample_6",
image_id="invalid_source"
)
95 changes: 95 additions & 0 deletions tests/test_get_img.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
import pytest
from copy import deepcopy
import numpy as np
from spatialexperiment.SpatialImage import VirtualSpatialImage

__author__ = "keviny2"
__copyright__ = "keviny2"
__license__ = "MIT"


def test_get_img_no_img_data(spe):
tspe = deepcopy(spe)

tspe.img_data = None
assert not tspe.get_img()


def test_get_img_no_matches(spe):
with pytest.raises(ValueError):
images = spe.get_img(sample_id="foo", image_id="foo")


def test_get_img_both_str(spe):
res = spe.get_img(sample_id="sample_1", image_id="dice")
images = spe.img_data[np.array(spe.img_data["sample_id"]) == "sample_1",]
images = images[np.array(images["image_id"]) == "dice",]["data"][0]

assert isinstance(res, VirtualSpatialImage)
assert res == images


def test_get_img_both_true(spe):
res = spe.get_img(sample_id=True, image_id=True)
images = spe.img_data["data"]

assert isinstance(res, list)
assert res == images


def test_get_img_both_none(spe):
res = spe.get_img(sample_id=None, image_id=None)
image = spe.img_data[0,]["data"][0]

assert isinstance(res, VirtualSpatialImage)
assert res == image


def test_get_img_sample_str_image_true(spe):
res = spe.get_img(sample_id="sample_1", image_id=True)
images = spe.img_data[np.array(spe.img_data["sample_id"]) == "sample_1",]["data"]

assert isinstance(res, list)
assert res == images


def test_get_img_sample_true_image_str(spe):
res = spe.get_img(sample_id=True, image_id="desert")
images = spe.img_data[np.array(spe.img_data["image_id"]) == "desert",]["data"][0]

assert isinstance(res, VirtualSpatialImage)
assert res == images


def test_get_img_sample_str_image_none(spe):
res = spe.get_img(sample_id="sample_1", image_id=None)
images = spe.img_data[np.array(spe.img_data["sample_id"]) == "sample_1",]["data"][0]

assert isinstance(res, VirtualSpatialImage)
assert res == images


def test_get_img_sample_none_image_str(spe):
res = spe.get_img(sample_id=None, image_id="aurora")
images = spe.img_data[np.array(spe.img_data["image_id"]) == "aurora",]["data"][0]

assert isinstance(res, VirtualSpatialImage)
assert res == images


def test_get_img_sample_true_image_none(spe):
res = spe.get_img(sample_id=True, image_id=None)
idxs = [spe.img_data["sample_id"].index(x) for x in set(spe.img_data["sample_id"])]
images = spe.img_data[idxs,]["data"]

assert isinstance(res, list) and all(isinstance(item, VirtualSpatialImage) for item in res)
assert set(res) == set(images)


def test_get_img_sample_none_image_true(spe):
res = spe.get_img(sample_id=None, image_id=True)
first_sample_id = spe.img_data["sample_id"][0]
images = spe.img_data[np.array(spe.img_data["sample_id"]) == first_sample_id,]["data"]

assert isinstance(res, list) and all(isinstance(item, VirtualSpatialImage) for item in res)
assert set(res) == set(images)
111 changes: 0 additions & 111 deletions tests/test_img_data_methods.py → tests/test_remove_img.py
Original file line number Diff line number Diff line change
@@ -1,122 +1,11 @@
import pytest
from copy import deepcopy
import numpy as np
from spatialexperiment.SpatialImage import VirtualSpatialImage

__author__ = "keviny2"
__copyright__ = "keviny2"
__license__ = "MIT"


def test_get_img_no_img_data(spe):
tspe = deepcopy(spe)

tspe.img_data = None
assert not tspe.get_img()


def test_get_img_no_matches(spe):
with pytest.raises(ValueError):
images = spe.get_img(sample_id="foo", image_id="foo")


def test_get_img_both_str(spe):
res = spe.get_img(sample_id="sample_1", image_id="dice")
images = spe.img_data[np.array(spe.img_data["sample_id"]) == "sample_1",]
images = images[np.array(images["image_id"]) == "dice",]["data"][0]

assert isinstance(res, VirtualSpatialImage)
assert res == images


def test_get_img_both_true(spe):
res = spe.get_img(sample_id=True, image_id=True)
images = spe.img_data["data"]

assert isinstance(res, list)
assert res == images


def test_get_img_both_none(spe):
res = spe.get_img(sample_id=None, image_id=None)
image = spe.img_data[0,]["data"][0]

assert isinstance(res, VirtualSpatialImage)
assert res == image


def test_get_img_sample_str_image_true(spe):
res = spe.get_img(sample_id="sample_1", image_id=True)
images = spe.img_data[np.array(spe.img_data["sample_id"]) == "sample_1",]["data"]

assert isinstance(res, list)
assert res == images


def test_get_img_sample_true_image_str(spe):
res = spe.get_img(sample_id=True, image_id="desert")
images = spe.img_data[np.array(spe.img_data["image_id"]) == "desert",]["data"][0]

assert isinstance(res, VirtualSpatialImage)
assert res == images


def test_get_img_sample_str_image_none(spe):
res = spe.get_img(sample_id="sample_1", image_id=None)
images = spe.img_data[np.array(spe.img_data["sample_id"]) == "sample_1",]["data"][0]

assert isinstance(res, VirtualSpatialImage)
assert res == images


def test_get_img_sample_none_image_str(spe):
res = spe.get_img(sample_id=None, image_id="aurora")
images = spe.img_data[np.array(spe.img_data["image_id"]) == "aurora",]["data"][0]

assert isinstance(res, VirtualSpatialImage)
assert res == images


def test_get_img_sample_true_image_none(spe):
res = spe.get_img(sample_id=True, image_id=None)
idxs = [spe.img_data["sample_id"].index(x) for x in set(spe.img_data["sample_id"])]
images = spe.img_data[idxs,]["data"]

assert isinstance(res, list) and all(isinstance(item, VirtualSpatialImage) for item in res)
assert set(res) == set(images)


def test_get_img_sample_none_image_true(spe):
res = spe.get_img(sample_id=None, image_id=True)
first_sample_id = spe.img_data["sample_id"][0]
images = spe.img_data[np.array(spe.img_data["sample_id"]) == first_sample_id,]["data"]

assert isinstance(res, list) and all(isinstance(item, VirtualSpatialImage) for item in res)
assert set(res) == set(images)


def test_add_img(spe):
tspe = spe.add_img(
image_source="tests/images/sample_image4.png",
scale_factor=1,
sample_id="sample_2",
image_id="unsplash",
)

assert tspe.img_data.shape[0] == spe.img_data.shape[0] + 1


def test_add_img_already_exists(spe):
img_data = spe.img_data
with pytest.raises(ValueError):
spe.add_img(
image_source="tests/images/sample_image4.png",
scale_factor=1,
sample_id=img_data["sample_id"][0],
image_id=img_data["image_id"][0],
)


def test_remove_img_no_img_data(spe):
tspe = deepcopy(spe)
tspe.img_data = None
Expand Down