You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
1.3 KiB
22 lines
1.3 KiB
from src.config_loader import UnifiedLogSettings
|
|
from src.models import FrameInfo, PersonStateEvent, TrackEvent, TurnEvent, VoicePromptEvent
|
|
from src.unified_event_builder import UnifiedEventBuilder
|
|
|
|
def cfg(important:bool=False)->UnifiedLogSettings:
|
|
return UnifiedLogSettings(True,"x",True,True,True,True,30,True,True,True,True,False,important,"",True)
|
|
|
|
def test_converts_sources_and_sorts() -> None:
|
|
b=UnifiedEventBuilder(cfg(),"exp","session"); f=FrameInfo(2,"t",2.,10,10,1.)
|
|
items=[]
|
|
items+=b.from_track_events([TrackEvent("trigger_crossed",1,2,"t",2.,1,1)],f)
|
|
items+=b.from_turn_events([TurnEvent("turn_confirmed",1,2,"t",2.,1.,20.,"weak")],f)
|
|
items+=b.from_voice_events([VoicePromptEvent("prompt_played",1,2,"t",2.,"prompt",True)],f)
|
|
items+=b.from_person_state_events([PersonStateEvent("responded",1,2,"t",2.,"observing","responded")],f)
|
|
assert {x.source for x in items}=={"tracking","turn","voice","person_state"}
|
|
assert len({x.event_id for x in items})==4
|
|
assert b.stable_sort(items)==sorted(items,key=lambda x:(x.elapsed_time_sec,x.frame_number,x.source,x.event_id))
|
|
|
|
def test_important_only_filters() -> None:
|
|
b=UnifiedEventBuilder(cfg(True),"e","s");f=FrameInfo(1,"t",1.,1,1,1.)
|
|
assert not b.from_track_events([TrackEvent("track_created",1,1,"t",1.,1,1)],f)
|
|
|
|
|