adding more nodes
This commit is contained in:
54
tests/node_tests/scan_line_reorder.py
Normal file
54
tests/node_tests/scan_line_reorder.py
Normal file
@@ -0,0 +1,54 @@
|
||||
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")
|
||||
Reference in New Issue
Block a user