FA-68986 / Tide and marine navigation tables / Open access
Bridge air draft clearance: Go decision is made on a rounded margin · case 01
A margin a few centimetres short of the allowance is approved.
ROOT CAUSE
The margin is rounded to decimetres before comparing with the allowance.
VERIFIED REPAIR
Compare the unrounded margin.
Unsuccessful approach: Truncating to decimetres rejects margins that are just sufficient.
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+(mhws-tide)
margin=avail-air
return [round(avail,2),round(margin,2),round(margin,1)>=safety]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('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 [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 [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.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, 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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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, 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.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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| bridge air draft clearance [12.5, 6.1, 3.0, 14.9, 0.7] | [15.6, 0.7, True] | [15.6, 0.7, False] | Failed |
| bridge air draft clearance [15.0, 4.0, 4.0, 14.42, 0.55] | [15.0, 0.58, True] | [15.0, 0.58, True] | 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.3, 17.0, 1.0] | [17.3, 0.3, False] | [17.3, 0.3, False] | 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 |
SHA-256 / 8b134943150e07d28bc904167e8c33cf7117be9eb7bc645671265523262dc360
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+(mhws-tide)
margin=avail-air
return [round(avail,2),round(margin,2),int(margin*10)/10>=safety]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('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 [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 [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.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, 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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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, 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.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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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 [15.0, 4.0, 4.0, 14.42, 0.55] | [15.0, 0.58, False] | [15.0, 0.58, True] | 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.3, 17.0, 1.0] | [17.3, 0.3, False] | [17.3, 0.3, False] | 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 |
SHA-256 / 217616c515fdf7b464cf5c868ab6d434b8a5c9566a53d012f4ba250d32c405a7
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 [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 [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 [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.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, 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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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, 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.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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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 [15.0, 4.0, 4.0, 14.42, 0.55] | [15.0, 0.58, True] | [15.0, 0.58, True] | 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.3, 17.0, 1.0] | [17.3, 0.3, False] | [17.3, 0.3, False] | 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 |
SHA-256 / ca3821d69895b0cb787d37901bcc8fcbcd643a76891980921a191b297429263f
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.367160+00:00.
Case digest / fdf753188a465525be6a5512a0239aad1723fdcf8974497e73765a96902c84f4