{"abstract":"A correction just after midnight yields a negative time of day.","category":"Tide and marine navigation tables","checks":7,"contract":"Input dict: standard port HW time hw (minutes of day), height hh, today range rng, mean spring/neap ranges sr/nr, time differences ts/tn (spring/neap, minutes) and height differences hs/hn. Interpolation factor k=(rng-nr)/(sr-nr) clamped to [0,1]; difference = neap+(spring-neap)*k. Time is wrapped to [0,1440) and rounded to whole minutes half up; height rounded to 2 decimals. Return [minutes, height].","evaluation_group":"w2-tide_and_marine_navigation_tables-secondary_port","failed_approach":"Taking abs() before the modulo reflects the time instead of wrapping it.","family":"w2-tide_and_marine_navigation_tables-secondary_port-midnight-wrap","id":"FA-68926","implementations":{"attempt":{"sha256":"9c5cfd15f56122b67b4ff56fd9d1faced3c352f23f86e8b96d82bfd4c9d6f079","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    k=(x['rng']-x['nr'])/(x['sr']-x['nr'])\n    k=max(0.0,min(1.0,k))\n    dt=x['tn']+(x['ts']-x['tn'])*k\n    dh=x['hn']+(x['hs']-x['hn'])*k\n    t=math.floor(x['hw']+dt+0.5)\n    t=abs(t)%1440\n    return [t,round(x['hh']+dh,2)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 1.8, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 1.8, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [620, 3.9]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 2.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [611, 3.83]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.4, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 2.4, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [606, 3.8]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [593, 3.7]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.1, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.1, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [590, 3.68]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.6, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.6, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [579, 3.6])], [('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [593, 3.7]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.1, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.1, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [590, 3.68]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.6, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.6, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [579, 3.6]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 4.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 4.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [565, 3.5]), ('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 1430, \"hh\": 4.4, \"rng\": 2.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1430, 'hh': 4.4, 'rng': 2.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 4.17])], [('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 4.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 4.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [565, 3.5]), ('secondary port differences {\"hw\": 1430, \"hh\": 4.4, \"rng\": 2.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1430, 'hh': 4.4, 'rng': 2.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 4.17]), ('secondary port differences {\"hw\": 20, \"hh\": 3.0, \"rng\": 1.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 20, 'hh': 3.0, 'rng': 1.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [40, 2.8]), ('secondary port differences {\"hw\": 700, \"hh\": 5.0, \"rng\": 5.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 700, 'hh': 5.0, 'rng': 5.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [665, 4.4]), ('secondary port differences {\"hw\": 1425, \"hh\": 4.0, \"rng\": 1.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1425, 'hh': 4.0, 'rng': 1.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 3.8]), ('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3])], [('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3]), ('secondary port differences {\"hw\": 20, \"hh\": 3.0, \"rng\": 1.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 20, 'hh': 3.0, 'rng': 1.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [40, 2.8]), ('secondary port differences {\"hw\": 700, \"hh\": 5.0, \"rng\": 5.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 700, 'hh': 5.0, 'rng': 5.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [665, 4.4]), ('secondary port differences {\"hw\": 1425, \"hh\": 4.0, \"rng\": 1.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1425, 'hh': 4.0, 'rng': 1.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 3.8]), ('secondary port differences {\"hw\": 300, \"hh\": 2.2, \"rng\": 0.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 300, 'hh': 2.2, 'rng': 0.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [320, 2.0]), ('secondary port differences {\"hw\": 600, \"hh\": 4.0, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -35, \"tn\": 20, \"hs\": -0.5, \"hn\": -0.1}', {'hw': 600, 'hh': 4.0, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -35, 'tn': 20, 'hs': -0.5, 'hn': -0.1}, [593, 3.7]), ('secondary port differences {\"hw\": 610, \"hh\": 3.5, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -12, \"tn\": 25, \"hs\": -0.4, \"hn\": 0.1}', {'hw': 610, 'hh': 3.5, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -12, 'tn': 25, 'hs': -0.4, 'hn': 0.1}, [617, 3.35])], [('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3]), ('secondary port differences {\"hw\": 300, \"hh\": 2.2, \"rng\": 0.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 300, 'hh': 2.2, 'rng': 0.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [320, 2.0]), ('secondary port differences {\"hw\": 600, \"hh\": 4.0, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -35, \"tn\": 20, \"hs\": -0.5, \"hn\": -0.1}', {'hw': 600, 'hh': 4.0, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -35, 'tn': 20, 'hs': -0.5, 'hn': -0.1}, [593, 3.7]), ('secondary port differences {\"hw\": 610, \"hh\": 3.5, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -12, \"tn\": 25, \"hs\": -0.4, \"hn\": 0.1}', {'hw': 610, 'hh': 3.5, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -12, 'tn': 25, 'hs': -0.4, 'hn': 0.1}, [617, 3.35]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 1.8, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 1.8, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [620, 3.9]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 2.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [611, 3.83])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"ba09073cbbf149e9e3385bf5c5e2b41a1d713e86544c2408a421e66c0670e484","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    k=(x['rng']-x['nr'])/(x['sr']-x['nr'])\n    k=max(0.0,min(1.0,k))\n    dt=x['tn']+(x['ts']-x['tn'])*k\n    dh=x['hn']+(x['hs']-x['hn'])*k\n    t=math.floor(x['hw']+dt+0.5)\n    t=t-1440 if t>=1440 else t\n    return [t,round(x['hh']+dh,2)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 1.8, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 1.8, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [620, 3.9]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 2.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [611, 3.83]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.4, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 2.4, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [606, 3.8]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [593, 3.7]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.1, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.1, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [590, 3.68]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.6, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.6, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [579, 3.6])], [('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [593, 3.7]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.1, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.1, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [590, 3.68]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.6, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.6, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [579, 3.6]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 4.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 4.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [565, 3.5]), ('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 1430, \"hh\": 4.4, \"rng\": 2.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1430, 'hh': 4.4, 'rng': 2.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 4.17])], [('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 4.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 4.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [565, 3.5]), ('secondary port differences {\"hw\": 1430, \"hh\": 4.4, \"rng\": 2.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1430, 'hh': 4.4, 'rng': 2.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 4.17]), ('secondary port differences {\"hw\": 20, \"hh\": 3.0, \"rng\": 1.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 20, 'hh': 3.0, 'rng': 1.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [40, 2.8]), ('secondary port differences {\"hw\": 700, \"hh\": 5.0, \"rng\": 5.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 700, 'hh': 5.0, 'rng': 5.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [665, 4.4]), ('secondary port differences {\"hw\": 1425, \"hh\": 4.0, \"rng\": 1.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1425, 'hh': 4.0, 'rng': 1.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 3.8]), ('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3])], [('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3]), ('secondary port differences {\"hw\": 20, \"hh\": 3.0, \"rng\": 1.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 20, 'hh': 3.0, 'rng': 1.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [40, 2.8]), ('secondary port differences {\"hw\": 700, \"hh\": 5.0, \"rng\": 5.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 700, 'hh': 5.0, 'rng': 5.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [665, 4.4]), ('secondary port differences {\"hw\": 1425, \"hh\": 4.0, \"rng\": 1.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1425, 'hh': 4.0, 'rng': 1.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 3.8]), ('secondary port differences {\"hw\": 300, \"hh\": 2.2, \"rng\": 0.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 300, 'hh': 2.2, 'rng': 0.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [320, 2.0]), ('secondary port differences {\"hw\": 600, \"hh\": 4.0, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -35, \"tn\": 20, \"hs\": -0.5, \"hn\": -0.1}', {'hw': 600, 'hh': 4.0, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -35, 'tn': 20, 'hs': -0.5, 'hn': -0.1}, [593, 3.7]), ('secondary port differences {\"hw\": 610, \"hh\": 3.5, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -12, \"tn\": 25, \"hs\": -0.4, \"hn\": 0.1}', {'hw': 610, 'hh': 3.5, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -12, 'tn': 25, 'hs': -0.4, 'hn': 0.1}, [617, 3.35])], [('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3]), ('secondary port differences {\"hw\": 300, \"hh\": 2.2, \"rng\": 0.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 300, 'hh': 2.2, 'rng': 0.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [320, 2.0]), ('secondary port differences {\"hw\": 600, \"hh\": 4.0, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -35, \"tn\": 20, \"hs\": -0.5, \"hn\": -0.1}', {'hw': 600, 'hh': 4.0, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -35, 'tn': 20, 'hs': -0.5, 'hn': -0.1}, [593, 3.7]), ('secondary port differences {\"hw\": 610, \"hh\": 3.5, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -12, \"tn\": 25, \"hs\": -0.4, \"hn\": 0.1}', {'hw': 610, 'hh': 3.5, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -12, 'tn': 25, 'hs': -0.4, 'hn': 0.1}, [617, 3.35]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 1.8, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 1.8, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [620, 3.9]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 2.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [611, 3.83])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"a047d212e333af9ffae8e84154e72e71fa1e4e81ccb170dfd97becb1b0f6ee48","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    k=(x['rng']-x['nr'])/(x['sr']-x['nr'])\n    k=max(0.0,min(1.0,k))\n    dt=x['tn']+(x['ts']-x['tn'])*k\n    dh=x['hn']+(x['hs']-x['hn'])*k\n    t=math.floor(x['hw']+dt+0.5)\n    t=t%1440\n    return [t,round(x['hh']+dh,2)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 1.8, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 1.8, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [620, 3.9]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 2.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [611, 3.83]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.4, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 2.4, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [606, 3.8]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [593, 3.7]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.1, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.1, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [590, 3.68]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.6, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.6, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [579, 3.6])], [('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [593, 3.7]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.1, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.1, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [590, 3.68]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.6, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 3.6, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [579, 3.6]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 4.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 4.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [565, 3.5]), ('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 1430, \"hh\": 4.4, \"rng\": 2.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1430, 'hh': 4.4, 'rng': 2.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 4.17])], [('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 4.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 4.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [565, 3.5]), ('secondary port differences {\"hw\": 1430, \"hh\": 4.4, \"rng\": 2.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1430, 'hh': 4.4, 'rng': 2.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 4.17]), ('secondary port differences {\"hw\": 20, \"hh\": 3.0, \"rng\": 1.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 20, 'hh': 3.0, 'rng': 1.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [40, 2.8]), ('secondary port differences {\"hw\": 700, \"hh\": 5.0, \"rng\": 5.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 700, 'hh': 5.0, 'rng': 5.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [665, 4.4]), ('secondary port differences {\"hw\": 1425, \"hh\": 4.0, \"rng\": 1.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1425, 'hh': 4.0, 'rng': 1.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 3.8]), ('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3])], [('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3]), ('secondary port differences {\"hw\": 20, \"hh\": 3.0, \"rng\": 1.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 20, 'hh': 3.0, 'rng': 1.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [40, 2.8]), ('secondary port differences {\"hw\": 700, \"hh\": 5.0, \"rng\": 5.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 700, 'hh': 5.0, 'rng': 5.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [665, 4.4]), ('secondary port differences {\"hw\": 1425, \"hh\": 4.0, \"rng\": 1.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 1425, 'hh': 4.0, 'rng': 1.0, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [5, 3.8]), ('secondary port differences {\"hw\": 300, \"hh\": 2.2, \"rng\": 0.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 300, 'hh': 2.2, 'rng': 0.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [320, 2.0]), ('secondary port differences {\"hw\": 600, \"hh\": 4.0, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -35, \"tn\": 20, \"hs\": -0.5, \"hn\": -0.1}', {'hw': 600, 'hh': 4.0, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -35, 'tn': 20, 'hs': -0.5, 'hn': -0.1}, [593, 3.7]), ('secondary port differences {\"hw\": 610, \"hh\": 3.5, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -12, \"tn\": 25, \"hs\": -0.4, \"hn\": 0.1}', {'hw': 610, 'hh': 3.5, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -12, 'tn': 25, 'hs': -0.4, 'hn': 0.1}, [617, 3.35])], [('secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 10, 'hh': 3.8, 'rng': 3.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1422, 3.25]), ('secondary port differences {\"hw\": 30, \"hh\": 4.9, \"rng\": 4.7, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 30, 'hh': 4.9, 'rng': 4.7, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [1435, 4.3]), ('secondary port differences {\"hw\": 300, \"hh\": 2.2, \"rng\": 0.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 300, 'hh': 2.2, 'rng': 0.9, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [320, 2.0]), ('secondary port differences {\"hw\": 600, \"hh\": 4.0, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -35, \"tn\": 20, \"hs\": -0.5, \"hn\": -0.1}', {'hw': 600, 'hh': 4.0, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -35, 'tn': 20, 'hs': -0.5, 'hn': -0.1}, [593, 3.7]), ('secondary port differences {\"hw\": 610, \"hh\": 3.5, \"rng\": 3.0, \"sr\": 4.0, \"nr\": 2.0, \"ts\": -12, \"tn\": 25, \"hs\": -0.4, \"hn\": 0.1}', {'hw': 610, 'hh': 3.5, 'rng': 3.0, 'sr': 4.0, 'nr': 2.0, 'ts': -12, 'tn': 25, 'hs': -0.4, 'hn': 0.1}, [617, 3.35]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 1.8, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 1.8, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [620, 3.9]), ('secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}', {'hw': 600, 'hh': 4.1, 'rng': 2.2, 'sr': 4.2, 'nr': 1.8, 'ts': -35, 'tn': 20, 'hs': -0.6, 'hn': -0.2}, [611, 3.83])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-tide_and_marine_navigation_tables-secondary_port-midnight-wrap","generated_at":"2026-09-29T14:48:06.769972+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Tide tables and passage plans turn published predictions into go/no-go decisions about depth, clearance and timing.","repair":"Reduce modulo 1440 in both directions.","root_cause":"Only times past 1440 are reduced; times before midnight stay negative.","sha256":"3e6ac966ee9038a7f4eabae9d296b3475483a7fd1c0d0d4f2783346057b9c1cc","title":"Secondary port differences: Negative corrected times are not wrapped into the day · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.199,"exit_code":1,"observations":[{"actual":[18,3.25],"check":"secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[1422,3.25],"passed":false},{"actual":[620,3.9],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 1.8, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[620,3.9],"passed":true},{"actual":[611,3.83],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[611,3.83],"passed":true},{"actual":[606,3.8],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.4, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[606,3.8],"passed":true},{"actual":[593,3.7],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[593,3.7],"passed":true},{"actual":[590,3.68],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.1, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[590,3.68],"passed":true},{"actual":[579,3.6],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.6, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[579,3.6],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"secondary port differences {\\\"hw\\\": 10, \\\"hh\\\": 3.8, \\\"rng\\\": 3.9, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [18, 3.25], \"expected\": [1422, 3.25], \"passed\": false}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 1.8, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [620, 3.9], \"expected\": [620, 3.9], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 2.2, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [611, 3.83], \"expected\": [611, 3.83], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 2.4, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [606, 3.8], \"expected\": [606, 3.8], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 3.0, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [593, 3.7], \"expected\": [593, 3.7], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 3.1, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [590, 3.68], \"expected\": [590, 3.68], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 3.6, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [579, 3.6], \"expected\": [579, 3.6], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.249,"exit_code":1,"observations":[{"actual":[-18,3.25],"check":"secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[1422,3.25],"passed":false},{"actual":[620,3.9],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 1.8, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[620,3.9],"passed":true},{"actual":[611,3.83],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[611,3.83],"passed":true},{"actual":[606,3.8],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.4, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[606,3.8],"passed":true},{"actual":[593,3.7],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[593,3.7],"passed":true},{"actual":[590,3.68],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.1, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[590,3.68],"passed":true},{"actual":[579,3.6],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.6, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[579,3.6],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"secondary port differences {\\\"hw\\\": 10, \\\"hh\\\": 3.8, \\\"rng\\\": 3.9, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [-18, 3.25], \"expected\": [1422, 3.25], \"passed\": false}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 1.8, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [620, 3.9], \"expected\": [620, 3.9], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 2.2, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [611, 3.83], \"expected\": [611, 3.83], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 2.4, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [606, 3.8], \"expected\": [606, 3.8], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 3.0, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [593, 3.7], \"expected\": [593, 3.7], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 3.1, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [590, 3.68], \"expected\": [590, 3.68], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 3.6, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [579, 3.6], \"expected\": [579, 3.6], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.797,"exit_code":0,"observations":[{"actual":[1422,3.25],"check":"secondary port differences {\"hw\": 10, \"hh\": 3.8, \"rng\": 3.9, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[1422,3.25],"passed":true},{"actual":[620,3.9],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 1.8, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[620,3.9],"passed":true},{"actual":[611,3.83],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.2, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[611,3.83],"passed":true},{"actual":[606,3.8],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 2.4, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[606,3.8],"passed":true},{"actual":[593,3.7],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.0, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[593,3.7],"passed":true},{"actual":[590,3.68],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.1, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[590,3.68],"passed":true},{"actual":[579,3.6],"check":"secondary port differences {\"hw\": 600, \"hh\": 4.1, \"rng\": 3.6, \"sr\": 4.2, \"nr\": 1.8, \"ts\": -35, \"tn\": 20, \"hs\": -0.6, \"hn\": -0.2}","expected":[579,3.6],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"secondary port differences {\\\"hw\\\": 10, \\\"hh\\\": 3.8, \\\"rng\\\": 3.9, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [1422, 3.25], \"expected\": [1422, 3.25], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 1.8, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [620, 3.9], \"expected\": [620, 3.9], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 2.2, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [611, 3.83], \"expected\": [611, 3.83], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 2.4, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [606, 3.8], \"expected\": [606, 3.8], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 3.0, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [593, 3.7], \"expected\": [593, 3.7], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 3.1, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [590, 3.68], \"expected\": [590, 3.68], \"passed\": true}, {\"check\": \"secondary port differences {\\\"hw\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 3.6, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [579, 3.6], \"expected\": [579, 3.6], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}