Skip to content

ApiScope ​

Phase gating: out-of-scope configurations raise instead of guessing

11/11 passed in 2ms

TestWhat it doesResult
test_budget_gatedA laser, IQ modulator, pilots, ADC or local oscillator on the CV path with no DSP chain is refused, naming qkd.budget.assemble.✅ pass
test_derived_qberA derived error rate needs Bob's delay interferometer and Alice's laser.✅ pass
test_detector_pairingGaussian modulation needs a quadrature receiver and differential phase a click detector; anything else is refused.✅ pass
test_dps_gatedThe phase-keyed path refuses the CV DSP chain, an LO behind a threshold detector, and any security analysis past the individual attack.✅ pass
test_dsp_componentThe dsp slot takes only a q.DSP, and the pilot chain is heterodyne-only.✅ pass
test_family_pairingNeither receiver nor security model is cross-applied: basis keying needs a q.BasisAnalyser and the splitting bound, intensity keying a q.PhaseBound.✅ pass
test_ignored_fieldsAn unconsumed field is refused: detector memory beside a pinned qber, and an interferometer beside a pinned error rate.✅ pass
test_seam_gatedmeasure() refuses a click family, and claim() refuses a measurement from a changed channel rather than re-run it.✅ pass
test_security_pairingGaussian modulation accepts only q.Asymptotic and q.FiniteSize; an individual-attack bound belongs to the DPS path.✅ pass
test_unknown_partsAn unrecognised modulation or channel object is refused, not coerced.✅ pass
test_window_gatedThe three closed forms refuse an acceptance window by name, the sampled path refuses one with no jitter to gate, and beside a jitter it reaches window_loss.✅ pass