feat(perception): add frozen yolox provider
This commit is contained in:
@@ -50,6 +50,7 @@ from k1link.perception.providers import (
|
||||
SourcePacket,
|
||||
)
|
||||
from k1link.perception.recorded_source import (
|
||||
DecodedRecordedSource,
|
||||
RecordedRavnoves00Source,
|
||||
RecordedSourceError,
|
||||
ReplayPacing,
|
||||
@@ -529,6 +530,29 @@ def test_recorded_source_rejects_timeline_mismatch(tmp_path: Path) -> None:
|
||||
list(source.packets(Event()))
|
||||
|
||||
|
||||
def test_decoded_recorded_source_attaches_images_without_detector_logic(tmp_path: Path) -> None:
|
||||
camera_path, timeline_path = _write_recorded_fixture(tmp_path)
|
||||
source = RecordedRavnoves00Source(
|
||||
camera_index_path=camera_path,
|
||||
source_pack_path=timeline_path,
|
||||
expected_frame_count=2,
|
||||
expected_source_pack_sha256=None,
|
||||
)
|
||||
|
||||
class Decoder:
|
||||
def frames(self, stop_event: Event) -> Iterator[np.ndarray]:
|
||||
for value in (3, 7):
|
||||
if stop_event.is_set():
|
||||
return
|
||||
yield np.full((600, 800, 3), value, dtype=np.uint8)
|
||||
|
||||
packets = list(DecodedRecordedSource(source=source, decoder=Decoder()).packets(Event()))
|
||||
assert len(packets) == 2
|
||||
assert isinstance(packets[0].image_payload, np.ndarray)
|
||||
assert int(packets[0].image_payload[0, 0, 0]) == 3
|
||||
assert int(packets[1].image_payload[0, 0, 0]) == 7
|
||||
|
||||
|
||||
def test_camera_only_path_never_invents_metric_occupancy_or_free_space() -> None:
|
||||
result = _graph(_Source((_packet(0, lidar=False),))).run()
|
||||
delivery = result.deliveries[0]
|
||||
|
||||
Reference in New Issue
Block a user