Update docs and screenshots
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
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
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
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
|
||||
Reference in New Issue
Block a user