{"abstract":"Pedestrian walk and clearance timing returns a wrong result when the flashing dont walk interval is truncated.","category":"Traffic signal timing plans","checks":8,"contract":"Input {crossing_ft, walk_speed_tenths (ft/s*10), min_walk, yellow_tenths, red_tenths, min_green, ped_call, split}. FDW = ceil(crossing*10/speed). Walk starts at min_walk and is extended so that walk + FDW >= ceil((crossing + 6)/3.0) (pushbutton-to-far-curb check at 3.0 ft/s). FDW may overlap yellow and all-red, so with a ped call the vehicle green is max(min_green, ceil(walk + FDW - (yellow+red))). Without a call green = min_green. fits is green + yellow + red <= split. Return {walk, fdw, green, fits}.","contract_signature":"x","evaluation_group":"w2-traffic_signal_timing_plans-ped-timing","failed_approach":"Ceiling division without the tenths scaling divides feet by a speed that is ten times too large.","family":"w2-traffic_signal_timing_plans-ped-timing-fdw-ceiling","id":"FA-67936","implementations":{"attempt":{"sha256":"999465da00aedf3fdc07c93c5bb8d09f4f6d884e545359dc04e5202d0c7f57b6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    sp = x['walk_speed_tenths']\n    fdw = -(-x['crossing_ft'] // sp)\n    walk = x['min_walk']\n    total = -(-(x['crossing_ft'] + 6) * 10 // 30)\n    if walk + fdw < total:\n        walk = total - fdw\n    yr = Fraction(x['yellow_tenths'] + x['red_tenths'], 10)\n    g = x['min_green']\n    if x['ped_call']:\n        need = walk + fdw - yr\n        g = max(g, math.ceil(need))\n    return {'walk': walk, 'fdw': fdw, 'green': g, 'fits': g + yr <= x['split']}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[({'crossing_ft': 36, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 12}, {'walk': 7, 'fdw': 9, 'green': 8, 'fits': True}), ({'crossing_ft': 70, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 7, 'fdw': 20, 'green': 21, 'fits': True}), ({'crossing_ft': 90, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 35}, {'walk': 6, 'fdw': 26, 'green': 27, 'fits': True}), ({'crossing_ft': 27, 'walk_speed_tenths': 30, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 38}, {'walk': 5, 'fdw': 9, 'green': 10, 'fits': True}), ({'crossing_ft': 110, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 40}, {'walk': 7, 'fdw': 32, 'green': 34, 'fits': True}), ({'crossing_ft': 42, 'walk_speed_tenths': 40, 'min_walk': 4, 'yellow_tenths': 40, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 41}, {'walk': 5, 'fdw': 11, 'green': 11, 'fits': True}), ({'crossing_ft': 74, 'walk_speed_tenths': 30, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 15, 'ped_call': True, 'split': 18}, {'walk': 7, 'fdw': 25, 'green': 27, 'fits': False}), ({'crossing_ft': 89, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 40, 'red_tenths': 15, 'min_green': 8, 'ped_call': False, 'split': 43}, {'walk': 10, 'fdw': 26, 'green': 8, 'fits': True})], [({'crossing_ft': 41, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 5, 'ped_call': True, 'split': 41}, {'walk': 7, 'fdw': 11, 'green': 12, 'fits': True}), ({'crossing_ft': 33, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 42}, {'walk': 7, 'fdw': 10, 'green': 12, 'fits': True}), ({'crossing_ft': 37, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 15, 'ped_call': False, 'split': 39}, {'walk': 7, 'fdw': 11, 'green': 15, 'fits': True}), ({'crossing_ft': 36, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 8, 'ped_call': True, 'split': 29}, {'walk': 10, 'fdw': 11, 'green': 16, 'fits': True}), ({'crossing_ft': 90, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 35}, {'walk': 6, 'fdw': 26, 'green': 27, 'fits': True}), ({'crossing_ft': 70, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 7, 'fdw': 20, 'green': 21, 'fits': True}), ({'crossing_ft': 36, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 12}, {'walk': 7, 'fdw': 9, 'green': 8, 'fits': True}), ({'crossing_ft': 84, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 8, 'ped_call': True, 'split': 26}, {'walk': 10, 'fdw': 24, 'green': 28, 'fits': False})], [({'crossing_ft': 79, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 21}, {'walk': 7, 'fdw': 23, 'green': 8, 'fits': True}), ({'crossing_ft': 109, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 20, 'min_green': 10, 'ped_call': False, 'split': 31}, {'walk': 7, 'fdw': 32, 'green': 10, 'fits': True}), ({'crossing_ft': 40, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 39}, {'walk': 4, 'fdw': 12, 'green': 12, 'fits': True}), ({'crossing_ft': 36, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 12}, {'walk': 7, 'fdw': 9, 'green': 8, 'fits': True}), ({'crossing_ft': 24, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 30}, {'walk': 10, 'fdw': 7, 'green': 12, 'fits': True}), ({'crossing_ft': 70, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 7, 'fdw': 20, 'green': 21, 'fits': True}), ({'crossing_ft': 107, 'walk_speed_tenths': 30, 'min_walk': 10, 'yellow_tenths': 35, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 40}, {'walk': 10, 'fdw': 36, 'green': 41, 'fits': False}), ({'crossing_ft': 90, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 35}, {'walk': 6, 'fdw': 26, 'green': 27, 'fits': True})], [({'crossing_ft': 34, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 35, 'red_tenths': 10, 'min_green': 5, 'ped_call': True, 'split': 38}, {'walk': 7, 'fdw': 10, 'green': 13, 'fits': True}), ({'crossing_ft': 75, 'walk_speed_tenths': 30, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 15, 'ped_call': True, 'split': 36}, {'walk': 5, 'fdw': 25, 'green': 25, 'fits': True}), ({'crossing_ft': 36, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 12}, {'walk': 7, 'fdw': 9, 'green': 8, 'fits': True}), ({'crossing_ft': 90, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 35}, {'walk': 6, 'fdw': 26, 'green': 27, 'fits': True}), ({'crossing_ft': 96, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 40, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 21}, {'walk': 6, 'fdw': 28, 'green': 8, 'fits': True}), ({'crossing_ft': 70, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 7, 'fdw': 20, 'green': 21, 'fits': True}), ({'crossing_ft': 81, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 10, 'fdw': 24, 'green': 30, 'fits': False}), ({'crossing_ft': 45, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 5, 'ped_call': False, 'split': 41}, {'walk': 7, 'fdw': 13, 'green': 5, 'fits': True})], [({'crossing_ft': 65, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 40, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 40}, {'walk': 5, 'fdw': 19, 'green': 19, 'fits': True}), ({'crossing_ft': 87, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 15, 'ped_call': True, 'split': 38}, {'walk': 10, 'fdw': 25, 'green': 30, 'fits': True}), ({'crossing_ft': 90, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 35}, {'walk': 6, 'fdw': 26, 'green': 27, 'fits': True}), ({'crossing_ft': 85, 'walk_speed_tenths': 30, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 8, 'ped_call': True, 'split': 28}, {'walk': 5, 'fdw': 29, 'green': 28, 'fits': False}), ({'crossing_ft': 70, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 7, 'fdw': 20, 'green': 21, 'fits': True}), ({'crossing_ft': 92, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 10, 'ped_call': True, 'split': 34}, {'walk': 7, 'fdw': 27, 'green': 29, 'fits': True}), ({'crossing_ft': 36, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 12}, {'walk': 7, 'fdw': 9, 'green': 8, 'fits': True}), ({'crossing_ft': 64, 'walk_speed_tenths': 30, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 8, 'ped_call': True, 'split': 21}, {'walk': 4, 'fdw': 22, 'green': 21, 'fits': False})]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check('timing oracle' + ' %d' % i, 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":"54f89d4a38b1859e360e031ad02b889dc975a722ba3d2b92083d9de055e91b29","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    sp = x['walk_speed_tenths']\n    fdw = x['crossing_ft'] * 10 // sp\n    walk = x['min_walk']\n    total = -(-(x['crossing_ft'] + 6) * 10 // 30)\n    if walk + fdw < total:\n        walk = total - fdw\n    yr = Fraction(x['yellow_tenths'] + x['red_tenths'], 10)\n    g = x['min_green']\n    if x['ped_call']:\n        need = walk + fdw - yr\n        g = max(g, math.ceil(need))\n    return {'walk': walk, 'fdw': fdw, 'green': g, 'fits': g + yr <= x['split']}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[({'crossing_ft': 36, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 12}, {'walk': 7, 'fdw': 9, 'green': 8, 'fits': True}), ({'crossing_ft': 70, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 7, 'fdw': 20, 'green': 21, 'fits': True}), ({'crossing_ft': 90, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 35}, {'walk': 6, 'fdw': 26, 'green': 27, 'fits': True}), ({'crossing_ft': 27, 'walk_speed_tenths': 30, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 38}, {'walk': 5, 'fdw': 9, 'green': 10, 'fits': True}), ({'crossing_ft': 110, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 40}, {'walk': 7, 'fdw': 32, 'green': 34, 'fits': True}), ({'crossing_ft': 42, 'walk_speed_tenths': 40, 'min_walk': 4, 'yellow_tenths': 40, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 41}, {'walk': 5, 'fdw': 11, 'green': 11, 'fits': True}), ({'crossing_ft': 74, 'walk_speed_tenths': 30, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 15, 'ped_call': True, 'split': 18}, {'walk': 7, 'fdw': 25, 'green': 27, 'fits': False}), ({'crossing_ft': 89, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 40, 'red_tenths': 15, 'min_green': 8, 'ped_call': False, 'split': 43}, {'walk': 10, 'fdw': 26, 'green': 8, 'fits': True})], [({'crossing_ft': 41, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 5, 'ped_call': True, 'split': 41}, {'walk': 7, 'fdw': 11, 'green': 12, 'fits': True}), ({'crossing_ft': 33, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 42}, {'walk': 7, 'fdw': 10, 'green': 12, 'fits': True}), ({'crossing_ft': 37, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 15, 'ped_call': False, 'split': 39}, {'walk': 7, 'fdw': 11, 'green': 15, 'fits': True}), ({'crossing_ft': 36, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 8, 'ped_call': True, 'split': 29}, {'walk': 10, 'fdw': 11, 'green': 16, 'fits': True}), ({'crossing_ft': 90, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 35}, {'walk': 6, 'fdw': 26, 'green': 27, 'fits': True}), ({'crossing_ft': 70, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 7, 'fdw': 20, 'green': 21, 'fits': True}), ({'crossing_ft': 36, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 12}, {'walk': 7, 'fdw': 9, 'green': 8, 'fits': True}), ({'crossing_ft': 84, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 8, 'ped_call': True, 'split': 26}, {'walk': 10, 'fdw': 24, 'green': 28, 'fits': False})], [({'crossing_ft': 79, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 21}, {'walk': 7, 'fdw': 23, 'green': 8, 'fits': True}), ({'crossing_ft': 109, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 20, 'min_green': 10, 'ped_call': False, 'split': 31}, {'walk': 7, 'fdw': 32, 'green': 10, 'fits': True}), ({'crossing_ft': 40, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 39}, {'walk': 4, 'fdw': 12, 'green': 12, 'fits': True}), ({'crossing_ft': 36, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 12}, {'walk': 7, 'fdw': 9, 'green': 8, 'fits': True}), ({'crossing_ft': 24, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 30}, {'walk': 10, 'fdw': 7, 'green': 12, 'fits': True}), ({'crossing_ft': 70, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 7, 'fdw': 20, 'green': 21, 'fits': True}), ({'crossing_ft': 107, 'walk_speed_tenths': 30, 'min_walk': 10, 'yellow_tenths': 35, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 40}, {'walk': 10, 'fdw': 36, 'green': 41, 'fits': False}), ({'crossing_ft': 90, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 35}, {'walk': 6, 'fdw': 26, 'green': 27, 'fits': True})], [({'crossing_ft': 34, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 35, 'red_tenths': 10, 'min_green': 5, 'ped_call': True, 'split': 38}, {'walk': 7, 'fdw': 10, 'green': 13, 'fits': True}), ({'crossing_ft': 75, 'walk_speed_tenths': 30, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 15, 'ped_call': True, 'split': 36}, {'walk': 5, 'fdw': 25, 'green': 25, 'fits': True}), ({'crossing_ft': 36, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 12}, {'walk': 7, 'fdw': 9, 'green': 8, 'fits': True}), ({'crossing_ft': 90, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 35}, {'walk': 6, 'fdw': 26, 'green': 27, 'fits': True}), ({'crossing_ft': 96, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 40, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 21}, {'walk': 6, 'fdw': 28, 'green': 8, 'fits': True}), ({'crossing_ft': 70, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 7, 'fdw': 20, 'green': 21, 'fits': True}), ({'crossing_ft': 81, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 10, 'fdw': 24, 'green': 30, 'fits': False}), ({'crossing_ft': 45, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 5, 'ped_call': False, 'split': 41}, {'walk': 7, 'fdw': 13, 'green': 5, 'fits': True})], [({'crossing_ft': 65, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 40, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 40}, {'walk': 5, 'fdw': 19, 'green': 19, 'fits': True}), ({'crossing_ft': 87, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 15, 'ped_call': True, 'split': 38}, {'walk': 10, 'fdw': 25, 'green': 30, 'fits': True}), ({'crossing_ft': 90, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 35}, {'walk': 6, 'fdw': 26, 'green': 27, 'fits': True}), ({'crossing_ft': 85, 'walk_speed_tenths': 30, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 8, 'ped_call': True, 'split': 28}, {'walk': 5, 'fdw': 29, 'green': 28, 'fits': False}), ({'crossing_ft': 70, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 20, 'min_green': 5, 'ped_call': True, 'split': 30}, {'walk': 7, 'fdw': 20, 'green': 21, 'fits': True}), ({'crossing_ft': 92, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 10, 'ped_call': True, 'split': 34}, {'walk': 7, 'fdw': 27, 'green': 29, 'fits': True}), ({'crossing_ft': 36, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 12}, {'walk': 7, 'fdw': 9, 'green': 8, 'fits': True}), ({'crossing_ft': 64, 'walk_speed_tenths': 30, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 8, 'ped_call': True, 'split': 21}, {'walk': 4, 'fdw': 22, 'green': 21, 'fits': False})]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check('timing oracle' + ' %d' % i, 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":"A deterministic, bounded toy model with a stipulated contract; it makes no claim of conformance to any agency manual or standard. 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-traffic_signal_timing_plans-ped-timing-fdw-ceiling","generated_at":"2026-09-29T14:47:57.594238+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Signal timing arithmetic is exact and integer or rational; a wrong rule silently produces unsafe or inefficient timing plans.","root_cause":"Floor division gives pedestrians less clearance than the crossing needs at the design walking speed.","sha256":"663dcda2c78342af46e7403d53855faf1f7175bdc44a4fdcbdbd6e63d053e92a","title":"Pedestrian walk and clearance timing: the flashing dont walk interval is truncated · 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":43.834,"exit_code":1,"observations":[{"actual":{"fdw":1,"fits":true,"green":8,"walk":13},"check":"timing oracle 0","expected":{"fdw":9,"fits":true,"green":8,"walk":7},"passed":false},{"actual":{"fdw":2,"fits":true,"green":20,"walk":24},"check":"timing oracle 1","expected":{"fdw":20,"fits":true,"green":21,"walk":7},"passed":false},{"actual":{"fdw":3,"fits":true,"green":27,"walk":29},"check":"timing oracle 2","expected":{"fdw":26,"fits":true,"green":27,"walk":6},"passed":false},{"actual":{"fdw":1,"fits":true,"green":10,"walk":10},"check":"timing oracle 3","expected":{"fdw":9,"fits":true,"green":10,"walk":5},"passed":false},{"actual":{"fdw":4,"fits":true,"green":34,"walk":35},"check":"timing oracle 4","expected":{"fdw":32,"fits":true,"green":34,"walk":7},"passed":false},{"actual":{"fdw":2,"fits":true,"green":11,"walk":14},"check":"timing oracle 5","expected":{"fdw":11,"fits":true,"green":11,"walk":5},"passed":false},{"actual":{"fdw":3,"fits":false,"green":22,"walk":24},"check":"timing oracle 6","expected":{"fdw":25,"fits":false,"green":27,"walk":7},"passed":false},{"actual":{"fdw":3,"fits":true,"green":8,"walk":29},"check":"timing oracle 7","expected":{"fdw":26,"fits":true,"green":8,"walk":10},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"timing oracle 0\", \"actual\": {\"walk\": 13, \"fdw\": 1, \"green\": 8, \"fits\": true}, \"expected\": {\"walk\": 7, \"fdw\": 9, \"green\": 8, \"fits\": true}, \"passed\": false}, {\"check\": \"timing oracle 1\", \"actual\": {\"walk\": 24, \"fdw\": 2, \"green\": 20, \"fits\": true}, \"expected\": {\"walk\": 7, \"fdw\": 20, \"green\": 21, \"fits\": true}, \"passed\": false}, {\"check\": \"timing oracle 2\", \"actual\": {\"walk\": 29, \"fdw\": 3, \"green\": 27, \"fits\": true}, \"expected\": {\"walk\": 6, \"fdw\": 26, \"green\": 27, \"fits\": true}, \"passed\": false}, {\"check\": \"timing oracle 3\", \"actual\": {\"walk\": 10, \"fdw\": 1, \"green\": 10, \"fits\": true}, \"expected\": {\"walk\": 5, \"fdw\": 9, \"green\": 10, \"fits\": true}, \"passed\": false}, {\"check\": \"timing oracle 4\", \"actual\": {\"walk\": 35, \"fdw\": 4, \"green\": 34, \"fits\": true}, \"expected\": {\"walk\": 7, \"fdw\": 32, \"green\": 34, \"fits\": true}, \"passed\": false}, {\"check\": \"timing oracle 5\", \"actual\": {\"walk\": 14, \"fdw\": 2, \"green\": 11, \"fits\": true}, \"expected\": {\"walk\": 5, \"fdw\": 11, \"green\": 11, \"fits\": true}, \"passed\": false}, {\"check\": \"timing oracle 6\", \"actual\": {\"walk\": 24, \"fdw\": 3, \"green\": 22, \"fits\": false}, \"expected\": {\"walk\": 7, \"fdw\": 25, \"green\": 27, \"fits\": false}, \"passed\": false}, {\"check\": \"timing oracle 7\", \"actual\": {\"walk\": 29, \"fdw\": 3, \"green\": 8, \"fits\": true}, \"expected\": {\"walk\": 10, \"fdw\": 26, \"green\": 8, \"fits\": true}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.136,"exit_code":1,"observations":[{"actual":{"fdw":9,"fits":true,"green":8,"walk":7},"check":"timing oracle 0","expected":{"fdw":9,"fits":true,"green":8,"walk":7},"passed":true},{"actual":{"fdw":20,"fits":true,"green":21,"walk":7},"check":"timing oracle 1","expected":{"fdw":20,"fits":true,"green":21,"walk":7},"passed":true},{"actual":{"fdw":25,"fits":true,"green":27,"walk":7},"check":"timing oracle 2","expected":{"fdw":26,"fits":true,"green":27,"walk":6},"passed":false},{"actual":{"fdw":9,"fits":true,"green":10,"walk":5},"check":"timing oracle 3","expected":{"fdw":9,"fits":true,"green":10,"walk":5},"passed":true},{"actual":{"fdw":31,"fits":true,"green":34,"walk":8},"check":"timing oracle 4","expected":{"fdw":32,"fits":true,"green":34,"walk":7},"passed":false},{"actual":{"fdw":10,"fits":true,"green":11,"walk":6},"check":"timing oracle 5","expected":{"fdw":11,"fits":true,"green":11,"walk":5},"passed":false},{"actual":{"fdw":24,"fits":false,"green":26,"walk":7},"check":"timing oracle 6","expected":{"fdw":25,"fits":false,"green":27,"walk":7},"passed":false},{"actual":{"fdw":25,"fits":true,"green":8,"walk":10},"check":"timing oracle 7","expected":{"fdw":26,"fits":true,"green":8,"walk":10},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"timing oracle 0\", \"actual\": {\"walk\": 7, \"fdw\": 9, \"green\": 8, \"fits\": true}, \"expected\": {\"walk\": 7, \"fdw\": 9, \"green\": 8, \"fits\": true}, \"passed\": true}, {\"check\": \"timing oracle 1\", \"actual\": {\"walk\": 7, \"fdw\": 20, \"green\": 21, \"fits\": true}, \"expected\": {\"walk\": 7, \"fdw\": 20, \"green\": 21, \"fits\": true}, \"passed\": true}, {\"check\": \"timing oracle 2\", \"actual\": {\"walk\": 7, \"fdw\": 25, \"green\": 27, \"fits\": true}, \"expected\": {\"walk\": 6, \"fdw\": 26, \"green\": 27, \"fits\": true}, \"passed\": false}, {\"check\": \"timing oracle 3\", \"actual\": {\"walk\": 5, \"fdw\": 9, \"green\": 10, \"fits\": true}, \"expected\": {\"walk\": 5, \"fdw\": 9, \"green\": 10, \"fits\": true}, \"passed\": true}, {\"check\": \"timing oracle 4\", \"actual\": {\"walk\": 8, \"fdw\": 31, \"green\": 34, \"fits\": true}, \"expected\": {\"walk\": 7, \"fdw\": 32, \"green\": 34, \"fits\": true}, \"passed\": false}, {\"check\": \"timing oracle 5\", \"actual\": {\"walk\": 6, \"fdw\": 10, \"green\": 11, \"fits\": true}, \"expected\": {\"walk\": 5, \"fdw\": 11, \"green\": 11, \"fits\": true}, \"passed\": false}, {\"check\": \"timing oracle 6\", \"actual\": {\"walk\": 7, \"fdw\": 24, \"green\": 26, \"fits\": false}, \"expected\": {\"walk\": 7, \"fdw\": 25, \"green\": 27, \"fits\": false}, \"passed\": false}, {\"check\": \"timing oracle 7\", \"actual\": {\"walk\": 10, \"fdw\": 25, \"green\": 8, \"fits\": true}, \"expected\": {\"walk\": 10, \"fdw\": 26, \"green\": 8, \"fits\": true}, \"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."}}