contimp-app / tests /test_pr_area.py
lefft's picture
contimp-app v0.1.0
910dadd verified
Raw
History Blame Contribute Delete
1.41 kB
import json
from app.config import DATA_DIR
from app.tasks.pr_area import AREAS, TASK, parse_output, score
def test_dataset_loaded_and_labels_valid():
records = [json.loads(line) for line in (DATA_DIR / "prs.jsonl").open()]
assert len(records) > 800
assert {r["area"] for r in records} <= set(AREAS)
numbers = [r["number"] for r in records]
assert len(numbers) == len(set(numbers))
def test_sample_and_truth_roundtrip():
s = TASK.sample()
truth = TASK.lookup_truth(s.input_id)
assert truth and truth["area"] in AREAS
assert s.text.startswith("Title: ")
assert TASK.lookup_truth("pr-999999999") is None
def test_parse_output_variants():
assert parse_output('{"area": "docs"}')["area"] == "docs"
assert parse_output('Sure!\n{"area": "Infra"}\nDone.')["area"] == "infra"
assert parse_output('{"area": "not-a-label"}')["area"] is None
assert parse_output("no json here")["area"] is None
assert parse_output('{"wrong_key": "docs"}')["area"] is None
def test_score():
truth = {"area": "docs", "pr_number": 1}
assert score(truth, parse_output('{"area": "docs"}')) == {
"format_ok": 1.0, "exact_match": 1.0,
}
assert score(truth, parse_output('{"area": "infra"}')) == {
"format_ok": 1.0, "exact_match": 0.0,
}
assert score(truth, parse_output("garbage")) == {
"format_ok": 0.0, "exact_match": 0.0,
}