Files
tono/tests/node_tests/mask_invert.py

36 lines
1.1 KiB
Python

import numpy as np
def test_mask_invert():
from backend.nodes.mask_invert import MaskInvert
node = MaskInvert()
mask = np.zeros((64, 64), dtype=np.uint8)
mask[10:20, 10:20] = 255
inverted, = node.process(mask)
assert inverted.dtype == np.uint8
assert np.all(inverted[10:20, 10:20] == 0)
assert np.all(inverted[0:10, 0:10] == 255)
double, = node.process(inverted)
assert np.array_equal(double, mask)
def test_mask_invert_with_field():
from backend.nodes.mask_invert import MaskInvert
from backend.execution_context import active_node, execution_callbacks
from tests.node_tests._shared import make_field
node = MaskInvert()
mask = np.zeros((32, 32), dtype=np.uint8)
mask[8:24, 8:24] = 255
field = make_field(data=np.ones((32, 32)))
previews = []
with execution_callbacks(preview=lambda nid, d: previews.append(d)), active_node("test"):
inverted, = node.process(mask, field=field)
assert inverted.dtype == np.uint8
assert len(previews) == 1
assert previews[0].startswith("data:image/png;base64,")