correlated_loss¶
Signature¶
faultcore.correlated_loss(*, p_good_to_bad: str, p_bad_to_good: str, loss_good: str, loss_bad: str)
Purpose¶
Models loss with GOOD/BAD state transitions (clustered failures instead of purely random drops).
Defaults and validation¶
All probability fields use
%orppmparser.
Example (stateful transport degradation)¶
import faultcore
@faultcore.correlated_loss(p_good_to_bad="1%", p_bad_to_good="25%", loss_good="0.1%", loss_bad="15%")
def unstable_stream() -> list[bool]:
return [True, True, False, False, True]
def test_retry_behavior_under_clustered_loss() -> None:
sequence = unstable_stream()
assert sequence.count(False) >= 1