Spaces:
Runtime error
Runtime error
| import json | |
| from pathlib import Path | |
| from ingest.superbet.benchmark import h2h_overround, market_benchmark | |
| from ingest.superbet.parser import parse_superbet_event | |
| from ingest.superbet.store import merge_snapshot_into_odds_file | |
| from pipelines.wc_market_features import load_match_odds_index, match_implied_probs | |
| FIXTURE = Path(__file__).parent / "fixtures" / "superbet_brasil_egito.json" | |
| def test_parse_superbet_event_fixture(): | |
| raw = json.loads(FIXTURE.read_text(encoding="utf-8")) | |
| snap = parse_superbet_event(raw) | |
| assert snap.home_team == "Brasil" | |
| assert snap.away_team == "Egito" | |
| assert snap.inplay is not None | |
| assert snap.inplay.home_score == 1 | |
| assert snap.inplay.minute == 17 | |
| assert snap.h2h_odds["1"] == 1.85 | |
| assert abs(sum(snap.h2h_implied.values()) - 1.0) < 0.01 | |
| assert "2.5" in snap.totals_implied | |
| def test_merge_superbet_odds_updates_market_features(tmp_path, monkeypatch): | |
| raw = json.loads(FIXTURE.read_text(encoding="utf-8")) | |
| snap = parse_superbet_event(raw) | |
| out = tmp_path / "superbet_odds.json" | |
| merge_snapshot_into_odds_file(snap, out) | |
| load_match_odds_index.cache_clear() | |
| monkeypatch.setattr( | |
| "pipelines.wc_market_features.DEFAULT_SUPERBET_ODDS", | |
| out, | |
| ) | |
| load_match_odds_index.cache_clear() | |
| probs = match_implied_probs("Brasil", "Egito") | |
| assert probs["1"] > probs["2"] | |
| def test_h2h_overround(): | |
| margin = h2h_overround({"1": 1.85, "X": 3.4, "2": 4.2}) | |
| assert margin is not None | |
| assert 0.02 < margin < 0.15 | |
| def test_market_benchmark_edges(): | |
| raw = json.loads(FIXTURE.read_text(encoding="utf-8")) | |
| snap = parse_superbet_event(raw) | |
| bench = market_benchmark( | |
| snap, | |
| model_h2h={"1": 0.55, "X": 0.30, "2": 0.15}, | |
| model_totals={"over_2_5": 0.45}, | |
| ) | |
| assert "1" in bench["h2h"] | |
| assert "edge" in bench["h2h"]["1"] | |