FAILURE MAP
← Case archive

FA-67941 / Traffic signal timing plans / Open access

Pedestrian walk and clearance timing: the total-crossing check omits the pushbutton setback · case 01

Pedestrian walk and clearance timing returns a wrong result when the total-crossing check omits the pushbutton setback.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The 6 ft from the pushbutton to the curb is ignored, so walk is not extended for pedestrians starting at the button.

VERIFIED REPAIR

Restore the pushbutton distance rule so that the step reads `(x['crossing_ft'] + 6)`.

Unsuccessful approach: Half of the stipulated setback still under-extends walk for long crossings.

Case 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}.

Why this case matters

Signal timing arithmetic is exact and integer or rational; a wrong rule silently produces unsafe or inefficient timing plans.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
import math
N = 1
observations = []
def solve(x):
    sp = x['walk_speed_tenths']
    fdw = -(-x['crossing_ft'] * 10 // sp)
    walk = x['min_walk']
    total = -(-x['crossing_ft'] * 10 // 30)
    if walk + fdw < total:
        walk = total - fdw
    yr = Fraction(x['yellow_tenths'] + x['red_tenths'], 10)
    g = x['min_green']
    if x['ped_call']:
        need = walk + fdw - yr
        g = max(g, math.ceil(need))
    return {'walk': walk, 'fdw': fdw, 'green': g, 'fits': g + yr <= x['split']}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[({'crossing_ft': 53, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 5, 'ped_call': True, 'split': 43}, {'walk': 7, 'fdw': 16, 'green': 19, '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': 85, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 26}, {'walk': 6, 'fdw': 25, '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': 74, 'walk_speed_tenths': 30, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 8, 'ped_call': False, 'split': 41}, {'walk': 4, 'fdw': 25, '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': 58, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 5, 'ped_call': True, 'split': 31}, {'walk': 7, 'fdw': 17, 'green': 18, 'fits': True}), ({'crossing_ft': 49, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 10, 'ped_call': True, 'split': 19}, {'walk': 5, 'fdw': 14, 'green': 14, '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': 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': 51, 'walk_speed_tenths': 30, 'min_walk': 10, 'yellow_tenths': 35, 'red_tenths': 20, 'min_green': 10, 'ped_call': False, 'split': 39}, {'walk': 10, 'fdw': 17, 'green': 10, 'fits': True}), ({'crossing_ft': 78, 'walk_speed_tenths': 40, 'min_walk': 4, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 10, 'ped_call': False, 'split': 42}, {'walk': 8, 'fdw': 20, 'green': 10, 'fits': True}), ({'crossing_ft': 49, 'walk_speed_tenths': 30, 'min_walk': 5, 'yellow_tenths': 35, 'red_tenths': 10, 'min_green': 15, 'ped_call': False, 'split': 30}, {'walk': 5, 'fdw': 17, 'green': 15, 'fits': True}), ({'crossing_ft': 104, 'walk_speed_tenths': 40, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 15, 'min_green': 5, 'ped_call': False, 'split': 27}, {'walk': 11, 'fdw': 26, 'green': 5, 'fits': True}), ({'crossing_ft': 45, 'walk_speed_tenths': 30, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': True, 'split': 33}, {'walk': 4, 'fdw': 15, 'green': 15, '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': 66, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 15, 'min_green': 15, 'ped_call': True, 'split': 25}, {'walk': 7, 'fdw': 19, 'green': 21, 'fits': False}), ({'crossing_ft': 73, 'walk_speed_tenths': 30, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 10, 'min_green': 8, 'ped_call': True, 'split': 33}, {'walk': 7, 'fdw': 25, 'green': 27, 'fits': True}), ({'crossing_ft': 87, 'walk_speed_tenths': 40, 'min_walk': 4, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 24}, {'walk': 9, 'fdw': 22, 'green': 26, 'fits': False}), ({'crossing_ft': 100, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': False, 'split': 35}, {'walk': 10, 'fdw': 29, 'green': 10, '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': 36, 'walk_speed_tenths': 40, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 5, 'ped_call': False, 'split': 17}, {'walk': 5, 'fdw': 9, 'green': 5, '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': 100, 'walk_speed_tenths': 30, 'min_walk': 10, 'yellow_tenths': 35, 'red_tenths': 10, 'min_green': 10, 'ped_call': False, 'split': 25}, {'walk': 10, 'fdw': 34, 'green': 10, 'fits': True}), ({'crossing_ft': 55, 'walk_speed_tenths': 40, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 20, 'min_green': 8, 'ped_call': True, 'split': 25}, {'walk': 7, 'fdw': 14, 'green': 15, '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': 25, 'walk_speed_tenths': 30, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 32}, {'walk': 7, 'fdw': 9, 'green': 11, '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': 69, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 15, 'ped_call': False, 'split': 31}, {'walk': 10, 'fdw': 20, 'green': 15, 'fits': True}), ({'crossing_ft': 92, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 20, 'min_green': 10, 'ped_call': True, 'split': 22}, {'walk': 6, 'fdw': 27, 'green': 27, 'fits': False})], [({'crossing_ft': 91, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 8, 'ped_call': True, 'split': 44}, {'walk': 7, 'fdw': 26, 'green': 28, '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': 68, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 15, 'min_green': 15, 'ped_call': False, 'split': 20}, {'walk': 10, 'fdw': 20, 'green': 15, 'fits': True}), ({'crossing_ft': 85, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 5, 'ped_call': False, 'split': 40}, {'walk': 9, 'fdw': 22, 'green': 5, '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': 47, 'walk_speed_tenths': 30, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 15, 'ped_call': True, 'split': 18}, {'walk': 10, 'fdw': 16, 'green': 21, 'fits': False}), ({'crossing_ft': 80, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 43}, {'walk': 6, 'fdw': 23, 'green': 23, 'fits': True})]]
for i, (args, expected) in enumerate(fixtures[N-1]):
    check('timing oracle' + ' %d' % i, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
timing oracle 0{'fdw': 16, 'fits': True, 'green': 19, 'walk': 7}{'fdw': 16, 'fits': True, 'green': 19, 'walk': 7}Passed
timing oracle 1{'fdw': 9, 'fits': True, 'green': 8, 'walk': 7}{'fdw': 9, 'fits': True, 'green': 8, 'walk': 7}Passed
timing oracle 2{'fdw': 25, 'fits': True, 'green': 8, 'walk': 4}{'fdw': 25, 'fits': True, 'green': 8, 'walk': 6}Failed
timing oracle 3{'fdw': 26, 'fits': True, 'green': 25, 'walk': 4}{'fdw': 26, 'fits': True, 'green': 27, 'walk': 6}Failed
timing oracle 4{'fdw': 25, 'fits': True, 'green': 8, 'walk': 4}{'fdw': 25, 'fits': True, 'green': 8, 'walk': 4}Passed
timing oracle 5{'fdw': 20, 'fits': True, 'green': 21, 'walk': 7}{'fdw': 20, 'fits': True, 'green': 21, 'walk': 7}Passed
timing oracle 6{'fdw': 17, 'fits': True, 'green': 18, 'walk': 7}{'fdw': 17, 'fits': True, 'green': 18, 'walk': 7}Passed
timing oracle 7{'fdw': 14, 'fits': True, 'green': 13, 'walk': 4}{'fdw': 14, 'fits': True, 'green': 14, 'walk': 5}Failed

SHA-256 / b60390b4ea0fb6a89602d771a43c46407e1be994d819b445c25015e19971edb3

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
import math
N = 1
observations = []
def solve(x):
    sp = x['walk_speed_tenths']
    fdw = -(-x['crossing_ft'] * 10 // sp)
    walk = x['min_walk']
    total = -(-(x['crossing_ft'] + 3) * 10 // 30)
    if walk + fdw < total:
        walk = total - fdw
    yr = Fraction(x['yellow_tenths'] + x['red_tenths'], 10)
    g = x['min_green']
    if x['ped_call']:
        need = walk + fdw - yr
        g = max(g, math.ceil(need))
    return {'walk': walk, 'fdw': fdw, 'green': g, 'fits': g + yr <= x['split']}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[({'crossing_ft': 53, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 5, 'ped_call': True, 'split': 43}, {'walk': 7, 'fdw': 16, 'green': 19, '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': 85, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 26}, {'walk': 6, 'fdw': 25, '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': 74, 'walk_speed_tenths': 30, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 8, 'ped_call': False, 'split': 41}, {'walk': 4, 'fdw': 25, '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': 58, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 5, 'ped_call': True, 'split': 31}, {'walk': 7, 'fdw': 17, 'green': 18, 'fits': True}), ({'crossing_ft': 49, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 10, 'ped_call': True, 'split': 19}, {'walk': 5, 'fdw': 14, 'green': 14, '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': 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': 51, 'walk_speed_tenths': 30, 'min_walk': 10, 'yellow_tenths': 35, 'red_tenths': 20, 'min_green': 10, 'ped_call': False, 'split': 39}, {'walk': 10, 'fdw': 17, 'green': 10, 'fits': True}), ({'crossing_ft': 78, 'walk_speed_tenths': 40, 'min_walk': 4, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 10, 'ped_call': False, 'split': 42}, {'walk': 8, 'fdw': 20, 'green': 10, 'fits': True}), ({'crossing_ft': 49, 'walk_speed_tenths': 30, 'min_walk': 5, 'yellow_tenths': 35, 'red_tenths': 10, 'min_green': 15, 'ped_call': False, 'split': 30}, {'walk': 5, 'fdw': 17, 'green': 15, 'fits': True}), ({'crossing_ft': 104, 'walk_speed_tenths': 40, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 15, 'min_green': 5, 'ped_call': False, 'split': 27}, {'walk': 11, 'fdw': 26, 'green': 5, 'fits': True}), ({'crossing_ft': 45, 'walk_speed_tenths': 30, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': True, 'split': 33}, {'walk': 4, 'fdw': 15, 'green': 15, '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': 66, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 15, 'min_green': 15, 'ped_call': True, 'split': 25}, {'walk': 7, 'fdw': 19, 'green': 21, 'fits': False}), ({'crossing_ft': 73, 'walk_speed_tenths': 30, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 10, 'min_green': 8, 'ped_call': True, 'split': 33}, {'walk': 7, 'fdw': 25, 'green': 27, 'fits': True}), ({'crossing_ft': 87, 'walk_speed_tenths': 40, 'min_walk': 4, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 24}, {'walk': 9, 'fdw': 22, 'green': 26, 'fits': False}), ({'crossing_ft': 100, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': False, 'split': 35}, {'walk': 10, 'fdw': 29, 'green': 10, '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': 36, 'walk_speed_tenths': 40, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 5, 'ped_call': False, 'split': 17}, {'walk': 5, 'fdw': 9, 'green': 5, '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': 100, 'walk_speed_tenths': 30, 'min_walk': 10, 'yellow_tenths': 35, 'red_tenths': 10, 'min_green': 10, 'ped_call': False, 'split': 25}, {'walk': 10, 'fdw': 34, 'green': 10, 'fits': True}), ({'crossing_ft': 55, 'walk_speed_tenths': 40, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 20, 'min_green': 8, 'ped_call': True, 'split': 25}, {'walk': 7, 'fdw': 14, 'green': 15, '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': 25, 'walk_speed_tenths': 30, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 32}, {'walk': 7, 'fdw': 9, 'green': 11, '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': 69, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 15, 'ped_call': False, 'split': 31}, {'walk': 10, 'fdw': 20, 'green': 15, 'fits': True}), ({'crossing_ft': 92, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 20, 'min_green': 10, 'ped_call': True, 'split': 22}, {'walk': 6, 'fdw': 27, 'green': 27, 'fits': False})], [({'crossing_ft': 91, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 8, 'ped_call': True, 'split': 44}, {'walk': 7, 'fdw': 26, 'green': 28, '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': 68, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 15, 'min_green': 15, 'ped_call': False, 'split': 20}, {'walk': 10, 'fdw': 20, 'green': 15, 'fits': True}), ({'crossing_ft': 85, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 5, 'ped_call': False, 'split': 40}, {'walk': 9, 'fdw': 22, 'green': 5, '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': 47, 'walk_speed_tenths': 30, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 15, 'ped_call': True, 'split': 18}, {'walk': 10, 'fdw': 16, 'green': 21, 'fits': False}), ({'crossing_ft': 80, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 43}, {'walk': 6, 'fdw': 23, 'green': 23, 'fits': True})]]
for i, (args, expected) in enumerate(fixtures[N-1]):
    check('timing oracle' + ' %d' % i, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
timing oracle 0{'fdw': 16, 'fits': True, 'green': 19, 'walk': 7}{'fdw': 16, 'fits': True, 'green': 19, 'walk': 7}Passed
timing oracle 1{'fdw': 9, 'fits': True, 'green': 8, 'walk': 7}{'fdw': 9, 'fits': True, 'green': 8, 'walk': 7}Passed
timing oracle 2{'fdw': 25, 'fits': True, 'green': 8, 'walk': 5}{'fdw': 25, 'fits': True, 'green': 8, 'walk': 6}Failed
timing oracle 3{'fdw': 26, 'fits': True, 'green': 26, 'walk': 5}{'fdw': 26, 'fits': True, 'green': 27, 'walk': 6}Failed
timing oracle 4{'fdw': 25, 'fits': True, 'green': 8, 'walk': 4}{'fdw': 25, 'fits': True, 'green': 8, 'walk': 4}Passed
timing oracle 5{'fdw': 20, 'fits': True, 'green': 21, 'walk': 7}{'fdw': 20, 'fits': True, 'green': 21, 'walk': 7}Passed
timing oracle 6{'fdw': 17, 'fits': True, 'green': 18, 'walk': 7}{'fdw': 17, 'fits': True, 'green': 18, 'walk': 7}Passed
timing oracle 7{'fdw': 14, 'fits': True, 'green': 13, 'walk': 4}{'fdw': 14, 'fits': True, 'green': 14, 'walk': 5}Failed

SHA-256 / 578d79cc5b07133e275300a14f8547bf3af5c931f1a24adcc54e7431ee8e84b4

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
import math
N = 1
observations = []
def solve(x):
    sp = x['walk_speed_tenths']
    fdw = -(-x['crossing_ft'] * 10 // sp)
    walk = x['min_walk']
    total = -(-(x['crossing_ft'] + 6) * 10 // 30)
    if walk + fdw < total:
        walk = total - fdw
    yr = Fraction(x['yellow_tenths'] + x['red_tenths'], 10)
    g = x['min_green']
    if x['ped_call']:
        need = walk + fdw - yr
        g = max(g, math.ceil(need))
    return {'walk': walk, 'fdw': fdw, 'green': g, 'fits': g + yr <= x['split']}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[({'crossing_ft': 53, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 5, 'ped_call': True, 'split': 43}, {'walk': 7, 'fdw': 16, 'green': 19, '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': 85, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 10, 'min_green': 8, 'ped_call': False, 'split': 26}, {'walk': 6, 'fdw': 25, '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': 74, 'walk_speed_tenths': 30, 'min_walk': 4, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 8, 'ped_call': False, 'split': 41}, {'walk': 4, 'fdw': 25, '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': 58, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 5, 'ped_call': True, 'split': 31}, {'walk': 7, 'fdw': 17, 'green': 18, 'fits': True}), ({'crossing_ft': 49, 'walk_speed_tenths': 35, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 10, 'ped_call': True, 'split': 19}, {'walk': 5, 'fdw': 14, 'green': 14, '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': 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': 51, 'walk_speed_tenths': 30, 'min_walk': 10, 'yellow_tenths': 35, 'red_tenths': 20, 'min_green': 10, 'ped_call': False, 'split': 39}, {'walk': 10, 'fdw': 17, 'green': 10, 'fits': True}), ({'crossing_ft': 78, 'walk_speed_tenths': 40, 'min_walk': 4, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 10, 'ped_call': False, 'split': 42}, {'walk': 8, 'fdw': 20, 'green': 10, 'fits': True}), ({'crossing_ft': 49, 'walk_speed_tenths': 30, 'min_walk': 5, 'yellow_tenths': 35, 'red_tenths': 10, 'min_green': 15, 'ped_call': False, 'split': 30}, {'walk': 5, 'fdw': 17, 'green': 15, 'fits': True}), ({'crossing_ft': 104, 'walk_speed_tenths': 40, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 15, 'min_green': 5, 'ped_call': False, 'split': 27}, {'walk': 11, 'fdw': 26, 'green': 5, 'fits': True}), ({'crossing_ft': 45, 'walk_speed_tenths': 30, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 8, 'ped_call': True, 'split': 33}, {'walk': 4, 'fdw': 15, 'green': 15, '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': 66, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 15, 'min_green': 15, 'ped_call': True, 'split': 25}, {'walk': 7, 'fdw': 19, 'green': 21, 'fits': False}), ({'crossing_ft': 73, 'walk_speed_tenths': 30, 'min_walk': 7, 'yellow_tenths': 40, 'red_tenths': 10, 'min_green': 8, 'ped_call': True, 'split': 33}, {'walk': 7, 'fdw': 25, 'green': 27, 'fits': True}), ({'crossing_ft': 87, 'walk_speed_tenths': 40, 'min_walk': 4, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 24}, {'walk': 9, 'fdw': 22, 'green': 26, 'fits': False}), ({'crossing_ft': 100, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 35, 'red_tenths': 15, 'min_green': 10, 'ped_call': False, 'split': 35}, {'walk': 10, 'fdw': 29, 'green': 10, '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': 36, 'walk_speed_tenths': 40, 'min_walk': 4, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 5, 'ped_call': False, 'split': 17}, {'walk': 5, 'fdw': 9, 'green': 5, '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': 100, 'walk_speed_tenths': 30, 'min_walk': 10, 'yellow_tenths': 35, 'red_tenths': 10, 'min_green': 10, 'ped_call': False, 'split': 25}, {'walk': 10, 'fdw': 34, 'green': 10, 'fits': True}), ({'crossing_ft': 55, 'walk_speed_tenths': 40, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 20, 'min_green': 8, 'ped_call': True, 'split': 25}, {'walk': 7, 'fdw': 14, 'green': 15, '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': 25, 'walk_speed_tenths': 30, 'min_walk': 7, 'yellow_tenths': 45, 'red_tenths': 10, 'min_green': 10, 'ped_call': True, 'split': 32}, {'walk': 7, 'fdw': 9, 'green': 11, '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': 69, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 15, 'ped_call': False, 'split': 31}, {'walk': 10, 'fdw': 20, 'green': 15, 'fits': True}), ({'crossing_ft': 92, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 20, 'min_green': 10, 'ped_call': True, 'split': 22}, {'walk': 6, 'fdw': 27, 'green': 27, 'fits': False})], [({'crossing_ft': 91, 'walk_speed_tenths': 35, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 8, 'ped_call': True, 'split': 44}, {'walk': 7, 'fdw': 26, 'green': 28, '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': 68, 'walk_speed_tenths': 35, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 15, 'min_green': 15, 'ped_call': False, 'split': 20}, {'walk': 10, 'fdw': 20, 'green': 15, 'fits': True}), ({'crossing_ft': 85, 'walk_speed_tenths': 40, 'min_walk': 7, 'yellow_tenths': 30, 'red_tenths': 10, 'min_green': 5, 'ped_call': False, 'split': 40}, {'walk': 9, 'fdw': 22, 'green': 5, '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': 47, 'walk_speed_tenths': 30, 'min_walk': 10, 'yellow_tenths': 30, 'red_tenths': 20, 'min_green': 15, 'ped_call': True, 'split': 18}, {'walk': 10, 'fdw': 16, 'green': 21, 'fits': False}), ({'crossing_ft': 80, 'walk_speed_tenths': 35, 'min_walk': 5, 'yellow_tenths': 45, 'red_tenths': 15, 'min_green': 10, 'ped_call': True, 'split': 43}, {'walk': 6, 'fdw': 23, 'green': 23, 'fits': True})]]
for i, (args, expected) in enumerate(fixtures[N-1]):
    check('timing oracle' + ' %d' % i, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
timing oracle 0{'fdw': 16, 'fits': True, 'green': 19, 'walk': 7}{'fdw': 16, 'fits': True, 'green': 19, 'walk': 7}Passed
timing oracle 1{'fdw': 9, 'fits': True, 'green': 8, 'walk': 7}{'fdw': 9, 'fits': True, 'green': 8, 'walk': 7}Passed
timing oracle 2{'fdw': 25, 'fits': True, 'green': 8, 'walk': 6}{'fdw': 25, 'fits': True, 'green': 8, 'walk': 6}Passed
timing oracle 3{'fdw': 26, 'fits': True, 'green': 27, 'walk': 6}{'fdw': 26, 'fits': True, 'green': 27, 'walk': 6}Passed
timing oracle 4{'fdw': 25, 'fits': True, 'green': 8, 'walk': 4}{'fdw': 25, 'fits': True, 'green': 8, 'walk': 4}Passed
timing oracle 5{'fdw': 20, 'fits': True, 'green': 21, 'walk': 7}{'fdw': 20, 'fits': True, 'green': 21, 'walk': 7}Passed
timing oracle 6{'fdw': 17, 'fits': True, 'green': 18, 'walk': 7}{'fdw': 17, 'fits': True, 'green': 18, 'walk': 7}Passed
timing oracle 7{'fdw': 14, 'fits': True, 'green': 14, 'walk': 5}{'fdw': 14, 'fits': True, 'green': 14, 'walk': 5}Passed

SHA-256 / 50fcb28e513555994b4769725fc4d276e36c8fe59e406353073beaa1e3fdcfc5

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:47:57.639429+00:00.

Case digest / 8acb9873ef81c6979fb461c20f55462be64fd60ce174d7fe11afcbc6adb6195f