import unittest

import numpy as np

from lab_nodes import MeanDarkMask


class MeanDarkMaskTest(unittest.TestCase):
    def test_schema_and_output(self):
        node = MeanDarkMask()
        schema = node.schema()
        self.assertEqual(schema["inputs"], {"image": "image"})
        self.assertEqual(schema["outputs"], {"mask": "mask"})
        self.assertEqual(schema["parameters"]["threshold"]["default"], 160)
        image = np.array([[[10, 20, 30], [200, 210, 220]]], dtype=np.uint8)
        result = node.run(image, threshold=100)["mask"]
        np.testing.assert_array_equal(result, np.array([[1, 0]], dtype=np.uint8))


if __name__ == "__main__":
    unittest.main()
