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.
13 lines
1.2 KiB
13 lines
1.2 KiB
from pathlib import Path
|
|
import pytest
|
|
pd=pytest.importorskip("pandas")
|
|
from src.analysis_loader import AnalysisLoader
|
|
from src.config_loader import AnalysisSettings
|
|
from src.exceptions import ConfigurationError
|
|
|
|
CFG=AnalysisSettings(True,"in","out",True,True,True,True,"weak","auto","mannwhitney","valid_turn_analysis",False,True,.05)
|
|
def test_load_find_convert_validate(tmp_path:Path)->None:
|
|
row={"experiment_id":"e","session_id":"s","track_id":"1","prompt_condition":"prompt","response_detected":"True","valid_for_voice_analysis":"False","valid_for_turn_analysis":"False","turn_confirmed":"False","turn_level":"not_evaluable","reaction_time_sec":"","max_yaw_delta_toward_signage":"","excluded":"False","exclusion_reason":"none"}
|
|
for i in range(2):pd.DataFrame([row]).to_csv(tmp_path/f"{i}_person_analysis_table.csv",index=False,encoding="utf-8-sig")
|
|
l=AnalysisLoader(CFG);paths=l.find_person_analysis_tables(tmp_path);df=l.load_person_analysis_tables(paths);assert len(df)==2 and bool(df.response_detected.iloc[0]) and not bool(df.valid_for_voice_analysis.iloc[0])
|
|
with pytest.raises(ConfigurationError):l.validate_person_analysis_columns(pd.DataFrame({"x":[]}))
|
|
|