car-crash-fix-amount-predictor / tests /test_data_schema.py
theDocWho's picture
Initial commit: end-to-end car damage + repair-cost predictor
4ce7a7e
Raw
History Blame Contribute Delete
1.47 kB
"""Tests for the canonical record schema and label mapping."""
from __future__ import annotations
from pathlib import Path
from ccdp.data.schema import CANONICAL_PARTS, Record, map_to_canonical_part
def test_canonical_parts_match_seed_catalog():
from ccdp.costing import build_seed_catalog
cat = build_seed_catalog()
# every canonical part must exist in the seed catalog so cost lookups never miss
missing = [p for p in CANONICAL_PARTS if p not in cat.parts]
assert not missing, f"Catalog missing canonical parts: {missing}"
def test_label_mapping_known_cases():
assert map_to_canonical_part("Front Bumper") == "front_bumper"
assert map_to_canonical_part("rear-bumper") == "rear_bumper"
assert map_to_canonical_part("hood") == "hood"
assert map_to_canonical_part("bonnet") == "hood"
assert map_to_canonical_part("Head Light") == "headlight"
assert map_to_canonical_part("WindScreen") == "windshield"
assert map_to_canonical_part("Boot") == "trunk"
assert map_to_canonical_part("rim") == "wheel"
def test_label_mapping_unknown_returns_none():
assert map_to_canonical_part("flux capacitor") is None
assert map_to_canonical_part("") is None
def test_record_image_id_stable():
r = Record(image_path=Path("/tmp/foo/img_001.jpg"), dataset="iaai")
assert r.image_id == "iaai/img_001.jpg"
assert r.is_identified is False
r.make, r.model = "honda", "civic"
assert r.is_identified is True