{"abstract":"Teasers with more than five winning legs crash or pay only the stake.","category":"Betting odds conversion","checks":8,"contract":"Point-spread teaser. legs rows are [team spread line, team margin of victory]; every line is moved in the bettor's favour by points (adjusted = line + points). A leg wins if margin + adjusted > 0, pushes if = 0, loses if < 0. Any losing leg loses the ticket. Pushed legs are dropped; fewer than 2 remaining winners refunds the stake. Payout by winning legs from the American table {2: -120, 3: +160, 4: +260, 5: +400} (5 or more pay +400). Return [status, return cents rounded down].","evaluation_group":"w2-odds-conversion-football-teaser-grading","failed_approach":"Defaulting missing rows to zero pays nothing extra.","family":"w2-odds-conversion-football-teaser-grading-table-cap","id":"FA-84771","implementations":{"attempt":{"sha256":"79638069f22d4ddb6735a0cbb098901337c4b873b994feea9ce1008bed33a6b7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(legs, points, stake_cents):\n    TABLE = {2: -120, 3: 160, 4: 260, 5: 400}\n    wins = 0\n    for line, margin in legs:\n        adj = Fraction(line) + Fraction(points)\n        v = margin + adj\n        if v < 0:\n            return ['lose', 0]\n        if v > 0:\n            wins += 1\n    if wins < 2:\n        return ['refund', stake_cents]\n    am = TABLE.get(wins, 0)\n    dec = 1 + (Fraction(am, 100) if am > 0 else Fraction(100, -am))\n    return ['win', math.floor(stake_cents * dec)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+2.5', 13], ['-7', 2], ['+1.5', -3], ['-7', 6], ['-10', 8], ['-1', -1]], '6', 1000),\n   ['win', 5000]),\n  ('variant scenario 1', ([['+2.5', 0], ['+2.5', 1], ['+3', -9]], '7', 500), ['win', 1300]),\n  ('variant scenario 2',\n   ([['+1.5', 9], ['-7', 2], ['-6', -1], ['-1', 8], ['+1.5', -10]], '7', 500),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+2.5', 6], ['-6', 11], ['-7', 1], ['-1', 8], ['-1', -5], ['+7', -7]], '6.5', 1100),\n   ['win', 5500]),\n  ('variant scenario 1',\n   ([['-1', -12], ['-3', -7], ['+2.5', 8], ['+3', -8]], '6', 500),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['-1', -10], ['-7', -12], ['-7.5', -9], ['+2.5', 2], ['-1', 14], ['-7', -7]], '7', 500),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+7', -13], ['+1.5', -2], ['-1', -4], ['-3', -1], ['+1.5', -3], ['+3', 5]], '7', 500),\n   ['win', 2500]),\n  ('variant scenario 1',\n   ([['-6', -7], ['-3', 3], ['-10', -2], ['+7', 2], ['-1', -8]], '6.5', 1000),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['-10', 0], ['+2.5', -4], ['+2.5', -1], ['-10', -13], ['+7', 10]], '6', 1100),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['-3', 5], ['-3', 5], ['-3', 5], ['-3', 5], ['-3', 5], ['-3', 5]], '6', 1000),\n   ['win', 5000]),\n  ('variant scenario 1',\n   ([['-3', -7], ['+7', -4], ['-7.5', -4], ['-3', 3]], '6.5', 1100),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['-3', 11], ['-10', 11], ['-7', -10], ['+7', -10]], '7', 1000),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+1.5', 11], ['-1', 3], ['-7.5', 10], ['-6', 13], ['+7', -8], ['-10', 8]], '6', 1000),\n   ['win', 5000]),\n  ('variant scenario 1',\n   ([['+1.5', -2], ['+3', -12], ['+2.5', -1], ['-3', 6], ['+3', -2], ['+3', 3]], '6.5', 1100),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['+3', 0], ['+3', 14], ['-10', 11], ['+3', 2], ['+2.5', -8], ['-7', -6]], '6.5', 1000),\n   ['lose', 0])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"ee1e87fc2bd4508f6dc29a8b47b8b0867da43129e221dad63f02e1661f6eff7f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(legs, points, stake_cents):\n    TABLE = {2: -120, 3: 160, 4: 260, 5: 400}\n    wins = 0\n    for line, margin in legs:\n        adj = Fraction(line) + Fraction(points)\n        v = margin + adj\n        if v < 0:\n            return ['lose', 0]\n        if v > 0:\n            wins += 1\n    if wins < 2:\n        return ['refund', stake_cents]\n    am = TABLE[wins]\n    dec = 1 + (Fraction(am, 100) if am > 0 else Fraction(100, -am))\n    return ['win', math.floor(stake_cents * dec)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+2.5', 13], ['-7', 2], ['+1.5', -3], ['-7', 6], ['-10', 8], ['-1', -1]], '6', 1000),\n   ['win', 5000]),\n  ('variant scenario 1', ([['+2.5', 0], ['+2.5', 1], ['+3', -9]], '7', 500), ['win', 1300]),\n  ('variant scenario 2',\n   ([['+1.5', 9], ['-7', 2], ['-6', -1], ['-1', 8], ['+1.5', -10]], '7', 500),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+2.5', 6], ['-6', 11], ['-7', 1], ['-1', 8], ['-1', -5], ['+7', -7]], '6.5', 1100),\n   ['win', 5500]),\n  ('variant scenario 1',\n   ([['-1', -12], ['-3', -7], ['+2.5', 8], ['+3', -8]], '6', 500),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['-1', -10], ['-7', -12], ['-7.5', -9], ['+2.5', 2], ['-1', 14], ['-7', -7]], '7', 500),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+7', -13], ['+1.5', -2], ['-1', -4], ['-3', -1], ['+1.5', -3], ['+3', 5]], '7', 500),\n   ['win', 2500]),\n  ('variant scenario 1',\n   ([['-6', -7], ['-3', 3], ['-10', -2], ['+7', 2], ['-1', -8]], '6.5', 1000),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['-10', 0], ['+2.5', -4], ['+2.5', -1], ['-10', -13], ['+7', 10]], '6', 1100),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['-3', 5], ['-3', 5], ['-3', 5], ['-3', 5], ['-3', 5], ['-3', 5]], '6', 1000),\n   ['win', 5000]),\n  ('variant scenario 1',\n   ([['-3', -7], ['+7', -4], ['-7.5', -4], ['-3', 3]], '6.5', 1100),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['-3', 11], ['-10', 11], ['-7', -10], ['+7', -10]], '7', 1000),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+1.5', 11], ['-1', 3], ['-7.5', 10], ['-6', 13], ['+7', -8], ['-10', 8]], '6', 1000),\n   ['win', 5000]),\n  ('variant scenario 1',\n   ([['+1.5', -2], ['+3', -12], ['+2.5', -1], ['-3', 6], ['+3', -2], ['+3', 3]], '6.5', 1100),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['+3', 0], ['+3', 14], ['-10', 11], ['+3', 2], ['+2.5', -8], ['-7', -6]], '6.5', 1000),\n   ['lose', 0])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"1bd5f7ba862caf9f82e591ed7c8b5569a3474b26c1c994a494277b22b2149d1d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(legs, points, stake_cents):\n    TABLE = {2: -120, 3: 160, 4: 260, 5: 400}\n    wins = 0\n    for line, margin in legs:\n        adj = Fraction(line) + Fraction(points)\n        v = margin + adj\n        if v < 0:\n            return ['lose', 0]\n        if v > 0:\n            wins += 1\n    if wins < 2:\n        return ['refund', stake_cents]\n    am = TABLE[min(wins, 5)]\n    dec = 1 + (Fraction(am, 100) if am > 0 else Fraction(100, -am))\n    return ['win', math.floor(stake_cents * dec)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+2.5', 13], ['-7', 2], ['+1.5', -3], ['-7', 6], ['-10', 8], ['-1', -1]], '6', 1000),\n   ['win', 5000]),\n  ('variant scenario 1', ([['+2.5', 0], ['+2.5', 1], ['+3', -9]], '7', 500), ['win', 1300]),\n  ('variant scenario 2',\n   ([['+1.5', 9], ['-7', 2], ['-6', -1], ['-1', 8], ['+1.5', -10]], '7', 500),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+2.5', 6], ['-6', 11], ['-7', 1], ['-1', 8], ['-1', -5], ['+7', -7]], '6.5', 1100),\n   ['win', 5500]),\n  ('variant scenario 1',\n   ([['-1', -12], ['-3', -7], ['+2.5', 8], ['+3', -8]], '6', 500),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['-1', -10], ['-7', -12], ['-7.5', -9], ['+2.5', 2], ['-1', 14], ['-7', -7]], '7', 500),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+7', -13], ['+1.5', -2], ['-1', -4], ['-3', -1], ['+1.5', -3], ['+3', 5]], '7', 500),\n   ['win', 2500]),\n  ('variant scenario 1',\n   ([['-6', -7], ['-3', 3], ['-10', -2], ['+7', 2], ['-1', -8]], '6.5', 1000),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['-10', 0], ['+2.5', -4], ['+2.5', -1], ['-10', -13], ['+7', 10]], '6', 1100),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['-3', 5], ['-3', 5], ['-3', 5], ['-3', 5], ['-3', 5], ['-3', 5]], '6', 1000),\n   ['win', 5000]),\n  ('variant scenario 1',\n   ([['-3', -7], ['+7', -4], ['-7.5', -4], ['-3', 3]], '6.5', 1100),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['-3', 11], ['-10', 11], ['-7', -10], ['+7', -10]], '7', 1000),\n   ['lose', 0])],\n [('control two-team teaser', ([['-7.5', 3], ['+2.5', -5]], '6', 1200), ['win', 2200]),\n  ('boundary push drops a leg', ([['-7', 1], ['+3', 0], ['-1', 2]], '6', 1000), ['win', 1833]),\n  ('boundary reduced to one leg', ([['-7', 1], ['+3', 5]], '6', 1000), ['refund', 1000]),\n  ('control losing leg', ([['-10', 2], ['+3', 5], ['+7', 0]], '6', 1000), ['lose', 0]),\n  ('control three winners', ([['-3', 1], ['+3', 0], ['-1', 0]], '6', 1000), ['win', 2600]),\n  ('regression: table cap',\n   ([['+1.5', 11], ['-1', 3], ['-7.5', 10], ['-6', 13], ['+7', -8], ['-10', 8]], '6', 1000),\n   ['win', 5000]),\n  ('variant scenario 1',\n   ([['+1.5', -2], ['+3', -12], ['+2.5', -1], ['-3', 6], ['+3', -2], ['+3', 3]], '6.5', 1100),\n   ['lose', 0]),\n  ('variant scenario 2',\n   ([['+3', 0], ['+3', 14], ['-10', 11], ['+3', 2], ['+2.5', -8], ['-7', -6]], '6.5', 1000),\n   ['lose', 0])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Stipulated, bounded toy contract stated in the contract field; not a claim of conformance with any operator, exchange or regulator rule set. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-odds-conversion-football-teaser-grading-table-cap","generated_at":"2026-09-29T14:50:34.088851+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Sportsbooks grade teasers with shifted lines, push reduction and a tiered payout table.","repair":"Use the five-leg payout for five or more winners.","root_cause":"The table lookup is not capped at five legs.","sha256":"b9d835cb9c8a5ca5462d62527427cdca6c8392f7cebdef1c9ad74f145c6c24c5","title":"Six-leg teaser looks up a missing payout row · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":47.075,"exit_code":1,"observations":[{"actual":["win",2200],"check":"control two-team teaser","expected":["win",2200],"passed":true},{"actual":["win",1833],"check":"boundary push drops a leg","expected":["win",1833],"passed":true},{"actual":["refund",1000],"check":"boundary reduced to one leg","expected":["refund",1000],"passed":true},{"actual":["lose",0],"check":"control losing leg","expected":["lose",0],"passed":true},{"actual":["win",2600],"check":"control three winners","expected":["win",2600],"passed":true},{"actual":"raised ZeroDivisionError","check":"regression: table cap","expected":["win",5000],"passed":false},{"actual":["win",1300],"check":"variant scenario 1","expected":["win",1300],"passed":true},{"actual":["lose",0],"check":"variant scenario 2","expected":["lose",0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control two-team teaser\", \"actual\": [\"win\", 2200], \"expected\": [\"win\", 2200], \"passed\": true}, {\"check\": \"boundary push drops a leg\", \"actual\": [\"win\", 1833], \"expected\": [\"win\", 1833], \"passed\": true}, {\"check\": \"boundary reduced to one leg\", \"actual\": [\"refund\", 1000], \"expected\": [\"refund\", 1000], \"passed\": true}, {\"check\": \"control losing leg\", \"actual\": [\"lose\", 0], \"expected\": [\"lose\", 0], \"passed\": true}, {\"check\": \"control three winners\", \"actual\": [\"win\", 2600], \"expected\": [\"win\", 2600], \"passed\": true}, {\"check\": \"regression: table cap\", \"actual\": \"raised ZeroDivisionError\", \"expected\": [\"win\", 5000], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"win\", 1300], \"expected\": [\"win\", 1300], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [\"lose\", 0], \"expected\": [\"lose\", 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.428,"exit_code":1,"observations":[{"actual":["win",2200],"check":"control two-team teaser","expected":["win",2200],"passed":true},{"actual":["win",1833],"check":"boundary push drops a leg","expected":["win",1833],"passed":true},{"actual":["refund",1000],"check":"boundary reduced to one leg","expected":["refund",1000],"passed":true},{"actual":["lose",0],"check":"control losing leg","expected":["lose",0],"passed":true},{"actual":["win",2600],"check":"control three winners","expected":["win",2600],"passed":true},{"actual":"raised KeyError","check":"regression: table cap","expected":["win",5000],"passed":false},{"actual":["win",1300],"check":"variant scenario 1","expected":["win",1300],"passed":true},{"actual":["lose",0],"check":"variant scenario 2","expected":["lose",0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control two-team teaser\", \"actual\": [\"win\", 2200], \"expected\": [\"win\", 2200], \"passed\": true}, {\"check\": \"boundary push drops a leg\", \"actual\": [\"win\", 1833], \"expected\": [\"win\", 1833], \"passed\": true}, {\"check\": \"boundary reduced to one leg\", \"actual\": [\"refund\", 1000], \"expected\": [\"refund\", 1000], \"passed\": true}, {\"check\": \"control losing leg\", \"actual\": [\"lose\", 0], \"expected\": [\"lose\", 0], \"passed\": true}, {\"check\": \"control three winners\", \"actual\": [\"win\", 2600], \"expected\": [\"win\", 2600], \"passed\": true}, {\"check\": \"regression: table cap\", \"actual\": \"raised KeyError\", \"expected\": [\"win\", 5000], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"win\", 1300], \"expected\": [\"win\", 1300], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [\"lose\", 0], \"expected\": [\"lose\", 0], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.245,"exit_code":0,"observations":[{"actual":["win",2200],"check":"control two-team teaser","expected":["win",2200],"passed":true},{"actual":["win",1833],"check":"boundary push drops a leg","expected":["win",1833],"passed":true},{"actual":["refund",1000],"check":"boundary reduced to one leg","expected":["refund",1000],"passed":true},{"actual":["lose",0],"check":"control losing leg","expected":["lose",0],"passed":true},{"actual":["win",2600],"check":"control three winners","expected":["win",2600],"passed":true},{"actual":["win",5000],"check":"regression: table cap","expected":["win",5000],"passed":true},{"actual":["win",1300],"check":"variant scenario 1","expected":["win",1300],"passed":true},{"actual":["lose",0],"check":"variant scenario 2","expected":["lose",0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control two-team teaser\", \"actual\": [\"win\", 2200], \"expected\": [\"win\", 2200], \"passed\": true}, {\"check\": \"boundary push drops a leg\", \"actual\": [\"win\", 1833], \"expected\": [\"win\", 1833], \"passed\": true}, {\"check\": \"boundary reduced to one leg\", \"actual\": [\"refund\", 1000], \"expected\": [\"refund\", 1000], \"passed\": true}, {\"check\": \"control losing leg\", \"actual\": [\"lose\", 0], \"expected\": [\"lose\", 0], \"passed\": true}, {\"check\": \"control three winners\", \"actual\": [\"win\", 2600], \"expected\": [\"win\", 2600], \"passed\": true}, {\"check\": \"regression: table cap\", \"actual\": [\"win\", 5000], \"expected\": [\"win\", 5000], \"passed\": true}, {\"check\": \"variant scenario 1\", \"actual\": [\"win\", 1300], \"expected\": [\"win\", 1300], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [\"lose\", 0], \"expected\": [\"lose\", 0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}