AttacksContract
What a Reading refuses and what assess emits
6/6 passed in 0ms
| Test | What it does | Result |
|---|---|---|
test_assess_rows | assess returns {} with no descriptors and otherwise one Reading per catalogue name, never a budget Entry. | ✅ pass |
test_assess_timing | assess refuses a blanking pulse inside the window, older than the dead time, or declared with no dead time, and scores one with no timing. | ✅ pass |
test_assess_yield | assess refuses an Injection with no single-photon yield, naming the basis-blind y1, and with one reaches probe_photons through Eq. (15). | ✅ pass |
test_entropy_shared | attacks._entropy equals impairments._entropy over a grid and is zero out of range. | ✅ pass |
test_reading_barred | A Reading raises on key_rate, rate, key, secure, safe and margin with the reason, keeps observed and eve reachable, and raises a plain AttributeError on an unknown name. | ✅ pass |
test_reading_table | Reading.table prints both sides, the mechanism note and Eve's two rows in one block. | ✅ pass |