vla / tests /test_generation_pipeline.py
anhtld's picture
Initial commit: DoVLA-CIL codebase (h=16 breakthrough) (part 2)
20c251e verified
Raw
History Blame Contribute Delete
1.79 kB
from __future__ import annotations
from pathlib import Path
from dovla_cil.data.sharding import iter_cil_records
from dovla_cil.generation.pipeline import generate_builtin_toy_dataset, generate_cil_dataset
from dovla_cil.tasks.library import built_in_toy_tasks
from dovla_cil.utils.io import iter_jsonl, read_json
def test_toy_generation_pipeline_writes_shards_and_group_index(tmp_path: Path) -> None:
summary = generate_cil_dataset(
backend="toy",
tasks=built_in_toy_tasks()[:2],
out_dir=tmp_path,
num_states_per_task=1,
k=4,
seed=11,
shard_size=4,
inline_observations=True,
)
manifest = read_json(tmp_path / "manifest.json")
group_index = list(iter_jsonl(tmp_path / "group_index.jsonl"))
records = []
for shard in manifest["shards"]:
records.extend(iter_cil_records(tmp_path / str(shard["path"])))
assert summary.num_groups == 2
assert summary.num_records == 8
assert manifest["record_count"] == 8
assert manifest["group_count"] == 2
assert manifest["group_index_path"] == "group_index.jsonl"
assert len(group_index) == 2
assert all(entry["num_records"] == 4 for entry in group_index)
assert all(record.rank_within_group is not None for record in records)
assert all(record.regret is not None for record in records)
assert any(record.reward.terminal_success for record in records)
assert "expert" in summary.candidate_type_distribution
def test_builtin_group_shortcut_does_not_cap_at_library_size(tmp_path: Path) -> None:
summary = generate_builtin_toy_dataset(
out_dir=tmp_path,
groups=12,
k=2,
seed=17,
shard_size=64,
)
assert summary.num_groups == 12
assert summary.num_records == 24