Repository navigation
Add APRS JSONL vector corpus and parametrized compliance tests - #4
Conversation
Corpus review: JSONL vs.
|
Implement APRS decoding and encoding across the vector corpus
Corpus review: JSONL vs.
|
Implement APRS decoding and encoding across the vector corpus
Stacked on #3
Base:
scaffold/aprs-moduleat16b711cdbb110f3079ea55cacac98db8feb383c6.Head:
scaffold/aprs-vectors. This PR does not change production codecs or modify/merge #3.Change
Turn the Markdown corpus into executable, individually identified fixtures under
packages/aprs/tests/vectors/: one JSONL file for each of the 18 sections, containing all 1,538 individual packets and the 23 packet occurrences in seven stateful sequences (all 1,545 original case IDs).Explicit limits
This does not claim complete decoding coverage. The 23 state-sequence occurrences retain their state assertions with
expected: nulland an explicit unresolved reason: a stateless packet API cannot supply station state transitions. They are collected, checked for byte preservation, and visibly expected-failed, not silently skipped or invented as passing results. Other source-only/derived/policy and compatibility assertions remain undersource_expectedwithunmappedpaths where not projected. A passing projection does not claim those additional assertions have passed.No individual packet entry is omitted. Planned codec gaps are not implemented by this PR.
Counts
Validation
On Python 3.12, the full suite passes from source and from a fresh wheel installed in a separate environment: 776 passed, 930 xfailed (plus 893 existing unittest subtest passes reported by pytest 9). Of the expected failures, 23 are the explicit unresolved state occurrences.
Ruff, Black, mypy (43 files), and the repository Black/Prettier pre-commit hooks pass. The new APRS vector workflow runs both source and installed-wheel tests. Detailed format, limitations, maintenance instructions and counts are in
tests/vectors/README.md.