FAILURE MAP
← Case archive

FA-68992 / Tide and marine navigation tables / Member archive

Tidal stream diamond table: Half-hour offsets use bankers rounding · case 02

At exactly half past an hour the stream is read from alternating rows.

Member previewVariant 2 · 3 implementations · 7 checks per implementation

Case contract

Input [hrel, rng, sr, nr, rows]: hrel is hours relative to standard-port HW; rows lists 13 entries for HW-6..HW+6 as [direction, spring rate, neap rate] in tenths of a knot. The row is chosen by rounding hrel half up (floor(hrel+0.5)); hrel outside [-6.5,6.5) returns None. Rate = neap+(spring-neap)*k with k=(rng-nr)/(sr-nr) (not clamped), converted to knots, floored at zero and rounded to 2 decimals. Return [direction, knots].

Why this case matters

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

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
tidal stream diamond table [0.5, 3.0, 4.0, 2.0, [["045", 4, 2], ["050", 9, 5], ["055", 14, 7], ["060", 17, 9], ["060", 12, 6], ["070", 5, 3], ["slack", 0, 0], ["230", 6, 3], ["235", 13, 7], ["240", 18, 9], ["245", 15, 8], ["250", 9, 4], ["255", 3, 1]]]["slack", 0.0]["230", 0.45]Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗