()
| 72 | |
| 73 | |
| 74 | def test_streak_resets_on_bad_window(): |
| 75 | tracker = ShadowTracker(eval_window=10, promote_after=3, min_improvement=0.0) |
| 76 | |
| 77 | # Good window: B tips correctly |
| 78 | for _ in range(5): |
| 79 | _record(tracker, a_pred=0, b_pred=1, c_pred=1, ens_tier=0, gold=1, |
| 80 | a_conf=0.51, b_conf=0.9, c_conf=0.49) |
| 81 | for _ in range(5): |
| 82 | _record(tracker, a_pred=0, b_pred=0, c_pred=0, ens_tier=0, gold=0) |
| 83 | assert tracker.consecutive_wins == 1 |
| 84 | |
| 85 | # Bad window: B tips incorrectly |
| 86 | for _ in range(5): |
| 87 | _record(tracker, a_pred=0, b_pred=1, c_pred=1, ens_tier=0, gold=0, |
| 88 | a_conf=0.51, b_conf=0.9, c_conf=0.49) |
| 89 | for _ in range(5): |
| 90 | _record(tracker, a_pred=0, b_pred=0, c_pred=0, ens_tier=0, gold=0) |
| 91 | assert tracker.consecutive_wins == 0 |
| 92 | |
| 93 | |
| 94 | def test_state_restore(): |
nothing calls this directly
no test coverage detected