Matchlens-API / tests /test_partnership.py
Rishabh Shenoy
Added files to root
ab1e1af
Raw History Blame Contribute Delete
1.12 kB
from app.models import BallEvent, Wicket
from app.services.cricket import ReplayData, state_at
def delivery(index: int, striker: str, non_striker: str, runs: int, wicket: str | None = None) -> BallEvent:
return BallEvent(
index=index, over=0, ball_in_over=index, over_label=f"0.{index}",
bowler="Bowler", striker=striker, non_striker=non_striker,
runs_off_bat=runs, extras=0, total_runs=runs, is_legal=True,
outcome="wicket" if wicket else "run", wicket=Wicket(batter=wicket, kind="bowled") if wicket else None,
commentary="test",
)
def test_partnership_resets_after_latest_wicket():
data = ReplayData(
match_id="test", batting_team="A", bowling_team="B", target=200,
deliveries=[
delivery(1, "A", "B", 2),
delivery(2, "A", "B", 1, wicket="A"),
delivery(3, "C", "B", 4),
],
batting_order=["A", "B", "C", "D"], result="replay",
)
state = state_at(data, 3)
assert state.partnership.runs == 4
assert state.partnership.balls == 1
assert state.partnership.batters == ("C", "B")