39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
"""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()
|