ProtocolVariants
Basis keying with a third basis, and with a pair announced in place of one
7/7 passed in 1ms
| Test | What it does | Result |
|---|---|---|
test_bias_refused | All four basis-keyed branches refuse a declared bias by name rather than dropping it. | ✅ pass |
test_engine_agreement | Three bases: the rate is decoy_gain into decoy_bounds into sixstate_rate, at sixstate_sift's share, not a literal 1/3. | ✅ pass |
test_guards | A sampled pulse train, a finite block and detector afterpulsing are each refused by the two variants. | ✅ pass |
test_pair_agreement | The pair announcement: sarg_gain's and sarg_yield's conclusive rates into the same protocol-blind inversion, and the rate is sarg_rate with no sifting factor outside it. | ✅ pass |
test_sift_defaults | q.BasisKeying.sift is 1/bases unless declared, and None under a pair announcement. | ✅ pass |
test_third_basis_pays | At equal sifting the third basis buys a larger rate on the same decoy bounds, and at the uniform 1/3 against 1/2 it costs more on this span than it buys. | ✅ pass |
test_two_photon_absent | The two-photon term is reported absent (the Ma-Qi-Zhao-Lo inversion bounds Y1, nothing bounds Y2), so the rate sits below the infinite-decoy one. | ✅ pass |