Problem: No tests verified that `language_ids.py` had entries for all
six platforms and both core languages, or that unknown lookups returned
`None` instead of raising.
Solution: Add `test_language_ids_coverage` (asserts every platform has
`cpp` and `python` entries with non-empty string values) and
`test_language_ids_unknown_returns_none` (verifies fallback for unknown
platform or language keys).
## Problem
Kattis and USACO had zero offline test coverage — no fixtures, no
conftest
routers, and no entries in the test matrix. The `precision` field and
error
paths were also unverified across all platforms.
## Solution
Add HTML fixtures for both platforms and wire up `httpx.AsyncClient.get`
routers in `conftest.py` following the existing CSES/CodeChef pattern.
Extend the test matrix from 12 to 23 parametrized cases. Add a dedicated
test for the Kattis contest-vs-slug fallback path (verifying
`contest_url`
and `standings_url`), three parametrized metadata error cases, and a
targeted assertion that `extract_precision` returns a non-`None` float
for
problems with floating-point tolerance hints.
Closes#281.