{"abstract":"The up-peak share is always 0 or 100 percent, or rounds up across the threshold.","category":"Elevator dispatch scheduling","checks":8,"contract":"Per 5-minute window, total = lobby_up + other_up + down. up% = lobby_up*100//total and down% = to_lobby*100//total (0 if total is 0). An active peak ends when its percentage falls below 40 or total < 10. From interfloor (including just after a peak ended) a window with total >= 10 enters up-peak at up% >= 60, else down-peak at down% >= 60. Output the mode per window.","contract_signature":"x","evaluation_group":"w2-elevator_dispatch_scheduling-traffic-pattern-detection","failed_approach":"Rounding to nearest turns 59.5 percent into 60.","family":"w2-elevator_dispatch_scheduling-traffic-pattern-detection-percentage-arithmetic","id":"FA-67756","implementations":{"attempt":{"sha256":"8597714cae75a7061fad4287724671eff057b104d884d18cd9c2be1cf0fc9ce0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    mode = 'interfloor'\n    out = []\n    for w in x['windows']:\n        tot = w['lobby_up'] + w['other_up'] + w['down']\n        up_pct = round(w['lobby_up'] * 100 / tot) if tot else 0\n        dn_pct = w['to_lobby'] * 100 // tot if tot else 0\n        if mode == 'up-peak':\n            if up_pct < 40 or tot < 10:\n                mode = 'interfloor'\n        elif mode == 'down-peak':\n            if dn_pct < 40 or tot < 10:\n                mode = 'interfloor'\n        if mode == 'interfloor' and tot >= 10:\n            if up_pct >= 60:\n                mode = 'up-peak'\n            elif dn_pct >= 60:\n                mode = 'down-peak'\n        out.append(mode)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: hysteresis keeps up-peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 9, 'other_up': 5, 'down': 6, 'to_lobby': 1}]}, ['up-peak', 'up-peak']), ('boundary: fraction just under sixty', {'windows': [{'lobby_up': 119, 'other_up': 41, 'down': 40, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 3', {'windows': [{'lobby_up': 15, 'other_up': 6, 'down': 15, 'to_lobby': 7}, {'lobby_up': 17, 'other_up': 1, 'down': 12, 'to_lobby': 11}, {'lobby_up': 9, 'other_up': 7, 'down': 10, 'to_lobby': 3}, {'lobby_up': 9, 'other_up': 2, 'down': 12, 'to_lobby': 5}, {'lobby_up': 17, 'other_up': 4, 'down': 10, 'to_lobby': 8}, {'lobby_up': 4, 'other_up': 4, 'down': 7, 'to_lobby': 7}, {'lobby_up': 6, 'other_up': 1, 'down': 19, 'to_lobby': 9}, {'lobby_up': 13, 'other_up': 1, 'down': 3, 'to_lobby': 3}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'up-peak']), ('regression: quiet window ends a peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 6, 'other_up': 0, 'down': 2, 'to_lobby': 0}]}, ['up-peak', 'interfloor']), ('boundary: quiet window cannot start a peak', {'windows': [{'lobby_up': 8, 'other_up': 0, 'down': 1, 'to_lobby': 0}]}, ['interfloor']), ('control 1', {'windows': [{'lobby_up': 0, 'other_up': 2, 'down': 3, 'to_lobby': 3}, {'lobby_up': 10, 'other_up': 4, 'down': 12, 'to_lobby': 11}, {'lobby_up': 0, 'other_up': 6, 'down': 8, 'to_lobby': 2}, {'lobby_up': 17, 'other_up': 3, 'down': 17, 'to_lobby': 15}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor']), ('sampled regression 4', {'windows': [{'lobby_up': 18, 'other_up': 3, 'down': 8, 'to_lobby': 4}, {'lobby_up': 2, 'other_up': 3, 'down': 15, 'to_lobby': 5}, {'lobby_up': 20, 'other_up': 6, 'down': 15, 'to_lobby': 15}, {'lobby_up': 16, 'other_up': 5, 'down': 19, 'to_lobby': 2}, {'lobby_up': 19, 'other_up': 6, 'down': 16, 'to_lobby': 6}, {'lobby_up': 1, 'other_up': 8, 'down': 0, 'to_lobby': 0}, {'lobby_up': 1, 'other_up': 2, 'down': 8, 'to_lobby': 8}, {'lobby_up': 6, 'other_up': 6, 'down': 0, 'to_lobby': 0}]}, ['up-peak', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'down-peak', 'interfloor']), ('sampled regression 7', {'windows': [{'lobby_up': 17, 'other_up': 7, 'down': 6, 'to_lobby': 6}, {'lobby_up': 7, 'other_up': 3, 'down': 4, 'to_lobby': 3}, {'lobby_up': 20, 'other_up': 8, 'down': 2, 'to_lobby': 1}, {'lobby_up': 17, 'other_up': 7, 'down': 7, 'to_lobby': 6}, {'lobby_up': 2, 'other_up': 3, 'down': 8, 'to_lobby': 3}, {'lobby_up': 15, 'other_up': 3, 'down': 16, 'to_lobby': 7}, {'lobby_up': 5, 'other_up': 5, 'down': 1, 'to_lobby': 0}]}, ['interfloor', 'interfloor', 'up-peak', 'up-peak', 'interfloor', 'interfloor', 'interfloor'])], [('regression: quiet window ends a peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 6, 'other_up': 0, 'down': 2, 'to_lobby': 0}]}, ['up-peak', 'interfloor']), ('boundary: fraction just under sixty', {'windows': [{'lobby_up': 119, 'other_up': 41, 'down': 40, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 12', {'windows': [{'lobby_up': 16, 'other_up': 6, 'down': 0, 'to_lobby': 0}, {'lobby_up': 9, 'other_up': 4, 'down': 13, 'to_lobby': 8}, {'lobby_up': 6, 'other_up': 1, 'down': 17, 'to_lobby': 7}, {'lobby_up': 20, 'other_up': 8, 'down': 13, 'to_lobby': 11}, {'lobby_up': 19, 'other_up': 5, 'down': 0, 'to_lobby': 0}, {'lobby_up': 2, 'other_up': 6, 'down': 20, 'to_lobby': 10}, {'lobby_up': 17, 'other_up': 1, 'down': 5, 'to_lobby': 4}]}, ['up-peak', 'interfloor', 'interfloor', 'interfloor', 'up-peak', 'interfloor', 'up-peak']), ('boundary: quiet window cannot start a peak', {'windows': [{'lobby_up': 8, 'other_up': 0, 'down': 1, 'to_lobby': 0}]}, ['interfloor']), ('regression: exactly sixty percent', {'windows': [{'lobby_up': 6, 'other_up': 2, 'down': 2, 'to_lobby': 0}]}, ['up-peak']), ('sampled regression 15', {'windows': [{'lobby_up': 8, 'other_up': 2, 'down': 2, 'to_lobby': 2}, {'lobby_up': 2, 'other_up': 0, 'down': 19, 'to_lobby': 13}, {'lobby_up': 11, 'other_up': 7, 'down': 20, 'to_lobby': 2}, {'lobby_up': 13, 'other_up': 7, 'down': 5, 'to_lobby': 5}, {'lobby_up': 1, 'other_up': 6, 'down': 7, 'to_lobby': 2}, {'lobby_up': 3, 'other_up': 1, 'down': 20, 'to_lobby': 20}]}, ['up-peak', 'down-peak', 'interfloor', 'interfloor', 'interfloor', 'down-peak']), ('control 18', {'windows': [{'lobby_up': 9, 'other_up': 7, 'down': 0, 'to_lobby': 0}, {'lobby_up': 18, 'other_up': 8, 'down': 11, 'to_lobby': 5}, {'lobby_up': 2, 'other_up': 6, 'down': 8, 'to_lobby': 3}, {'lobby_up': 10, 'other_up': 4, 'down': 20, 'to_lobby': 1}, {'lobby_up': 13, 'other_up': 5, 'down': 19, 'to_lobby': 12}, {'lobby_up': 1, 'other_up': 5, 'down': 16, 'to_lobby': 4}, {'lobby_up': 12, 'other_up': 6, 'down': 11, 'to_lobby': 2}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor']), ('control 21', {'windows': [{'lobby_up': 8, 'other_up': 5, 'down': 6, 'to_lobby': 1}, {'lobby_up': 20, 'other_up': 1, 'down': 15, 'to_lobby': 8}, {'lobby_up': 10, 'other_up': 0, 'down': 0, 'to_lobby': 0}]}, ['interfloor', 'interfloor', 'up-peak'])], [('regression: exactly sixty percent', {'windows': [{'lobby_up': 6, 'other_up': 2, 'down': 2, 'to_lobby': 0}]}, ['up-peak']), ('boundary: fraction just under sixty', {'windows': [{'lobby_up': 119, 'other_up': 41, 'down': 40, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 20', {'windows': [{'lobby_up': 17, 'other_up': 3, 'down': 20, 'to_lobby': 3}, {'lobby_up': 13, 'other_up': 1, 'down': 12, 'to_lobby': 11}, {'lobby_up': 12, 'other_up': 4, 'down': 10, 'to_lobby': 7}, {'lobby_up': 14, 'other_up': 3, 'down': 2, 'to_lobby': 0}, {'lobby_up': 12, 'other_up': 4, 'down': 2, 'to_lobby': 0}, {'lobby_up': 17, 'other_up': 2, 'down': 9, 'to_lobby': 3}, {'lobby_up': 19, 'other_up': 0, 'down': 11, 'to_lobby': 1}]}, ['interfloor', 'interfloor', 'interfloor', 'up-peak', 'up-peak', 'up-peak', 'up-peak']), ('boundary: down peak', {'windows': [{'lobby_up': 1, 'other_up': 1, 'down': 18, 'to_lobby': 15}, {'lobby_up': 2, 'other_up': 2, 'down': 16, 'to_lobby': 7}]}, ['down-peak', 'interfloor']), ('regression: hysteresis keeps up-peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 9, 'other_up': 5, 'down': 6, 'to_lobby': 1}]}, ['up-peak', 'up-peak']), ('control 23', {'windows': [{'lobby_up': 6, 'other_up': 6, 'down': 20, 'to_lobby': 19}, {'lobby_up': 4, 'other_up': 7, 'down': 17, 'to_lobby': 9}, {'lobby_up': 3, 'other_up': 8, 'down': 7, 'to_lobby': 3}, {'lobby_up': 15, 'other_up': 8, 'down': 3, 'to_lobby': 2}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor']), ('sampled regression 26', {'windows': [{'lobby_up': 6, 'other_up': 0, 'down': 20, 'to_lobby': 17}, {'lobby_up': 17, 'other_up': 3, 'down': 18, 'to_lobby': 1}, {'lobby_up': 6, 'other_up': 5, 'down': 7, 'to_lobby': 0}, {'lobby_up': 17, 'other_up': 8, 'down': 20, 'to_lobby': 8}, {'lobby_up': 3, 'other_up': 5, 'down': 5, 'to_lobby': 0}, {'lobby_up': 12, 'other_up': 3, 'down': 20, 'to_lobby': 19}, {'lobby_up': 17, 'other_up': 2, 'down': 1, 'to_lobby': 1}, {'lobby_up': 7, 'other_up': 5, 'down': 9, 'to_lobby': 6}]}, ['down-peak', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'up-peak', 'interfloor']), ('sampled regression 29', {'windows': [{'lobby_up': 19, 'other_up': 4, 'down': 20, 'to_lobby': 10}, {'lobby_up': 6, 'other_up': 5, 'down': 9, 'to_lobby': 1}, {'lobby_up': 12, 'other_up': 0, 'down': 17, 'to_lobby': 0}, {'lobby_up': 19, 'other_up': 4, 'down': 8, 'to_lobby': 1}]}, ['interfloor', 'interfloor', 'interfloor', 'up-peak'])], [('regression: hysteresis keeps up-peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 9, 'other_up': 5, 'down': 6, 'to_lobby': 1}]}, ['up-peak', 'up-peak']), ('boundary: fraction just under sixty', {'windows': [{'lobby_up': 119, 'other_up': 41, 'down': 40, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 32', {'windows': [{'lobby_up': 6, 'other_up': 6, 'down': 1, 'to_lobby': 0}, {'lobby_up': 10, 'other_up': 0, 'down': 19, 'to_lobby': 12}, {'lobby_up': 17, 'other_up': 4, 'down': 2, 'to_lobby': 1}]}, ['interfloor', 'interfloor', 'up-peak']), ('regression: quiet window ends a peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 6, 'other_up': 0, 'down': 2, 'to_lobby': 0}]}, ['up-peak', 'interfloor']), ('boundary: quiet window cannot start a peak', {'windows': [{'lobby_up': 8, 'other_up': 0, 'down': 1, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 34', {'windows': [{'lobby_up': 14, 'other_up': 3, 'down': 13, 'to_lobby': 8}, {'lobby_up': 8, 'other_up': 4, 'down': 1, 'to_lobby': 1}, {'lobby_up': 20, 'other_up': 0, 'down': 3, 'to_lobby': 3}, {'lobby_up': 4, 'other_up': 5, 'down': 8, 'to_lobby': 7}, {'lobby_up': 6, 'other_up': 6, 'down': 19, 'to_lobby': 5}, {'lobby_up': 6, 'other_up': 5, 'down': 7, 'to_lobby': 5}]}, ['interfloor', 'up-peak', 'up-peak', 'interfloor', 'interfloor', 'interfloor']), ('control 37', {'windows': [{'lobby_up': 16, 'other_up': 8, 'down': 17, 'to_lobby': 12}, {'lobby_up': 16, 'other_up': 3, 'down': 11, 'to_lobby': 0}, {'lobby_up': 4, 'other_up': 8, 'down': 1, 'to_lobby': 0}, {'lobby_up': 10, 'other_up': 5, 'down': 8, 'to_lobby': 5}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor']), ('sampled regression 40', {'windows': [{'lobby_up': 7, 'other_up': 6, 'down': 2, 'to_lobby': 1}, {'lobby_up': 11, 'other_up': 2, 'down': 1, 'to_lobby': 0}, {'lobby_up': 18, 'other_up': 7, 'down': 16, 'to_lobby': 4}, {'lobby_up': 0, 'other_up': 8, 'down': 18, 'to_lobby': 1}, {'lobby_up': 1, 'other_up': 2, 'down': 12, 'to_lobby': 9}, {'lobby_up': 7, 'other_up': 3, 'down': 0, 'to_lobby': 0}]}, ['interfloor', 'up-peak', 'up-peak', 'interfloor', 'down-peak', 'up-peak'])], [('regression: quiet window ends a peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 6, 'other_up': 0, 'down': 2, 'to_lobby': 0}]}, ['up-peak', 'interfloor']), ('boundary: fraction just under sixty', {'windows': [{'lobby_up': 119, 'other_up': 41, 'down': 40, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 47', {'windows': [{'lobby_up': 2, 'other_up': 7, 'down': 18, 'to_lobby': 2}, {'lobby_up': 19, 'other_up': 5, 'down': 2, 'to_lobby': 2}, {'lobby_up': 0, 'other_up': 1, 'down': 6, 'to_lobby': 6}, {'lobby_up': 15, 'other_up': 6, 'down': 3, 'to_lobby': 3}, {'lobby_up': 15, 'other_up': 0, 'down': 16, 'to_lobby': 6}, {'lobby_up': 2, 'other_up': 1, 'down': 5, 'to_lobby': 3}, {'lobby_up': 12, 'other_up': 4, 'down': 8, 'to_lobby': 8}]}, ['interfloor', 'up-peak', 'interfloor', 'up-peak', 'up-peak', 'interfloor', 'interfloor']), ('boundary: quiet window cannot start a peak', {'windows': [{'lobby_up': 8, 'other_up': 0, 'down': 1, 'to_lobby': 0}]}, ['interfloor']), ('regression: exactly sixty percent', {'windows': [{'lobby_up': 6, 'other_up': 2, 'down': 2, 'to_lobby': 0}]}, ['up-peak']), ('control 45', {'windows': [{'lobby_up': 15, 'other_up': 5, 'down': 7, 'to_lobby': 2}, {'lobby_up': 5, 'other_up': 7, 'down': 14, 'to_lobby': 0}, {'lobby_up': 17, 'other_up': 2, 'down': 13, 'to_lobby': 4}, {'lobby_up': 3, 'other_up': 3, 'down': 10, 'to_lobby': 7}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor']), ('sampled regression 48', {'windows': [{'lobby_up': 0, 'other_up': 3, 'down': 12, 'to_lobby': 1}, {'lobby_up': 19, 'other_up': 1, 'down': 12, 'to_lobby': 11}, {'lobby_up': 8, 'other_up': 2, 'down': 4, 'to_lobby': 3}, {'lobby_up': 18, 'other_up': 8, 'down': 1, 'to_lobby': 0}, {'lobby_up': 9, 'other_up': 7, 'down': 18, 'to_lobby': 17}, {'lobby_up': 11, 'other_up': 1, 'down': 18, 'to_lobby': 7}, {'lobby_up': 10, 'other_up': 2, 'down': 15, 'to_lobby': 2}]}, ['interfloor', 'interfloor', 'interfloor', 'up-peak', 'interfloor', 'interfloor', 'interfloor']), ('sampled regression 51', {'windows': [{'lobby_up': 4, 'other_up': 0, 'down': 1, 'to_lobby': 0}, {'lobby_up': 16, 'other_up': 6, 'down': 19, 'to_lobby': 15}, {'lobby_up': 13, 'other_up': 6, 'down': 3, 'to_lobby': 3}, {'lobby_up': 15, 'other_up': 0, 'down': 16, 'to_lobby': 2}, {'lobby_up': 20, 'other_up': 8, 'down': 11, 'to_lobby': 7}, {'lobby_up': 10, 'other_up': 5, 'down': 6, 'to_lobby': 1}, {'lobby_up': 12, 'other_up': 6, 'down': 19, 'to_lobby': 0}, {'lobby_up': 20, 'other_up': 2, 'down': 1, 'to_lobby': 1}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'up-peak'])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(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":"12966ba012b7fd993d50ea09f82630b9d3359fe4d35925e8f8716df63d560d83","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    mode = 'interfloor'\n    out = []\n    for w in x['windows']:\n        tot = w['lobby_up'] + w['other_up'] + w['down']\n        up_pct = w['lobby_up'] // tot * 100 if tot else 0\n        dn_pct = w['to_lobby'] * 100 // tot if tot else 0\n        if mode == 'up-peak':\n            if up_pct < 40 or tot < 10:\n                mode = 'interfloor'\n        elif mode == 'down-peak':\n            if dn_pct < 40 or tot < 10:\n                mode = 'interfloor'\n        if mode == 'interfloor' and tot >= 10:\n            if up_pct >= 60:\n                mode = 'up-peak'\n            elif dn_pct >= 60:\n                mode = 'down-peak'\n        out.append(mode)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: hysteresis keeps up-peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 9, 'other_up': 5, 'down': 6, 'to_lobby': 1}]}, ['up-peak', 'up-peak']), ('boundary: fraction just under sixty', {'windows': [{'lobby_up': 119, 'other_up': 41, 'down': 40, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 3', {'windows': [{'lobby_up': 15, 'other_up': 6, 'down': 15, 'to_lobby': 7}, {'lobby_up': 17, 'other_up': 1, 'down': 12, 'to_lobby': 11}, {'lobby_up': 9, 'other_up': 7, 'down': 10, 'to_lobby': 3}, {'lobby_up': 9, 'other_up': 2, 'down': 12, 'to_lobby': 5}, {'lobby_up': 17, 'other_up': 4, 'down': 10, 'to_lobby': 8}, {'lobby_up': 4, 'other_up': 4, 'down': 7, 'to_lobby': 7}, {'lobby_up': 6, 'other_up': 1, 'down': 19, 'to_lobby': 9}, {'lobby_up': 13, 'other_up': 1, 'down': 3, 'to_lobby': 3}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'up-peak']), ('regression: quiet window ends a peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 6, 'other_up': 0, 'down': 2, 'to_lobby': 0}]}, ['up-peak', 'interfloor']), ('boundary: quiet window cannot start a peak', {'windows': [{'lobby_up': 8, 'other_up': 0, 'down': 1, 'to_lobby': 0}]}, ['interfloor']), ('control 1', {'windows': [{'lobby_up': 0, 'other_up': 2, 'down': 3, 'to_lobby': 3}, {'lobby_up': 10, 'other_up': 4, 'down': 12, 'to_lobby': 11}, {'lobby_up': 0, 'other_up': 6, 'down': 8, 'to_lobby': 2}, {'lobby_up': 17, 'other_up': 3, 'down': 17, 'to_lobby': 15}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor']), ('sampled regression 4', {'windows': [{'lobby_up': 18, 'other_up': 3, 'down': 8, 'to_lobby': 4}, {'lobby_up': 2, 'other_up': 3, 'down': 15, 'to_lobby': 5}, {'lobby_up': 20, 'other_up': 6, 'down': 15, 'to_lobby': 15}, {'lobby_up': 16, 'other_up': 5, 'down': 19, 'to_lobby': 2}, {'lobby_up': 19, 'other_up': 6, 'down': 16, 'to_lobby': 6}, {'lobby_up': 1, 'other_up': 8, 'down': 0, 'to_lobby': 0}, {'lobby_up': 1, 'other_up': 2, 'down': 8, 'to_lobby': 8}, {'lobby_up': 6, 'other_up': 6, 'down': 0, 'to_lobby': 0}]}, ['up-peak', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'down-peak', 'interfloor']), ('sampled regression 7', {'windows': [{'lobby_up': 17, 'other_up': 7, 'down': 6, 'to_lobby': 6}, {'lobby_up': 7, 'other_up': 3, 'down': 4, 'to_lobby': 3}, {'lobby_up': 20, 'other_up': 8, 'down': 2, 'to_lobby': 1}, {'lobby_up': 17, 'other_up': 7, 'down': 7, 'to_lobby': 6}, {'lobby_up': 2, 'other_up': 3, 'down': 8, 'to_lobby': 3}, {'lobby_up': 15, 'other_up': 3, 'down': 16, 'to_lobby': 7}, {'lobby_up': 5, 'other_up': 5, 'down': 1, 'to_lobby': 0}]}, ['interfloor', 'interfloor', 'up-peak', 'up-peak', 'interfloor', 'interfloor', 'interfloor'])], [('regression: quiet window ends a peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 6, 'other_up': 0, 'down': 2, 'to_lobby': 0}]}, ['up-peak', 'interfloor']), ('boundary: fraction just under sixty', {'windows': [{'lobby_up': 119, 'other_up': 41, 'down': 40, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 12', {'windows': [{'lobby_up': 16, 'other_up': 6, 'down': 0, 'to_lobby': 0}, {'lobby_up': 9, 'other_up': 4, 'down': 13, 'to_lobby': 8}, {'lobby_up': 6, 'other_up': 1, 'down': 17, 'to_lobby': 7}, {'lobby_up': 20, 'other_up': 8, 'down': 13, 'to_lobby': 11}, {'lobby_up': 19, 'other_up': 5, 'down': 0, 'to_lobby': 0}, {'lobby_up': 2, 'other_up': 6, 'down': 20, 'to_lobby': 10}, {'lobby_up': 17, 'other_up': 1, 'down': 5, 'to_lobby': 4}]}, ['up-peak', 'interfloor', 'interfloor', 'interfloor', 'up-peak', 'interfloor', 'up-peak']), ('boundary: quiet window cannot start a peak', {'windows': [{'lobby_up': 8, 'other_up': 0, 'down': 1, 'to_lobby': 0}]}, ['interfloor']), ('regression: exactly sixty percent', {'windows': [{'lobby_up': 6, 'other_up': 2, 'down': 2, 'to_lobby': 0}]}, ['up-peak']), ('sampled regression 15', {'windows': [{'lobby_up': 8, 'other_up': 2, 'down': 2, 'to_lobby': 2}, {'lobby_up': 2, 'other_up': 0, 'down': 19, 'to_lobby': 13}, {'lobby_up': 11, 'other_up': 7, 'down': 20, 'to_lobby': 2}, {'lobby_up': 13, 'other_up': 7, 'down': 5, 'to_lobby': 5}, {'lobby_up': 1, 'other_up': 6, 'down': 7, 'to_lobby': 2}, {'lobby_up': 3, 'other_up': 1, 'down': 20, 'to_lobby': 20}]}, ['up-peak', 'down-peak', 'interfloor', 'interfloor', 'interfloor', 'down-peak']), ('control 18', {'windows': [{'lobby_up': 9, 'other_up': 7, 'down': 0, 'to_lobby': 0}, {'lobby_up': 18, 'other_up': 8, 'down': 11, 'to_lobby': 5}, {'lobby_up': 2, 'other_up': 6, 'down': 8, 'to_lobby': 3}, {'lobby_up': 10, 'other_up': 4, 'down': 20, 'to_lobby': 1}, {'lobby_up': 13, 'other_up': 5, 'down': 19, 'to_lobby': 12}, {'lobby_up': 1, 'other_up': 5, 'down': 16, 'to_lobby': 4}, {'lobby_up': 12, 'other_up': 6, 'down': 11, 'to_lobby': 2}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor']), ('control 21', {'windows': [{'lobby_up': 8, 'other_up': 5, 'down': 6, 'to_lobby': 1}, {'lobby_up': 20, 'other_up': 1, 'down': 15, 'to_lobby': 8}, {'lobby_up': 10, 'other_up': 0, 'down': 0, 'to_lobby': 0}]}, ['interfloor', 'interfloor', 'up-peak'])], [('regression: exactly sixty percent', {'windows': [{'lobby_up': 6, 'other_up': 2, 'down': 2, 'to_lobby': 0}]}, ['up-peak']), ('boundary: fraction just under sixty', {'windows': [{'lobby_up': 119, 'other_up': 41, 'down': 40, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 20', {'windows': [{'lobby_up': 17, 'other_up': 3, 'down': 20, 'to_lobby': 3}, {'lobby_up': 13, 'other_up': 1, 'down': 12, 'to_lobby': 11}, {'lobby_up': 12, 'other_up': 4, 'down': 10, 'to_lobby': 7}, {'lobby_up': 14, 'other_up': 3, 'down': 2, 'to_lobby': 0}, {'lobby_up': 12, 'other_up': 4, 'down': 2, 'to_lobby': 0}, {'lobby_up': 17, 'other_up': 2, 'down': 9, 'to_lobby': 3}, {'lobby_up': 19, 'other_up': 0, 'down': 11, 'to_lobby': 1}]}, ['interfloor', 'interfloor', 'interfloor', 'up-peak', 'up-peak', 'up-peak', 'up-peak']), ('boundary: down peak', {'windows': [{'lobby_up': 1, 'other_up': 1, 'down': 18, 'to_lobby': 15}, {'lobby_up': 2, 'other_up': 2, 'down': 16, 'to_lobby': 7}]}, ['down-peak', 'interfloor']), ('regression: hysteresis keeps up-peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 9, 'other_up': 5, 'down': 6, 'to_lobby': 1}]}, ['up-peak', 'up-peak']), ('control 23', {'windows': [{'lobby_up': 6, 'other_up': 6, 'down': 20, 'to_lobby': 19}, {'lobby_up': 4, 'other_up': 7, 'down': 17, 'to_lobby': 9}, {'lobby_up': 3, 'other_up': 8, 'down': 7, 'to_lobby': 3}, {'lobby_up': 15, 'other_up': 8, 'down': 3, 'to_lobby': 2}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor']), ('sampled regression 26', {'windows': [{'lobby_up': 6, 'other_up': 0, 'down': 20, 'to_lobby': 17}, {'lobby_up': 17, 'other_up': 3, 'down': 18, 'to_lobby': 1}, {'lobby_up': 6, 'other_up': 5, 'down': 7, 'to_lobby': 0}, {'lobby_up': 17, 'other_up': 8, 'down': 20, 'to_lobby': 8}, {'lobby_up': 3, 'other_up': 5, 'down': 5, 'to_lobby': 0}, {'lobby_up': 12, 'other_up': 3, 'down': 20, 'to_lobby': 19}, {'lobby_up': 17, 'other_up': 2, 'down': 1, 'to_lobby': 1}, {'lobby_up': 7, 'other_up': 5, 'down': 9, 'to_lobby': 6}]}, ['down-peak', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'up-peak', 'interfloor']), ('sampled regression 29', {'windows': [{'lobby_up': 19, 'other_up': 4, 'down': 20, 'to_lobby': 10}, {'lobby_up': 6, 'other_up': 5, 'down': 9, 'to_lobby': 1}, {'lobby_up': 12, 'other_up': 0, 'down': 17, 'to_lobby': 0}, {'lobby_up': 19, 'other_up': 4, 'down': 8, 'to_lobby': 1}]}, ['interfloor', 'interfloor', 'interfloor', 'up-peak'])], [('regression: hysteresis keeps up-peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 9, 'other_up': 5, 'down': 6, 'to_lobby': 1}]}, ['up-peak', 'up-peak']), ('boundary: fraction just under sixty', {'windows': [{'lobby_up': 119, 'other_up': 41, 'down': 40, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 32', {'windows': [{'lobby_up': 6, 'other_up': 6, 'down': 1, 'to_lobby': 0}, {'lobby_up': 10, 'other_up': 0, 'down': 19, 'to_lobby': 12}, {'lobby_up': 17, 'other_up': 4, 'down': 2, 'to_lobby': 1}]}, ['interfloor', 'interfloor', 'up-peak']), ('regression: quiet window ends a peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 6, 'other_up': 0, 'down': 2, 'to_lobby': 0}]}, ['up-peak', 'interfloor']), ('boundary: quiet window cannot start a peak', {'windows': [{'lobby_up': 8, 'other_up': 0, 'down': 1, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 34', {'windows': [{'lobby_up': 14, 'other_up': 3, 'down': 13, 'to_lobby': 8}, {'lobby_up': 8, 'other_up': 4, 'down': 1, 'to_lobby': 1}, {'lobby_up': 20, 'other_up': 0, 'down': 3, 'to_lobby': 3}, {'lobby_up': 4, 'other_up': 5, 'down': 8, 'to_lobby': 7}, {'lobby_up': 6, 'other_up': 6, 'down': 19, 'to_lobby': 5}, {'lobby_up': 6, 'other_up': 5, 'down': 7, 'to_lobby': 5}]}, ['interfloor', 'up-peak', 'up-peak', 'interfloor', 'interfloor', 'interfloor']), ('control 37', {'windows': [{'lobby_up': 16, 'other_up': 8, 'down': 17, 'to_lobby': 12}, {'lobby_up': 16, 'other_up': 3, 'down': 11, 'to_lobby': 0}, {'lobby_up': 4, 'other_up': 8, 'down': 1, 'to_lobby': 0}, {'lobby_up': 10, 'other_up': 5, 'down': 8, 'to_lobby': 5}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor']), ('sampled regression 40', {'windows': [{'lobby_up': 7, 'other_up': 6, 'down': 2, 'to_lobby': 1}, {'lobby_up': 11, 'other_up': 2, 'down': 1, 'to_lobby': 0}, {'lobby_up': 18, 'other_up': 7, 'down': 16, 'to_lobby': 4}, {'lobby_up': 0, 'other_up': 8, 'down': 18, 'to_lobby': 1}, {'lobby_up': 1, 'other_up': 2, 'down': 12, 'to_lobby': 9}, {'lobby_up': 7, 'other_up': 3, 'down': 0, 'to_lobby': 0}]}, ['interfloor', 'up-peak', 'up-peak', 'interfloor', 'down-peak', 'up-peak'])], [('regression: quiet window ends a peak', {'windows': [{'lobby_up': 12, 'other_up': 2, 'down': 6, 'to_lobby': 0}, {'lobby_up': 6, 'other_up': 0, 'down': 2, 'to_lobby': 0}]}, ['up-peak', 'interfloor']), ('boundary: fraction just under sixty', {'windows': [{'lobby_up': 119, 'other_up': 41, 'down': 40, 'to_lobby': 0}]}, ['interfloor']), ('sampled regression 47', {'windows': [{'lobby_up': 2, 'other_up': 7, 'down': 18, 'to_lobby': 2}, {'lobby_up': 19, 'other_up': 5, 'down': 2, 'to_lobby': 2}, {'lobby_up': 0, 'other_up': 1, 'down': 6, 'to_lobby': 6}, {'lobby_up': 15, 'other_up': 6, 'down': 3, 'to_lobby': 3}, {'lobby_up': 15, 'other_up': 0, 'down': 16, 'to_lobby': 6}, {'lobby_up': 2, 'other_up': 1, 'down': 5, 'to_lobby': 3}, {'lobby_up': 12, 'other_up': 4, 'down': 8, 'to_lobby': 8}]}, ['interfloor', 'up-peak', 'interfloor', 'up-peak', 'up-peak', 'interfloor', 'interfloor']), ('boundary: quiet window cannot start a peak', {'windows': [{'lobby_up': 8, 'other_up': 0, 'down': 1, 'to_lobby': 0}]}, ['interfloor']), ('regression: exactly sixty percent', {'windows': [{'lobby_up': 6, 'other_up': 2, 'down': 2, 'to_lobby': 0}]}, ['up-peak']), ('control 45', {'windows': [{'lobby_up': 15, 'other_up': 5, 'down': 7, 'to_lobby': 2}, {'lobby_up': 5, 'other_up': 7, 'down': 14, 'to_lobby': 0}, {'lobby_up': 17, 'other_up': 2, 'down': 13, 'to_lobby': 4}, {'lobby_up': 3, 'other_up': 3, 'down': 10, 'to_lobby': 7}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor']), ('sampled regression 48', {'windows': [{'lobby_up': 0, 'other_up': 3, 'down': 12, 'to_lobby': 1}, {'lobby_up': 19, 'other_up': 1, 'down': 12, 'to_lobby': 11}, {'lobby_up': 8, 'other_up': 2, 'down': 4, 'to_lobby': 3}, {'lobby_up': 18, 'other_up': 8, 'down': 1, 'to_lobby': 0}, {'lobby_up': 9, 'other_up': 7, 'down': 18, 'to_lobby': 17}, {'lobby_up': 11, 'other_up': 1, 'down': 18, 'to_lobby': 7}, {'lobby_up': 10, 'other_up': 2, 'down': 15, 'to_lobby': 2}]}, ['interfloor', 'interfloor', 'interfloor', 'up-peak', 'interfloor', 'interfloor', 'interfloor']), ('sampled regression 51', {'windows': [{'lobby_up': 4, 'other_up': 0, 'down': 1, 'to_lobby': 0}, {'lobby_up': 16, 'other_up': 6, 'down': 19, 'to_lobby': 15}, {'lobby_up': 13, 'other_up': 6, 'down': 3, 'to_lobby': 3}, {'lobby_up': 15, 'other_up': 0, 'down': 16, 'to_lobby': 2}, {'lobby_up': 20, 'other_up': 8, 'down': 11, 'to_lobby': 7}, {'lobby_up': 10, 'other_up': 5, 'down': 6, 'to_lobby': 1}, {'lobby_up': 12, 'other_up': 6, 'down': 19, 'to_lobby': 0}, {'lobby_up': 20, 'other_up': 2, 'down': 1, 'to_lobby': 1}]}, ['interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'interfloor', 'up-peak'])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(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 toy lift-control contract for a bounded teaching model; it makes no claim of conformance to any lift code or vendor dispatcher and omits real safety cases. 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-elevator_dispatch_scheduling-traffic-pattern-detection-percentage-arithmetic","generated_at":"2026-09-29T14:47:55.863860+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Lift group controllers make these decisions many times per minute; a wrong answer strands passengers, wastes trips or overrides a safety rule.","root_cause":"Integer division happens before scaling to percent.","sha256":"9f00b8814813f5ed721698cb3ef098cc637a0e09310364df731069f9c35507d4","title":"Traffic pattern detection with hysteresis: percentage arithmetic · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":40.668,"exit_code":1,"observations":[{"actual":["up-peak","up-peak"],"check":"regression: hysteresis keeps up-peak","expected":["up-peak","up-peak"],"passed":true},{"actual":["up-peak"],"check":"boundary: fraction just under sixty","expected":["interfloor"],"passed":false},{"actual":["interfloor","interfloor","interfloor","interfloor","interfloor","interfloor","interfloor","up-peak"],"check":"sampled regression 3","expected":["interfloor","interfloor","interfloor","interfloor","interfloor","interfloor","interfloor","up-peak"],"passed":true},{"actual":["up-peak","interfloor"],"check":"regression: quiet window ends a peak","expected":["up-peak","interfloor"],"passed":true},{"actual":["interfloor"],"check":"boundary: quiet window cannot start a peak","expected":["interfloor"],"passed":true},{"actual":["interfloor","interfloor","interfloor","interfloor"],"check":"control 1","expected":["interfloor","interfloor","interfloor","interfloor"],"passed":true},{"actual":["up-peak","interfloor","interfloor","interfloor","interfloor","interfloor","down-peak","interfloor"],"check":"sampled regression 4","expected":["up-peak","interfloor","interfloor","interfloor","interfloor","interfloor","down-peak","interfloor"],"passed":true},{"actual":["interfloor","interfloor","up-peak","up-peak","interfloor","interfloor","interfloor"],"check":"sampled regression 7","expected":["interfloor","interfloor","up-peak","up-peak","interfloor","interfloor","interfloor"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: hysteresis keeps up-peak\", \"actual\": [\"up-peak\", \"up-peak\"], \"expected\": [\"up-peak\", \"up-peak\"], \"passed\": true}, {\"check\": \"boundary: fraction just under sixty\", \"actual\": [\"up-peak\"], \"expected\": [\"interfloor\"], \"passed\": false}, {\"check\": \"sampled regression 3\", \"actual\": [\"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"up-peak\"], \"expected\": [\"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"up-peak\"], \"passed\": true}, {\"check\": \"regression: quiet window ends a peak\", \"actual\": [\"up-peak\", \"interfloor\"], \"expected\": [\"up-peak\", \"interfloor\"], \"passed\": true}, {\"check\": \"boundary: quiet window cannot start a peak\", \"actual\": [\"interfloor\"], \"expected\": [\"interfloor\"], \"passed\": true}, {\"check\": \"control 1\", \"actual\": [\"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\"], \"expected\": [\"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\"], \"passed\": true}, {\"check\": \"sampled regression 4\", \"actual\": [\"up-peak\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"down-peak\", \"interfloor\"], \"expected\": [\"up-peak\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"down-peak\", \"interfloor\"], \"passed\": true}, {\"check\": \"sampled regression 7\", \"actual\": [\"interfloor\", \"interfloor\", \"up-peak\", \"up-peak\", \"interfloor\", \"interfloor\", \"interfloor\"], \"expected\": [\"interfloor\", \"interfloor\", \"up-peak\", \"up-peak\", \"interfloor\", \"interfloor\", \"interfloor\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.052,"exit_code":1,"observations":[{"actual":["interfloor","interfloor"],"check":"regression: hysteresis keeps up-peak","expected":["up-peak","up-peak"],"passed":false},{"actual":["interfloor"],"check":"boundary: fraction just under sixty","expected":["interfloor"],"passed":true},{"actual":["interfloor","interfloor","interfloor","interfloor","interfloor","interfloor","interfloor","interfloor"],"check":"sampled regression 3","expected":["interfloor","interfloor","interfloor","interfloor","interfloor","interfloor","interfloor","up-peak"],"passed":false},{"actual":["interfloor","interfloor"],"check":"regression: quiet window ends a peak","expected":["up-peak","interfloor"],"passed":false},{"actual":["interfloor"],"check":"boundary: quiet window cannot start a peak","expected":["interfloor"],"passed":true},{"actual":["interfloor","interfloor","interfloor","interfloor"],"check":"control 1","expected":["interfloor","interfloor","interfloor","interfloor"],"passed":true},{"actual":["interfloor","interfloor","interfloor","interfloor","interfloor","interfloor","down-peak","interfloor"],"check":"sampled regression 4","expected":["up-peak","interfloor","interfloor","interfloor","interfloor","interfloor","down-peak","interfloor"],"passed":false},{"actual":["interfloor","interfloor","interfloor","interfloor","interfloor","interfloor","interfloor"],"check":"sampled regression 7","expected":["interfloor","interfloor","up-peak","up-peak","interfloor","interfloor","interfloor"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: hysteresis keeps up-peak\", \"actual\": [\"interfloor\", \"interfloor\"], \"expected\": [\"up-peak\", \"up-peak\"], \"passed\": false}, {\"check\": \"boundary: fraction just under sixty\", \"actual\": [\"interfloor\"], \"expected\": [\"interfloor\"], \"passed\": true}, {\"check\": \"sampled regression 3\", \"actual\": [\"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\"], \"expected\": [\"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"up-peak\"], \"passed\": false}, {\"check\": \"regression: quiet window ends a peak\", \"actual\": [\"interfloor\", \"interfloor\"], \"expected\": [\"up-peak\", \"interfloor\"], \"passed\": false}, {\"check\": \"boundary: quiet window cannot start a peak\", \"actual\": [\"interfloor\"], \"expected\": [\"interfloor\"], \"passed\": true}, {\"check\": \"control 1\", \"actual\": [\"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\"], \"expected\": [\"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\"], \"passed\": true}, {\"check\": \"sampled regression 4\", \"actual\": [\"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"down-peak\", \"interfloor\"], \"expected\": [\"up-peak\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"down-peak\", \"interfloor\"], \"passed\": false}, {\"check\": \"sampled regression 7\", \"actual\": [\"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\", \"interfloor\"], \"expected\": [\"interfloor\", \"interfloor\", \"up-peak\", \"up-peak\", \"interfloor\", \"interfloor\", \"interfloor\"], \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}