{"abstract":"Near-neap days get spring corrections and vice versa.","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":"Dividing today range by the spring range ignores the neap offset.","family":"w2-tide_and_marine_navigation_tables-secondary_port-interpolation-factor","id":"FA-68916","implementations":{"attempt":{"sha256":"b8926d9e585dbfa9ca9a1983a1d81b0b44dabc39085d01492fbbd45151f740ee","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    k=x['rng']/x['sr']\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\": 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\": 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\": 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\": 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\": 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\": 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\": 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\": 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.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\": 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\": 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.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\": 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\": 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])]]\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":"7e9077829e36286b6ca10dbc125e9e951e62044485fe730373fa00c5e401b237","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    k=(x['sr']-x['rng'])/(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\": 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\": 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\": 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\": 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\": 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\": 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\": 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\": 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.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\": 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\": 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.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\": 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\": 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])]]\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":"f09c5df4084e7095448f97c420b9c0b2fb322bf4a50ff64bbd8f0ba8ecc86429","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\": 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\": 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\": 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\": 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\": 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\": 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\": 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\": 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.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\": 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\": 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.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\": 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\": 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])]]\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-interpolation-factor","generated_at":"2026-09-29T14:48:06.723382+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":"Use (rng-nr)/(sr-nr).","root_cause":"The factor numerator uses sr-rng, reversing which end of the scale is weighted.","sha256":"dcfcc927e66fc3bcef3ea6525e8e0475fcf13b3dc49a6a1d227d91bdb93aa8bf","title":"Secondary port differences: Spring-neap factor is measured from the spring range · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.314,"exit_code":1,"observations":[{"actual":[596,3.73],"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":false},{"actual":[591,3.69],"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":false},{"actual":[589,3.67],"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":false},{"actual":[581,3.61],"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":false},{"actual":[579,3.6],"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":false},{"actual":[573,3.56],"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":false},{"actual":[565,3.5],"check":"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}","expected":[565,3.5],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"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\": [596, 3.73], \"expected\": [620, 3.9], \"passed\": false}, {\"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\": [591, 3.69], \"expected\": [611, 3.83], \"passed\": false}, {\"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\": [589, 3.67], \"expected\": [606, 3.8], \"passed\": false}, {\"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\": [581, 3.61], \"expected\": [593, 3.7], \"passed\": false}, {\"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\": [579, 3.6], \"expected\": [590, 3.68], \"passed\": false}, {\"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\": [573, 3.56], \"expected\": [579, 3.6], \"passed\": false}, {\"check\": \"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}\", \"actual\": [565, 3.5], \"expected\": [565, 3.5], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.599,"exit_code":1,"observations":[{"actual":[565,3.5],"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":false},{"actual":[574,3.57],"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":false},{"actual":[579,3.6],"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":false},{"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":[595,3.72],"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":false},{"actual":[606,3.8],"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":false},{"actual":[620,3.9],"check":"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}","expected":[565,3.5],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"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\": [565, 3.5], \"expected\": [620, 3.9], \"passed\": false}, {\"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\": [574, 3.57], \"expected\": [611, 3.83], \"passed\": false}, {\"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\": [579, 3.6], \"expected\": [606, 3.8], \"passed\": false}, {\"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\": [595, 3.72], \"expected\": [590, 3.68], \"passed\": false}, {\"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\": [606, 3.8], \"expected\": [579, 3.6], \"passed\": false}, {\"check\": \"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}\", \"actual\": [620, 3.9], \"expected\": [565, 3.5], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.261,"exit_code":0,"observations":[{"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},{"actual":[565,3.5],"check":"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}","expected":[565,3.5],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"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}, {\"check\": \"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}\", \"actual\": [565, 3.5], \"expected\": [565, 3.5], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}