feat(core): add PoolConfig dataclass for pool strategy configuration

This commit is contained in:
2026-07-12 22:33:49 -04:00
parent 4fb7a61f8b
commit 0d0f275134
2 changed files with 80 additions and 1 deletions
+46 -1
View File
@@ -2,9 +2,11 @@
from __future__ import annotations
from pathlib import Path
import pytest
from core.types import GeneratedQuestion, LLMResponse
from core.types import GeneratedQuestion, LLMResponse, PoolConfig
class TestLLMResponse:
@@ -98,3 +100,46 @@ class TestGeneratedQuestion:
def test_source_nodes_is_tuple(self, sample_question: GeneratedQuestion) -> None:
assert isinstance(sample_question.source_nodes, tuple)
class TestPoolConfig:
"""PoolConfig frozen dataclass 基本行为。"""
def test_pool_config_frozen(self) -> None:
"""PoolConfig 创建后不可变。"""
cfg = PoolConfig(
task_types=("Action Reasoning",),
seed=42,
baseline_run_id="baseline_v2",
diag_size=200,
diag_correct_ratio=0.5,
val_size=30,
val_correct_ratio=0.5,
test_size=60,
eval_min_per_class=2,
train_ratio=0.667,
test_questions_dir=Path("store/questions/benchmarks/Video-MME"),
)
assert cfg.task_types == ("Action Reasoning",)
assert cfg.baseline_run_id == "baseline_v2"
assert cfg.train_ratio == 0.667
with pytest.raises(AttributeError):
cfg.seed = 1
def test_pool_config_task_types_none(self) -> None:
"""task_types=None 表示全部类别。"""
cfg = PoolConfig(
task_types=None,
seed=0,
baseline_run_id="run_1",
diag_size=200,
diag_correct_ratio=0.5,
val_size=30,
val_correct_ratio=0.5,
test_size=60,
eval_min_per_class=2,
train_ratio=0.667,
test_questions_dir=None,
)
assert cfg.task_types is None
assert cfg.test_questions_dir is None