FA-69191 / Tide and marine navigation tables / Open access
Standard port tidal curve: Spring-neap blend is driven by the high water height · case 01
Ports with a high chart datum always use the spring curve.
ROOT CAUSE
The curve blend fraction uses the high water height instead of the day range hw-lw.
VERIFIED REPAIR
Blend with k from the range hw-lw.
Unsuccessful approach: Dividing the range by the spring range ignores the neap anchor of the blend.
Case contract
Input [hrel, hw, lw, sr, nr, hours, fs, fn]: hours ascending, fs/fn spring and neap curve factors. Outside [hours[0],hours[-1]] return None. Factors are linearly interpolated in time on each curve, then blended with k=clamp((hw-lw-nr)/(sr-nr),0,1) as fn+(fs-fn)*k. Height = lw + f*(hw-lw), rounded to 3 decimals.
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):
hrel,hw,lw,sr,nr,hs,fs,fn=x
if hrel<hs[0] or hrel>hs[-1]: return None
j=1
while j<len(hs)-1 and hs[j]<hrel: j+=1
w=(hrel-hs[j-1])/(hs[j]-hs[j-1])
a=fs[j-1]+(fs[j]-fs[j-1])*w
b=fn[j-1]+(fn[j]-fn[j-1])*w
k=min(1.0,max(0.0,(hw-nr)/(sr-nr)))
f=b+(a-b)*k
return round(lw+f*(hw-lw),3)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.194), ('standard port tidal curve [-6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.8), ('standard port tidal curve [-5.5, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.5, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.968), ('standard port tidal curve [-3.2, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-3.2, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 2.69), ('standard port tidal curve [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.882), ('standard port tidal curve [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 5.0), ('standard port tidal curve [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.454)], [('standard port tidal curve [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.398), ('standard port tidal curve [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.882), ('standard port tidal curve [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 5.0), ('standard port tidal curve [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.454), ('standard port tidal curve [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 2.194), ('standard port tidal curve [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.829), ('standard port tidal curve [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.8)], [('standard port tidal curve [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.15), ('standard port tidal curve [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 2.194), ('standard port tidal curve [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.829), ('standard port tidal curve [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.8), ('standard port tidal curve [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None), ('standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.194), ('standard port tidal curve [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.398)], [('standard port tidal curve [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.864), ('standard port tidal curve [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None), ('standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.194), ('standard port tidal curve [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.398), ('standard port tidal curve [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.0), ('standard port tidal curve [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.15), ('standard port tidal curve [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.542)], [('standard port tidal curve [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.542), ('standard port tidal curve [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.0), ('standard port tidal curve [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.15), ('standard port tidal curve [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.864), ('standard port tidal curve [6.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.03), ('standard port tidal curve [6.6, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.6, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None), ('standard port tidal curve [-5.8, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.8, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None)]]
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 |
|---|---|---|---|
| standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 3.129 | 3.194 | Failed |
| standard port tidal curve [-6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 0.8 | 0.8 | Passed |
| standard port tidal curve [-5.5, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 0.968 | 0.968 | Passed |
| standard port tidal curve [-3.2, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 2.69 | 2.69 | Passed |
| standard port tidal curve [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 4.882 | 4.882 | Passed |
| standard port tidal curve [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 5.0 | 5.0 | Passed |
| standard port tidal curve [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 4.454 | 4.454 | Passed |
SHA-256 / d04c94157fcf219d2ac9976ce3a741ca490ef3315b92a74412b033d2215adc71
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
hrel,hw,lw,sr,nr,hs,fs,fn=x
if hrel<hs[0] or hrel>hs[-1]: return None
j=1
while j<len(hs)-1 and hs[j]<hrel: j+=1
w=(hrel-hs[j-1])/(hs[j]-hs[j-1])
a=fs[j-1]+(fs[j]-fs[j-1])*w
b=fn[j-1]+(fn[j]-fn[j-1])*w
k=min(1.0,max(0.0,(hw-lw)/sr))
f=b+(a-b)*k
return round(lw+f*(hw-lw),3)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.194), ('standard port tidal curve [-6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.8), ('standard port tidal curve [-5.5, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.5, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.968), ('standard port tidal curve [-3.2, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-3.2, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 2.69), ('standard port tidal curve [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.882), ('standard port tidal curve [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 5.0), ('standard port tidal curve [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.454)], [('standard port tidal curve [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.398), ('standard port tidal curve [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.882), ('standard port tidal curve [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 5.0), ('standard port tidal curve [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.454), ('standard port tidal curve [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 2.194), ('standard port tidal curve [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.829), ('standard port tidal curve [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.8)], [('standard port tidal curve [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.15), ('standard port tidal curve [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 2.194), ('standard port tidal curve [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.829), ('standard port tidal curve [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.8), ('standard port tidal curve [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None), ('standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.194), ('standard port tidal curve [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.398)], [('standard port tidal curve [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.864), ('standard port tidal curve [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None), ('standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.194), ('standard port tidal curve [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.398), ('standard port tidal curve [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.0), ('standard port tidal curve [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.15), ('standard port tidal curve [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.542)], [('standard port tidal curve [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.542), ('standard port tidal curve [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.0), ('standard port tidal curve [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.15), ('standard port tidal curve [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.864), ('standard port tidal curve [6.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.03), ('standard port tidal curve [6.6, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.6, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None), ('standard port tidal curve [-5.8, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.8, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None)]]
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 |
|---|---|---|---|
| standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 3.165 | 3.194 | Failed |
| standard port tidal curve [-6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 0.8 | 0.8 | Passed |
| standard port tidal curve [-5.5, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 0.968 | 0.968 | Passed |
| standard port tidal curve [-3.2, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 2.69 | 2.69 | Passed |
| standard port tidal curve [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 4.882 | 4.882 | Passed |
| standard port tidal curve [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 5.0 | 5.0 | Passed |
| standard port tidal curve [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 4.454 | 4.454 | Passed |
SHA-256 / 713ff72b61457c1ec1832c26f1ed47e9024458a6b9eaf825b7edbd9447c03d79
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
hrel,hw,lw,sr,nr,hs,fs,fn=x
if hrel<hs[0] or hrel>hs[-1]: return None
j=1
while j<len(hs)-1 and hs[j]<hrel: j+=1
w=(hrel-hs[j-1])/(hs[j]-hs[j-1])
a=fs[j-1]+(fs[j]-fs[j-1])*w
b=fn[j-1]+(fn[j]-fn[j-1])*w
k=min(1.0,max(0.0,((hw-lw)-nr)/(sr-nr)))
f=b+(a-b)*k
return round(lw+f*(hw-lw),3)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.194), ('standard port tidal curve [-6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.8), ('standard port tidal curve [-5.5, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.5, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.968), ('standard port tidal curve [-3.2, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-3.2, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 2.69), ('standard port tidal curve [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.882), ('standard port tidal curve [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 5.0), ('standard port tidal curve [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.454)], [('standard port tidal curve [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.398), ('standard port tidal curve [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.882), ('standard port tidal curve [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 5.0), ('standard port tidal curve [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 4.454), ('standard port tidal curve [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 2.194), ('standard port tidal curve [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.829), ('standard port tidal curve [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.8)], [('standard port tidal curve [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.15), ('standard port tidal curve [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [3.6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 2.194), ('standard port tidal curve [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [5.9, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.829), ('standard port tidal curve [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 0.8), ('standard port tidal curve [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None), ('standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.194), ('standard port tidal curve [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.398)], [('standard port tidal curve [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.864), ('standard port tidal curve [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.3, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None), ('standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.194), ('standard port tidal curve [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.2, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.398), ('standard port tidal curve [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.0), ('standard port tidal curve [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.15), ('standard port tidal curve [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.542)], [('standard port tidal curve [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [2.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.542), ('standard port tidal curve [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.0), ('standard port tidal curve [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.0, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.15), ('standard port tidal curve [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-0.2, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 3.864), ('standard port tidal curve [6.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.5, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], 1.03), ('standard port tidal curve [6.6, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [6.6, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None), ('standard port tidal curve [-5.8, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]]', [-5.8, 4.0, 1.0, 4.2, 1.8, [-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]], None)]]
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 |
|---|---|---|---|
| standard port tidal curve [-2.5, 4.1, 1.5, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 3.194 | 3.194 | Passed |
| standard port tidal curve [-6, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 0.8 | 0.8 | Passed |
| standard port tidal curve [-5.5, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 0.968 | 0.968 | Passed |
| standard port tidal curve [-3.2, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 2.69 | 2.69 | Passed |
| standard port tidal curve [-0.4, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 4.882 | 4.882 | Passed |
| standard port tidal curve [0, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 5.0 | 5.0 | Passed |
| standard port tidal curve [1.25, 5.0, 0.8, 4.2, 1.8, [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6], [0.0, 0.08, 0.25, 0.5, 0.75, 0.93, 1.0, 0.92, 0.72, 0.47, 0.24, 0.07, 0.0], [0.0, 0.12, 0.32, 0.55, 0.78, 0.94, 1.0, 0.95, 0.8, 0.6, 0.38, 0.15, 0.02]] | 4.454 | 4.454 | Passed |
SHA-256 / 6cde7482b972eb26414b2f407f8b4105cf35bb2540430941d602693c69b47f99
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:09.224570+00:00.
Case digest / 7e4a88fd2030b4b046e93b9a911963a95ba59066adea58f268433dca3231f7e3