"""AdversarialFilterConfig 默认值 + YAML 加载。""" from app.question_gen.adversarial_config import ( AdversarialFilterConfig, load_adversarial_config, ) def test_defaults(): cfg = AdversarialFilterConfig() assert cfg.filter_task_types == ("Action Recognition",) assert cfg.adversarial_max_rounds == 5 assert cfg.adversarial_agent_max_steps == 40 assert cfg.difficulty_warn_threshold == 0.85 def test_load_from_yaml(tmp_path): p = tmp_path / "c.yaml" p.write_text( "adversarial_filter:\n" " filter_task_types: [Action Recognition, Object Recognition]\n" " adversarial_max_rounds: 3\n" " adversarial_agent_max_steps: 20\n" " difficulty_warn_threshold: 0.7\n", encoding="utf-8", ) cfg = load_adversarial_config(p) assert cfg.filter_task_types == ("Action Recognition", "Object Recognition") assert cfg.adversarial_max_rounds == 3 assert cfg.adversarial_agent_max_steps == 20 assert cfg.difficulty_warn_threshold == 0.7 def test_load_missing_section_uses_defaults(tmp_path): p = tmp_path / "c.yaml" p.write_text("question_gen_v2:\n per_type: 3\n", encoding="utf-8") cfg = load_adversarial_config(p) assert cfg == AdversarialFilterConfig()