-
Christopher Randolph Rhodes authoredChristopher Randolph Rhodes authored
test_process.py 1.07 KiB
import unittest
import numpy as np
from extensions.chaeo.process import mask_largest_object
class TestMaskLargestObject(unittest.TestCase):
def test_mask_largest_touching_object(self):
arr = np.zeros([5, 5], dtype='uint8')
arr[0:3, 0:3] = 2
arr[3:, 2:] = 4
masked = mask_largest_object(arr)
self.assertTrue(np.all(np.unique(masked) == [0, 2]))
self.assertTrue(np.all(masked[4:5, 0:2] == 0))
self.assertTrue(np.all(masked[0:3, 3:5] == 0))
def test_no_change(self):
arr = np.zeros([5, 5], dtype='uint8')
arr[0:3, 0:3] = 2
masked = mask_largest_object(arr)
self.assertTrue(np.all(masked == arr))
def test_mask_multiple_objects_in_binary_maks(self):
arr = np.zeros([5, 5], dtype='uint8')
arr[0:3, 0:3] = 255
arr[4, 2:5] = 255
masked = mask_largest_object(arr)
print(np.unique(masked))
self.assertTrue(np.all(np.unique(masked) == [0, 255]))
self.assertTrue(np.all(masked[:, 3:5] == 0))
self.assertTrue(np.all(masked[3:5, :] == 0))