56 fast checks, 0.2 s, covering packet.py and the new bpsk_radio.py. test_bpsk_radio exists mainly to prove the extraction changed nothing. It loads the original function definitions out of Lab018, Lab019 and Lab023 in isolation, compiling only the wanted AST nodes so the labs' module level file writing never runs, then compares outputs: bit conversion, modulation, shaping filter, frame marker and the carrier estimator over random phase and frequency offsets. It also covers the frame functions written fresh for the module: roundtrip at four payload sizes, size and type rejection, broken sync word, truncation, carrying a real CRC32 packet, and a shaped-signal search that recovers the packet through matched filtering. test_packet covers roundtrip across all four message types and five payload sizes, sync word, length arithmetic, sequence range, truncation, oversized payload, and single-bit corruption at six positions, which is the property CRC32 is there to provide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
8.3 KiB
8.3 KiB