"""Checks for the tracked RF-001A decoder truth artifact.""" from __future__ import annotations import json from pathlib import Path ROOT = Path(__file__).resolve().parents[1] SPEC_PATH = ROOT / "configs" / "rf" / "rf001a_common_clock.json" TRUTH_PATH = ROOT / "configs" / "rf" / "rf001a_truth_metadata.json" def test_truth_metadata_is_small_complete_and_spec_aligned() -> None: spec = json.loads(SPEC_PATH.read_text(encoding="utf-8")) truth = json.loads(TRUTH_PATH.read_text(encoding="utf-8")) assert TRUTH_PATH.stat().st_size < 64 * 1024 assert truth["shared_spec_test_id"] == spec["test_id"] assert truth["test_id"] == spec["legacy_waveform_test_id"] assert truth["seed"] == spec["seed"] assert truth["packet_count"] == spec["packet_count"] == 100 assert truth["payload_size"] == spec["application_payload_bytes"] == 256 assert truth["application_payload_bytes"] == truth["payload_size"] assert truth["expected_sequence_numbers"] == list(range(100)) assert len(truth["expected_packet_hashes"]) == 100 assert [ row["sequence_number"] for row in truth["expected_packet_hashes"] ] == list(range(100)) assert all( len(row["payload_sha256"]) == 64 and len(row["packet_sha256"]) == 64 for row in truth["expected_packet_hashes"] ) assert truth["tx_waveform_sha256"] == spec["expected_hardware_sha256"] assert truth["iq_sha256"] == spec["expected_canonical_sha256"] assert truth["modulation"] == spec["modulation"] assert truth["symbol_rate"] == spec["symbol_rate_sps"] assert truth["sample_rate"] == spec["sample_rate_hz"] assert truth["fec"] == spec["inner_fec"] assert truth["fec_rate"] == truth["fec"] assert truth["gap_ms"] == spec["inter_packet_gap_ms"] assert truth["inter_packet_gap_ms"] == truth["gap_ms"] assert ( truth["digital_carrier_offset_hz"] == spec["digital_carrier_offset_hz"] ) assert truth["tx_waveform_format"] == spec["hardware_format"] assert "waveform" not in truth assert "raw_iq" not in truth