49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
import unittest
|
|
|
|
from Infinity_Vis_1.infinity_vis_1.models import MappingSpec, PatternParams, SceneState, SegmentSpec, TileSpec
|
|
from Infinity_Vis_1.infinity_vis_1.renderer import FastRenderer
|
|
|
|
|
|
class RendererTests(unittest.TestCase):
|
|
def _mapping(self) -> MappingSpec:
|
|
return MappingSpec(
|
|
name="test",
|
|
rows=1,
|
|
cols=2,
|
|
tiles=[
|
|
TileSpec(
|
|
tile_id="r1c1",
|
|
row=1,
|
|
col=1,
|
|
led_total=2,
|
|
controller_ip="192.168.0.10",
|
|
segments=[SegmentSpec(name="all", side="top", start_channel=1, led_count=2)],
|
|
),
|
|
TileSpec(
|
|
tile_id="r1c2",
|
|
row=1,
|
|
col=2,
|
|
led_total=2,
|
|
controller_ip="192.168.0.10",
|
|
segments=[SegmentSpec(name="all", side="top", start_channel=1, led_count=2)],
|
|
),
|
|
],
|
|
)
|
|
|
|
def test_shared_ip_tiles_produce_one_controller_payload(self) -> None:
|
|
renderer = FastRenderer(self._mapping())
|
|
scene = SceneState(pattern_id="solid", params=PatternParams(primary_color="#FF0000"))
|
|
frame = renderer.render(scene, timestamp=1.0)
|
|
self.assertEqual(list(frame.controller_payloads), ["192.168.0.10"])
|
|
self.assertEqual(len(frame.controller_payloads["192.168.0.10"]), 12)
|
|
|
|
def test_blackout_utility_zeroes_payload(self) -> None:
|
|
renderer = FastRenderer(self._mapping())
|
|
scene = SceneState(pattern_id="solid", utility_mode="blackout")
|
|
frame = renderer.render(scene, timestamp=1.0)
|
|
self.assertEqual(frame.controller_payloads["192.168.0.10"], bytes(12))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|