FAILURE MAP
← Case archive

FA-68976 / Tide and marine navigation tables / Open access

Bridge air draft clearance: Tides above MHWS are clipped to zero reduction · case 01

During a surge the bridge is reported with its full charted clearance.

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

ROOT CAUSE

The height correction is clamped with max(0, mhws-tide), discarding the loss above MHWS.

VERIFIED REPAIR

Allow the correction to become negative when the tide exceeds MHWS.

Unsuccessful approach: Only counting surge beyond a half-metre tolerance still overstates clearance.

Case contract

Input [c, mhws, tide, air, safety]: charted vertical clearance c is measured above MHWS; mhws and tide are heights above chart datum; air is the vessel air draft. Available clearance = c+(mhws-tide) (it shrinks when the tide exceeds MHWS). Return [round(avail,2), round(avail-air,2), avail-air>=safety].

Why this case matters

Tide tables and passage plans turn published predictions into go/no-go decisions about depth, clearance and timing.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    c,mhws,tide,air,safety=x
    avail=c+max(0.0,mhws-tide)
    margin=avail-air
    return [round(avail,2),round(margin,2),margin>=safety]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('bridge air draft clearance [18.0, 4.6, 5.3, 17.0, 1.0]', [18.0, 4.6, 5.3, 17.0, 1.0], [17.3, 0.3, False]), ('bridge air draft clearance [18.0, 4.6, 1.2, 20.5, 1.0]', [18.0, 4.6, 1.2, 20.5, 1.0], [21.4, 0.9, False]), ('bridge air draft clearance [18.0, 4.6, 4.6, 17.0, 1.0]', [18.0, 4.6, 4.6, 17.0, 1.0], [18.0, 1.0, True]), ('bridge air draft clearance [18.0, 4.6, 5.1, 16.9, 0.5]', [18.0, 4.6, 5.1, 16.9, 0.5], [17.5, 0.6, True]), ('bridge air draft clearance [12.5, 6.1, 0.4, 17.0, 0.5]', [12.5, 6.1, 0.4, 17.0, 0.5], [18.2, 1.2, True]), ('bridge air draft clearance [12.5, 6.1, 3.0, 14.9, 0.7]', [12.5, 6.1, 3.0, 14.9, 0.7], [15.6, 0.7, False]), ('bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2]', [30.0, 2.2, 2.9, 29.0, 0.2], [29.3, 0.3, True])], [('bridge air draft clearance [18.0, 4.6, 5.1, 16.9, 0.5]', [18.0, 4.6, 5.1, 16.9, 0.5], [17.5, 0.6, True]), ('bridge air draft clearance [12.5, 6.1, 0.4, 17.0, 0.5]', [12.5, 6.1, 0.4, 17.0, 0.5], [18.2, 1.2, True]), ('bridge air draft clearance [12.5, 6.1, 3.0, 14.9, 0.7]', [12.5, 6.1, 3.0, 14.9, 0.7], [15.6, 0.7, False]), ('bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2]', [30.0, 2.2, 2.9, 29.0, 0.2], [29.3, 0.3, True]), ('bridge air draft clearance [9.0, 5.0, 5.0, 8.5, 0.5]', [9.0, 5.0, 5.0, 8.5, 0.5], [9.0, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 2.5, 11.0, 0.5]', [9.0, 5.0, 2.5, 11.0, 0.5], [11.5, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 6.0, 7.5, 0.4]', [9.0, 5.0, 6.0, 7.5, 0.4], [8.0, 0.5, True])], [('bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2]', [30.0, 2.2, 2.9, 29.0, 0.2], [29.3, 0.3, True]), ('bridge air draft clearance [9.0, 5.0, 5.0, 8.5, 0.5]', [9.0, 5.0, 5.0, 8.5, 0.5], [9.0, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 2.5, 11.0, 0.5]', [9.0, 5.0, 2.5, 11.0, 0.5], [11.5, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 6.0, 7.5, 0.4]', [9.0, 5.0, 6.0, 7.5, 0.4], [8.0, 0.5, True]), ('bridge air draft clearance [22.0, 3.5, 0.0, 25.0, 0.5]', [22.0, 3.5, 0.0, 25.0, 0.5], [25.5, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 4.4, 14.1, 0.5]', [15.0, 4.0, 4.4, 14.1, 0.5], [14.6, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 2.0, 16.46, 0.5]', [15.0, 4.0, 2.0, 16.46, 0.5], [17.0, 0.54, True])], [('bridge air draft clearance [9.0, 5.0, 6.0, 7.5, 0.4]', [9.0, 5.0, 6.0, 7.5, 0.4], [8.0, 0.5, True]), ('bridge air draft clearance [22.0, 3.5, 0.0, 25.0, 0.5]', [22.0, 3.5, 0.0, 25.0, 0.5], [25.5, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 4.4, 14.1, 0.5]', [15.0, 4.0, 4.4, 14.1, 0.5], [14.6, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 2.0, 16.46, 0.5]', [15.0, 4.0, 2.0, 16.46, 0.5], [17.0, 0.54, True]), ('bridge air draft clearance [15.0, 4.0, 4.8, 13.5, 0.2]', [15.0, 4.0, 4.8, 13.5, 0.2], [14.2, 0.7, True]), ('bridge air draft clearance [15.0, 4.0, 4.0, 14.42, 0.55]', [15.0, 4.0, 4.0, 14.42, 0.55], [15.0, 0.58, True]), ('bridge air draft clearance [15.0, 4.0, 4.1, 14.35, 0.5]', [15.0, 4.0, 4.1, 14.35, 0.5], [14.9, 0.55, True])], [('bridge air draft clearance [15.0, 4.0, 4.4, 14.1, 0.5]', [15.0, 4.0, 4.4, 14.1, 0.5], [14.6, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 2.0, 16.46, 0.5]', [15.0, 4.0, 2.0, 16.46, 0.5], [17.0, 0.54, True]), ('bridge air draft clearance [15.0, 4.0, 4.8, 13.5, 0.2]', [15.0, 4.0, 4.8, 13.5, 0.2], [14.2, 0.7, True]), ('bridge air draft clearance [15.0, 4.0, 4.0, 14.42, 0.55]', [15.0, 4.0, 4.0, 14.42, 0.55], [15.0, 0.58, True]), ('bridge air draft clearance [15.0, 4.0, 4.1, 14.35, 0.5]', [15.0, 4.0, 4.1, 14.35, 0.5], [14.9, 0.55, True]), ('bridge air draft clearance [18.0, 4.6, 1.2, 20.5, 1.0]', [18.0, 4.6, 1.2, 20.5, 1.0], [21.4, 0.9, False]), ('bridge air draft clearance [18.0, 4.6, 4.6, 17.0, 1.0]', [18.0, 4.6, 4.6, 17.0, 1.0], [18.0, 1.0, True])]]
for label, args, expected in fixtures[N-1]:
    check(label, 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
bridge air draft clearance [18.0, 4.6, 5.3, 17.0, 1.0][18.0, 1.0, True][17.3, 0.3, False]Failed
bridge air draft clearance [18.0, 4.6, 1.2, 20.5, 1.0][21.4, 0.9, False][21.4, 0.9, False]Passed
bridge air draft clearance [18.0, 4.6, 4.6, 17.0, 1.0][18.0, 1.0, True][18.0, 1.0, True]Passed
bridge air draft clearance [18.0, 4.6, 5.1, 16.9, 0.5][18.0, 1.1, True][17.5, 0.6, True]Failed
bridge air draft clearance [12.5, 6.1, 0.4, 17.0, 0.5][18.2, 1.2, True][18.2, 1.2, True]Passed
bridge air draft clearance [12.5, 6.1, 3.0, 14.9, 0.7][15.6, 0.7, False][15.6, 0.7, False]Passed
bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2][30.0, 1.0, True][29.3, 0.3, True]Failed

SHA-256 / 718c5f0af05999bbe98a6003a917e0116f5dd030d98c9b4730ee927ca9da95b6

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    c,mhws,tide,air,safety=x
    avail=c+max(0.0,mhws-tide)-max(0.0,tide-mhws-0.5)
    margin=avail-air
    return [round(avail,2),round(margin,2),margin>=safety]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('bridge air draft clearance [18.0, 4.6, 5.3, 17.0, 1.0]', [18.0, 4.6, 5.3, 17.0, 1.0], [17.3, 0.3, False]), ('bridge air draft clearance [18.0, 4.6, 1.2, 20.5, 1.0]', [18.0, 4.6, 1.2, 20.5, 1.0], [21.4, 0.9, False]), ('bridge air draft clearance [18.0, 4.6, 4.6, 17.0, 1.0]', [18.0, 4.6, 4.6, 17.0, 1.0], [18.0, 1.0, True]), ('bridge air draft clearance [18.0, 4.6, 5.1, 16.9, 0.5]', [18.0, 4.6, 5.1, 16.9, 0.5], [17.5, 0.6, True]), ('bridge air draft clearance [12.5, 6.1, 0.4, 17.0, 0.5]', [12.5, 6.1, 0.4, 17.0, 0.5], [18.2, 1.2, True]), ('bridge air draft clearance [12.5, 6.1, 3.0, 14.9, 0.7]', [12.5, 6.1, 3.0, 14.9, 0.7], [15.6, 0.7, False]), ('bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2]', [30.0, 2.2, 2.9, 29.0, 0.2], [29.3, 0.3, True])], [('bridge air draft clearance [18.0, 4.6, 5.1, 16.9, 0.5]', [18.0, 4.6, 5.1, 16.9, 0.5], [17.5, 0.6, True]), ('bridge air draft clearance [12.5, 6.1, 0.4, 17.0, 0.5]', [12.5, 6.1, 0.4, 17.0, 0.5], [18.2, 1.2, True]), ('bridge air draft clearance [12.5, 6.1, 3.0, 14.9, 0.7]', [12.5, 6.1, 3.0, 14.9, 0.7], [15.6, 0.7, False]), ('bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2]', [30.0, 2.2, 2.9, 29.0, 0.2], [29.3, 0.3, True]), ('bridge air draft clearance [9.0, 5.0, 5.0, 8.5, 0.5]', [9.0, 5.0, 5.0, 8.5, 0.5], [9.0, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 2.5, 11.0, 0.5]', [9.0, 5.0, 2.5, 11.0, 0.5], [11.5, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 6.0, 7.5, 0.4]', [9.0, 5.0, 6.0, 7.5, 0.4], [8.0, 0.5, True])], [('bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2]', [30.0, 2.2, 2.9, 29.0, 0.2], [29.3, 0.3, True]), ('bridge air draft clearance [9.0, 5.0, 5.0, 8.5, 0.5]', [9.0, 5.0, 5.0, 8.5, 0.5], [9.0, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 2.5, 11.0, 0.5]', [9.0, 5.0, 2.5, 11.0, 0.5], [11.5, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 6.0, 7.5, 0.4]', [9.0, 5.0, 6.0, 7.5, 0.4], [8.0, 0.5, True]), ('bridge air draft clearance [22.0, 3.5, 0.0, 25.0, 0.5]', [22.0, 3.5, 0.0, 25.0, 0.5], [25.5, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 4.4, 14.1, 0.5]', [15.0, 4.0, 4.4, 14.1, 0.5], [14.6, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 2.0, 16.46, 0.5]', [15.0, 4.0, 2.0, 16.46, 0.5], [17.0, 0.54, True])], [('bridge air draft clearance [9.0, 5.0, 6.0, 7.5, 0.4]', [9.0, 5.0, 6.0, 7.5, 0.4], [8.0, 0.5, True]), ('bridge air draft clearance [22.0, 3.5, 0.0, 25.0, 0.5]', [22.0, 3.5, 0.0, 25.0, 0.5], [25.5, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 4.4, 14.1, 0.5]', [15.0, 4.0, 4.4, 14.1, 0.5], [14.6, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 2.0, 16.46, 0.5]', [15.0, 4.0, 2.0, 16.46, 0.5], [17.0, 0.54, True]), ('bridge air draft clearance [15.0, 4.0, 4.8, 13.5, 0.2]', [15.0, 4.0, 4.8, 13.5, 0.2], [14.2, 0.7, True]), ('bridge air draft clearance [15.0, 4.0, 4.0, 14.42, 0.55]', [15.0, 4.0, 4.0, 14.42, 0.55], [15.0, 0.58, True]), ('bridge air draft clearance [15.0, 4.0, 4.1, 14.35, 0.5]', [15.0, 4.0, 4.1, 14.35, 0.5], [14.9, 0.55, True])], [('bridge air draft clearance [15.0, 4.0, 4.4, 14.1, 0.5]', [15.0, 4.0, 4.4, 14.1, 0.5], [14.6, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 2.0, 16.46, 0.5]', [15.0, 4.0, 2.0, 16.46, 0.5], [17.0, 0.54, True]), ('bridge air draft clearance [15.0, 4.0, 4.8, 13.5, 0.2]', [15.0, 4.0, 4.8, 13.5, 0.2], [14.2, 0.7, True]), ('bridge air draft clearance [15.0, 4.0, 4.0, 14.42, 0.55]', [15.0, 4.0, 4.0, 14.42, 0.55], [15.0, 0.58, True]), ('bridge air draft clearance [15.0, 4.0, 4.1, 14.35, 0.5]', [15.0, 4.0, 4.1, 14.35, 0.5], [14.9, 0.55, True]), ('bridge air draft clearance [18.0, 4.6, 1.2, 20.5, 1.0]', [18.0, 4.6, 1.2, 20.5, 1.0], [21.4, 0.9, False]), ('bridge air draft clearance [18.0, 4.6, 4.6, 17.0, 1.0]', [18.0, 4.6, 4.6, 17.0, 1.0], [18.0, 1.0, True])]]
for label, args, expected in fixtures[N-1]:
    check(label, 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
bridge air draft clearance [18.0, 4.6, 5.3, 17.0, 1.0][17.8, 0.8, False][17.3, 0.3, False]Failed
bridge air draft clearance [18.0, 4.6, 1.2, 20.5, 1.0][21.4, 0.9, False][21.4, 0.9, False]Passed
bridge air draft clearance [18.0, 4.6, 4.6, 17.0, 1.0][18.0, 1.0, True][18.0, 1.0, True]Passed
bridge air draft clearance [18.0, 4.6, 5.1, 16.9, 0.5][18.0, 1.1, True][17.5, 0.6, True]Failed
bridge air draft clearance [12.5, 6.1, 0.4, 17.0, 0.5][18.2, 1.2, True][18.2, 1.2, True]Passed
bridge air draft clearance [12.5, 6.1, 3.0, 14.9, 0.7][15.6, 0.7, False][15.6, 0.7, False]Passed
bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2][29.8, 0.8, True][29.3, 0.3, True]Failed

SHA-256 / 2c97fccf4f819f4a18d1ad78ebea7536f4f09fc2a62f0a2c5d462ea338c79dba

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    c,mhws,tide,air,safety=x
    avail=c+(mhws-tide)
    margin=avail-air
    return [round(avail,2),round(margin,2),margin>=safety]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('bridge air draft clearance [18.0, 4.6, 5.3, 17.0, 1.0]', [18.0, 4.6, 5.3, 17.0, 1.0], [17.3, 0.3, False]), ('bridge air draft clearance [18.0, 4.6, 1.2, 20.5, 1.0]', [18.0, 4.6, 1.2, 20.5, 1.0], [21.4, 0.9, False]), ('bridge air draft clearance [18.0, 4.6, 4.6, 17.0, 1.0]', [18.0, 4.6, 4.6, 17.0, 1.0], [18.0, 1.0, True]), ('bridge air draft clearance [18.0, 4.6, 5.1, 16.9, 0.5]', [18.0, 4.6, 5.1, 16.9, 0.5], [17.5, 0.6, True]), ('bridge air draft clearance [12.5, 6.1, 0.4, 17.0, 0.5]', [12.5, 6.1, 0.4, 17.0, 0.5], [18.2, 1.2, True]), ('bridge air draft clearance [12.5, 6.1, 3.0, 14.9, 0.7]', [12.5, 6.1, 3.0, 14.9, 0.7], [15.6, 0.7, False]), ('bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2]', [30.0, 2.2, 2.9, 29.0, 0.2], [29.3, 0.3, True])], [('bridge air draft clearance [18.0, 4.6, 5.1, 16.9, 0.5]', [18.0, 4.6, 5.1, 16.9, 0.5], [17.5, 0.6, True]), ('bridge air draft clearance [12.5, 6.1, 0.4, 17.0, 0.5]', [12.5, 6.1, 0.4, 17.0, 0.5], [18.2, 1.2, True]), ('bridge air draft clearance [12.5, 6.1, 3.0, 14.9, 0.7]', [12.5, 6.1, 3.0, 14.9, 0.7], [15.6, 0.7, False]), ('bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2]', [30.0, 2.2, 2.9, 29.0, 0.2], [29.3, 0.3, True]), ('bridge air draft clearance [9.0, 5.0, 5.0, 8.5, 0.5]', [9.0, 5.0, 5.0, 8.5, 0.5], [9.0, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 2.5, 11.0, 0.5]', [9.0, 5.0, 2.5, 11.0, 0.5], [11.5, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 6.0, 7.5, 0.4]', [9.0, 5.0, 6.0, 7.5, 0.4], [8.0, 0.5, True])], [('bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2]', [30.0, 2.2, 2.9, 29.0, 0.2], [29.3, 0.3, True]), ('bridge air draft clearance [9.0, 5.0, 5.0, 8.5, 0.5]', [9.0, 5.0, 5.0, 8.5, 0.5], [9.0, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 2.5, 11.0, 0.5]', [9.0, 5.0, 2.5, 11.0, 0.5], [11.5, 0.5, True]), ('bridge air draft clearance [9.0, 5.0, 6.0, 7.5, 0.4]', [9.0, 5.0, 6.0, 7.5, 0.4], [8.0, 0.5, True]), ('bridge air draft clearance [22.0, 3.5, 0.0, 25.0, 0.5]', [22.0, 3.5, 0.0, 25.0, 0.5], [25.5, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 4.4, 14.1, 0.5]', [15.0, 4.0, 4.4, 14.1, 0.5], [14.6, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 2.0, 16.46, 0.5]', [15.0, 4.0, 2.0, 16.46, 0.5], [17.0, 0.54, True])], [('bridge air draft clearance [9.0, 5.0, 6.0, 7.5, 0.4]', [9.0, 5.0, 6.0, 7.5, 0.4], [8.0, 0.5, True]), ('bridge air draft clearance [22.0, 3.5, 0.0, 25.0, 0.5]', [22.0, 3.5, 0.0, 25.0, 0.5], [25.5, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 4.4, 14.1, 0.5]', [15.0, 4.0, 4.4, 14.1, 0.5], [14.6, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 2.0, 16.46, 0.5]', [15.0, 4.0, 2.0, 16.46, 0.5], [17.0, 0.54, True]), ('bridge air draft clearance [15.0, 4.0, 4.8, 13.5, 0.2]', [15.0, 4.0, 4.8, 13.5, 0.2], [14.2, 0.7, True]), ('bridge air draft clearance [15.0, 4.0, 4.0, 14.42, 0.55]', [15.0, 4.0, 4.0, 14.42, 0.55], [15.0, 0.58, True]), ('bridge air draft clearance [15.0, 4.0, 4.1, 14.35, 0.5]', [15.0, 4.0, 4.1, 14.35, 0.5], [14.9, 0.55, True])], [('bridge air draft clearance [15.0, 4.0, 4.4, 14.1, 0.5]', [15.0, 4.0, 4.4, 14.1, 0.5], [14.6, 0.5, True]), ('bridge air draft clearance [15.0, 4.0, 2.0, 16.46, 0.5]', [15.0, 4.0, 2.0, 16.46, 0.5], [17.0, 0.54, True]), ('bridge air draft clearance [15.0, 4.0, 4.8, 13.5, 0.2]', [15.0, 4.0, 4.8, 13.5, 0.2], [14.2, 0.7, True]), ('bridge air draft clearance [15.0, 4.0, 4.0, 14.42, 0.55]', [15.0, 4.0, 4.0, 14.42, 0.55], [15.0, 0.58, True]), ('bridge air draft clearance [15.0, 4.0, 4.1, 14.35, 0.5]', [15.0, 4.0, 4.1, 14.35, 0.5], [14.9, 0.55, True]), ('bridge air draft clearance [18.0, 4.6, 1.2, 20.5, 1.0]', [18.0, 4.6, 1.2, 20.5, 1.0], [21.4, 0.9, False]), ('bridge air draft clearance [18.0, 4.6, 4.6, 17.0, 1.0]', [18.0, 4.6, 4.6, 17.0, 1.0], [18.0, 1.0, True])]]
for label, args, expected in fixtures[N-1]:
    check(label, 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
bridge air draft clearance [18.0, 4.6, 5.3, 17.0, 1.0][17.3, 0.3, False][17.3, 0.3, False]Passed
bridge air draft clearance [18.0, 4.6, 1.2, 20.5, 1.0][21.4, 0.9, False][21.4, 0.9, False]Passed
bridge air draft clearance [18.0, 4.6, 4.6, 17.0, 1.0][18.0, 1.0, True][18.0, 1.0, True]Passed
bridge air draft clearance [18.0, 4.6, 5.1, 16.9, 0.5][17.5, 0.6, True][17.5, 0.6, True]Passed
bridge air draft clearance [12.5, 6.1, 0.4, 17.0, 0.5][18.2, 1.2, True][18.2, 1.2, True]Passed
bridge air draft clearance [12.5, 6.1, 3.0, 14.9, 0.7][15.6, 0.7, False][15.6, 0.7, False]Passed
bridge air draft clearance [30.0, 2.2, 2.9, 29.0, 0.2][29.3, 0.3, True][29.3, 0.3, True]Passed

SHA-256 / 5db420cfed9157e28a8c259202c14c91f113410ca9499eec2ea346ee4c4609cd

Verification & scope

A deterministic toy model with stipulated rules and constants; not certified hydrographic software or a substitute for official tide tables. 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:48:07.234890+00:00.

Case digest / 2a929e12cbe9b99b237d9d1565d6fa8c51a1f1e327f690993f93f009bc59d484