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.
 

16 lines
1.2 KiB

from src.config_loader import UnifiedLogSettings
from src.models import PersonAnalysisRecord
from src.session_summary_builder import SessionSummaryBuilder
CFG=UnifiedLogSettings(True,"x",True,True,True,True,30,True,True,True,True,False,False,"cam",True)
def test_rates_exclude_invalid() -> None:
records=[PersonAnalysisRecord("e","s",1,"prompt","prompt",True,response_detected=True,reaction_time_sec=1.,turn_confirmed=True,turn_level="medium",valid_for_turn_analysis=True,valid_for_voice_analysis=True,completed=True),
PersonAnalysisRecord("e","s",2,"prompt","prompt",True,response_detected=False,turn_level="subtle",valid_for_turn_analysis=False,valid_for_voice_analysis=False,excluded=True)]
out=SessionSummaryBuilder(CFG,"e","s","start").build(records,"end",10.,"prompt",20.)
assert out.total_tracks==2 and out.valid_voice_analysis_tracks==1 and out.response_rate==1.
assert out.mean_reaction_time_sec==out.median_reaction_time_sec==1.
assert out.not_evaluable_count==1 and out.medium_or_higher_count==1 and out.subtle_count==1
def test_zero_denominator() -> None:
out=SessionSummaryBuilder(CFG,"e","s","start").build([],"end",0.,None)
assert out.response_rate is None