CI / backend (pull_request) Canceled after 0s
CI / shell (pull_request) Canceled after 0s
CI / frontend (pull_request) Canceled after 0s
CI / arm64-smoke (pull_request) Canceled after 0s
CI / backend (push) Canceled after 0s
CI / shell (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / arm64-smoke (push) Canceled after 0s
40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
from app.dmx.frame import DmxFrame, FrameLayer, merge_layers
|
|
|
|
|
|
def test_frame_has_512_channels() -> None:
|
|
frame = DmxFrame()
|
|
assert len(frame.values) == 512
|
|
assert all(value == 0 for value in frame.values)
|
|
|
|
|
|
def test_htp_chooses_highest_value() -> None:
|
|
base = FrameLayer.from_channel_values("base", priority=10, values={1: 80}, precedence_map={1: "htp"})
|
|
overlay = FrameLayer.from_channel_values("overlay", priority=20, values={1: 200}, precedence_map={1: "htp"})
|
|
frames = merge_layers([base, overlay])
|
|
assert frames[1].values[0] == 200
|
|
assert frames[1].source_map[0] == "overlay"
|
|
|
|
|
|
def test_ltp_chooses_latest_priority_layer() -> None:
|
|
base = FrameLayer.from_channel_values("base", priority=10, values={2: 200}, precedence_map={2: "ltp"})
|
|
overlay = FrameLayer.from_channel_values("overlay", priority=20, values={2: 15}, precedence_map={2: "ltp"})
|
|
frames = merge_layers([base, overlay])
|
|
assert frames[1].values[1] == 15
|
|
assert frames[1].source_map[1] == "overlay"
|
|
|
|
|
|
def test_blackout_overrides_layers() -> None:
|
|
layer = FrameLayer.from_channel_values("scene", priority=10, values={1: 255, 2: 128}, precedence_map={1: "htp"})
|
|
frames = merge_layers([layer], blackout=True)
|
|
assert frames[1].values[0] == 0
|
|
assert frames[1].values[1] == 0
|
|
|
|
|
|
def test_layers_are_merged_per_universe() -> None:
|
|
front = FrameLayer.from_channel_values("front", priority=10, values={1: 255}, universe=1)
|
|
home_assistant = FrameLayer.from_channel_values("ha", priority=10, values={1: 180, 2: 90}, universe=10)
|
|
frames = merge_layers([front, home_assistant])
|
|
assert frames[1].values[0] == 255
|
|
assert frames[10].values[0] == 180
|
|
assert frames[10].values[1] == 90
|