Files
tono/tests/node_tests/scan_line_reorder.py
2026-04-03 23:11:52 -07:00

55 lines
1.6 KiB
Python

import numpy as np
import pytest
from tests.node_tests._shared import make_field
def test_reverse_odd_fixes_meander():
from backend.nodes.scan_line_reorder import ScanLineReorder
node = ScanLineReorder()
data = np.arange(32 * 32, dtype=np.float64).reshape(32, 32)
# Simulate meander: reverse odd rows
meander = data.copy()
meander[1::2, :] = meander[1::2, ::-1]
field = make_field(data=meander)
result, = node.process(field, "reverse_odd")
# Should restore original order
assert np.allclose(result.data, data)
def test_reverse_even():
from backend.nodes.scan_line_reorder import ScanLineReorder
node = ScanLineReorder()
field = make_field(shape=(32, 32))
result, = node.process(field, "reverse_even")
assert result.data.shape == (32, 32)
def test_deinterlace_odd():
from backend.nodes.scan_line_reorder import ScanLineReorder
node = ScanLineReorder()
field = make_field(shape=(32, 32))
result, = node.process(field, "deinterlace_odd")
assert result.data.shape[1] == 32
def test_flip_vertical():
from backend.nodes.scan_line_reorder import ScanLineReorder
node = ScanLineReorder()
data = np.arange(16 * 16, dtype=np.float64).reshape(16, 16)
field = make_field(data=data)
result, = node.process(field, "flip_vertical")
assert np.array_equal(result.data, data[::-1, :])
def test_unknown_operation():
from backend.nodes.scan_line_reorder import ScanLineReorder
node = ScanLineReorder()
field = make_field(shape=(16, 16))
with pytest.raises(ValueError):
node.process(field, "unknown")