{"abstract":"Corrected times are a minute off when the interpolated difference has a half minute.","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":"Rounding the difference with Python round uses bankers rounding and still double-rounds.","family":"w2-tide_and_marine_navigation_tables-secondary_port-difference-rounding-stage","id":"FA-68931","implementations":{"attempt":{"sha256":"47a1b910caedf94d97146596c1e22396aec438820372f973358f539666b29572","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']+round(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\": 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.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\": 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.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\": 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\": 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\": 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.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\": 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.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\": 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\": 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\": 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\": 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.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.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\": 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\": 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":"07ebd713160fff533d0e7fef213ee18bb5592571f6569093ff780ff300d4577d","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']+int(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\": 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.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\": 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.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\": 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\": 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\": 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.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\": 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.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\": 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\": 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\": 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\": 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.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.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\": 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\": 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":"e0c85d41ca141b723883eb8b3922a0aedc0f0ffad78c4e3c1d4c25a72cab843b","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\": 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.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\": 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.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\": 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\": 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\": 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.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\": 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.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\": 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\": 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\": 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\": 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.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.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\": 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\": 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-difference-rounding-stage","generated_at":"2026-09-29T14:48:06.767044+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":"Add the unrounded difference and round the corrected time once.","root_cause":"The interpolated time difference is truncated toward zero before adding it to the standard port time.","sha256":"9fe765db0c36e1331e7d86a5776fe7380384fdc6843fe492d715c3e7e8177d29","title":"Secondary port differences: Time difference is rounded before being applied · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.307,"exit_code":1,"observations":[{"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":[592,3.7],"check":"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}","expected":[593,3.7],"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":[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\\\": 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.0, \\\"rng\\\": 3.0, \\\"sr\\\": 4.0, \\\"nr\\\": 2.0, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.5, \\\"hn\\\": -0.1}\", \"actual\": [592, 3.7], \"expected\": [593, 3.7], \"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.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":42.957,"exit_code":1,"observations":[{"actual":[610,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":false},{"actual":[593,3.7],"check":"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}","expected":[593,3.7],"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":[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":[591,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":false},{"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\\\": 600, \\\"hh\\\": 4.1, \\\"rng\\\": 2.2, \\\"sr\\\": 4.2, \\\"nr\\\": 1.8, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.6, \\\"hn\\\": -0.2}\", \"actual\": [610, 3.83], \"expected\": [611, 3.83], \"passed\": false}, {\"check\": \"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}\", \"actual\": [593, 3.7], \"expected\": [593, 3.7], \"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.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\": [591, 3.68], \"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\": [579, 3.6], \"expected\": [579, 3.6], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.567,"exit_code":0,"observations":[{"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":[593,3.7],"check":"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}","expected":[593,3.7],"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":[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\\\": 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.0, \\\"rng\\\": 3.0, \\\"sr\\\": 4.0, \\\"nr\\\": 2.0, \\\"ts\\\": -35, \\\"tn\\\": 20, \\\"hs\\\": -0.5, \\\"hn\\\": -0.1}\", \"actual\": [593, 3.7], \"expected\": [593, 3.7], \"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.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"}