{"abstract":"Mid-flood heights stay far too low and the tide never reaches high water.","category":"Tide and marine navigation tables","checks":7,"contract":"Input [t1,h1,t2,h2,t] in hours/metres for consecutive turning points t1<t2 (rise or fall). The interval is split into six equal tide hours with cumulative twelfths 0,1,3,6,9,11,12 and linear interpolation inside a tide hour. Return height rounded to 4 decimals, or None when t2<=t1 or t lies outside [t1,t2].","contract_signature":"x","evaluation_group":"w2-tide_and_marine_navigation_tables-twelfths","failed_approach":"Replacing it with a linear 0,2,4,...,12 table reaches high water but ignores the fast mid-tide rise.","family":"w2-tide_and_marine_navigation_tables-twelfths-cumulative-twelfths","id":"FA-68841","implementations":{"attempt":{"sha256":"e170a7e8990e3785f6d0cbd1e09d6a65a64e8162fa3ded6662a9ef9c805df707","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    t1,h1,t2,h2,t=x\n    if t2<=t1: return None\n    if t<t1 or t>t2: return None\n    u=(t-t1)*6/(t2-t1)\n    k=min(int(u),5)\n    cum=[0,2,4,6,8,10,12]\n    c=cum[k]+(cum[k+1]-cum[k])*(u-k)\n    return round(h1+(h2-h1)*c/12,4)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('rule of twelfths [0, 0.5, 6, 4.1, 1.5]', [0, 0.5, 6, 4.1, 1.5], 1.1), ('rule of twelfths [0, 0.5, 6, 4.1, 1]', [0, 0.5, 6, 4.1, 1], 0.8), ('rule of twelfths [0, 0.5, 6, 4.1, 0]', [0, 0.5, 6, 4.1, 0], 0.5), ('rule of twelfths [0, 0.5, 6, 4.1, 2]', [0, 0.5, 6, 4.1, 2], 1.4), ('rule of twelfths [0, 0.5, 6, 4.1, 3]', [0, 0.5, 6, 4.1, 3], 2.3), ('rule of twelfths [0, 0.5, 6, 4.1, 4.5]', [0, 0.5, 6, 4.1, 4.5], 3.5), ('rule of twelfths [0, 0.5, 6, 4.1, 5]', [0, 0.5, 6, 4.1, 5], 3.8)], [('rule of twelfths [0, 0.5, 6, 4.1, 2]', [0, 0.5, 6, 4.1, 2], 1.4), ('rule of twelfths [0, 0.5, 6, 4.1, 1.5]', [0, 0.5, 6, 4.1, 1.5], 1.1), ('rule of twelfths [0, 0.5, 6, 4.1, 3]', [0, 0.5, 6, 4.1, 3], 2.3), ('rule of twelfths [0, 0.5, 6, 4.1, 4.5]', [0, 0.5, 6, 4.1, 4.5], 3.5), ('rule of twelfths [0, 0.5, 6, 4.1, 5]', [0, 0.5, 6, 4.1, 5], 3.8), ('rule of twelfths [0, 0.5, 6, 4.1, 6]', [0, 0.5, 6, 4.1, 6], 4.1), ('rule of twelfths [0, 0.5, 6, 4.1, 6.5]', [0, 0.5, 6, 4.1, 6.5], None)], [('rule of twelfths [0, 0.5, 6, 4.1, 3]', [0, 0.5, 6, 4.1, 3], 2.3), ('rule of twelfths [0, 0.5, 6, 4.1, 2]', [0, 0.5, 6, 4.1, 2], 1.4), ('rule of twelfths [0, 0.5, 6, 4.1, 5]', [0, 0.5, 6, 4.1, 5], 3.8), ('rule of twelfths [0, 0.5, 6, 4.1, 6]', [0, 0.5, 6, 4.1, 6], 4.1), ('rule of twelfths [0, 0.5, 6, 4.1, 6.5]', [0, 0.5, 6, 4.1, 6.5], None), ('rule of twelfths [0, 0.5, 6, 4.1, 7.25]', [0, 0.5, 6, 4.1, 7.25], None), ('rule of twelfths [2, 5.2, 8.5, 0.8, 2]', [2, 5.2, 8.5, 0.8, 2], 5.2)], [('rule of twelfths [0, 0.5, 6, 4.1, 4.5]', [0, 0.5, 6, 4.1, 4.5], 3.5), ('rule of twelfths [0, 0.5, 6, 4.1, 7.25]', [0, 0.5, 6, 4.1, 7.25], None), ('rule of twelfths [2, 5.2, 8.5, 0.8, 2]', [2, 5.2, 8.5, 0.8, 2], 5.2), ('rule of twelfths [2, 5.2, 8.5, 0.8, 3.1]', [2, 5.2, 8.5, 0.8, 3.1], 4.8221), ('rule of twelfths [2, 5.2, 8.5, 0.8, 4]', [2, 5.2, 8.5, 0.8, 4], 4.2128), ('rule of twelfths [2, 5.2, 8.5, 0.8, 5.25]', [2, 5.2, 8.5, 0.8, 5.25], 3.0), ('rule of twelfths [2, 5.2, 8.5, 0.8, 7]', [2, 5.2, 8.5, 0.8, 7], 1.4487)], [('rule of twelfths [0, 0.5, 6, 4.1, 5]', [0, 0.5, 6, 4.1, 5], 3.8), ('rule of twelfths [2, 5.2, 8.5, 0.8, 4]', [2, 5.2, 8.5, 0.8, 4], 4.2128), ('rule of twelfths [2, 5.2, 8.5, 0.8, 5.25]', [2, 5.2, 8.5, 0.8, 5.25], 3.0), ('rule of twelfths [2, 5.2, 8.5, 0.8, 7]', [2, 5.2, 8.5, 0.8, 7], 1.4487), ('rule of twelfths [2, 5.2, 8.5, 0.8, 8.5]', [2, 5.2, 8.5, 0.8, 8.5], 0.8), ('rule of twelfths [2, 5.2, 8.5, 0.8, 9]', [2, 5.2, 8.5, 0.8, 9], None), ('rule of twelfths [1, 1.0, 7, 1.0, 3]', [1, 1.0, 7, 1.0, 3], 1.0)]]\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":"224ff9fba57c50682cdf130fdb2ac597e57b41dc9ce10daa43009d676909673a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    t1,h1,t2,h2,t=x\n    if t2<=t1: return None\n    if t<t1 or t>t2: return None\n    u=(t-t1)*6/(t2-t1)\n    k=min(int(u),5)\n    cum=[0,1,2,3,3,2,1]\n    c=cum[k]+(cum[k+1]-cum[k])*(u-k)\n    return round(h1+(h2-h1)*c/12,4)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('rule of twelfths [0, 0.5, 6, 4.1, 1.5]', [0, 0.5, 6, 4.1, 1.5], 1.1), ('rule of twelfths [0, 0.5, 6, 4.1, 1]', [0, 0.5, 6, 4.1, 1], 0.8), ('rule of twelfths [0, 0.5, 6, 4.1, 0]', [0, 0.5, 6, 4.1, 0], 0.5), ('rule of twelfths [0, 0.5, 6, 4.1, 2]', [0, 0.5, 6, 4.1, 2], 1.4), ('rule of twelfths [0, 0.5, 6, 4.1, 3]', [0, 0.5, 6, 4.1, 3], 2.3), ('rule of twelfths [0, 0.5, 6, 4.1, 4.5]', [0, 0.5, 6, 4.1, 4.5], 3.5), ('rule of twelfths [0, 0.5, 6, 4.1, 5]', [0, 0.5, 6, 4.1, 5], 3.8)], [('rule of twelfths [0, 0.5, 6, 4.1, 2]', [0, 0.5, 6, 4.1, 2], 1.4), ('rule of twelfths [0, 0.5, 6, 4.1, 1.5]', [0, 0.5, 6, 4.1, 1.5], 1.1), ('rule of twelfths [0, 0.5, 6, 4.1, 3]', [0, 0.5, 6, 4.1, 3], 2.3), ('rule of twelfths [0, 0.5, 6, 4.1, 4.5]', [0, 0.5, 6, 4.1, 4.5], 3.5), ('rule of twelfths [0, 0.5, 6, 4.1, 5]', [0, 0.5, 6, 4.1, 5], 3.8), ('rule of twelfths [0, 0.5, 6, 4.1, 6]', [0, 0.5, 6, 4.1, 6], 4.1), ('rule of twelfths [0, 0.5, 6, 4.1, 6.5]', [0, 0.5, 6, 4.1, 6.5], None)], [('rule of twelfths [0, 0.5, 6, 4.1, 3]', [0, 0.5, 6, 4.1, 3], 2.3), ('rule of twelfths [0, 0.5, 6, 4.1, 2]', [0, 0.5, 6, 4.1, 2], 1.4), ('rule of twelfths [0, 0.5, 6, 4.1, 5]', [0, 0.5, 6, 4.1, 5], 3.8), ('rule of twelfths [0, 0.5, 6, 4.1, 6]', [0, 0.5, 6, 4.1, 6], 4.1), ('rule of twelfths [0, 0.5, 6, 4.1, 6.5]', [0, 0.5, 6, 4.1, 6.5], None), ('rule of twelfths [0, 0.5, 6, 4.1, 7.25]', [0, 0.5, 6, 4.1, 7.25], None), ('rule of twelfths [2, 5.2, 8.5, 0.8, 2]', [2, 5.2, 8.5, 0.8, 2], 5.2)], [('rule of twelfths [0, 0.5, 6, 4.1, 4.5]', [0, 0.5, 6, 4.1, 4.5], 3.5), ('rule of twelfths [0, 0.5, 6, 4.1, 7.25]', [0, 0.5, 6, 4.1, 7.25], None), ('rule of twelfths [2, 5.2, 8.5, 0.8, 2]', [2, 5.2, 8.5, 0.8, 2], 5.2), ('rule of twelfths [2, 5.2, 8.5, 0.8, 3.1]', [2, 5.2, 8.5, 0.8, 3.1], 4.8221), ('rule of twelfths [2, 5.2, 8.5, 0.8, 4]', [2, 5.2, 8.5, 0.8, 4], 4.2128), ('rule of twelfths [2, 5.2, 8.5, 0.8, 5.25]', [2, 5.2, 8.5, 0.8, 5.25], 3.0), ('rule of twelfths [2, 5.2, 8.5, 0.8, 7]', [2, 5.2, 8.5, 0.8, 7], 1.4487)], [('rule of twelfths [0, 0.5, 6, 4.1, 5]', [0, 0.5, 6, 4.1, 5], 3.8), ('rule of twelfths [2, 5.2, 8.5, 0.8, 4]', [2, 5.2, 8.5, 0.8, 4], 4.2128), ('rule of twelfths [2, 5.2, 8.5, 0.8, 5.25]', [2, 5.2, 8.5, 0.8, 5.25], 3.0), ('rule of twelfths [2, 5.2, 8.5, 0.8, 7]', [2, 5.2, 8.5, 0.8, 7], 1.4487), ('rule of twelfths [2, 5.2, 8.5, 0.8, 8.5]', [2, 5.2, 8.5, 0.8, 8.5], 0.8), ('rule of twelfths [2, 5.2, 8.5, 0.8, 9]', [2, 5.2, 8.5, 0.8, 9], None), ('rule of twelfths [1, 1.0, 7, 1.0, 3]', [1, 1.0, 7, 1.0, 3], 1.0)]]\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-twelfths-cumulative-twelfths","generated_at":"2026-09-29T14:48:06.070179+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.","root_cause":"The table [1,2,3,3,2,1] of per-hour increments is indexed as though it were the cumulative curve.","sha256":"ca9e19a982c66b9020a890d0bcc25a172ae0e42ba830c23c027b2d6524dee2a3","title":"Rule of twelfths: Per-hour twelfths are used as cumulative fractions · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":39.228,"exit_code":1,"observations":[{"actual":1.4,"check":"rule of twelfths [0, 0.5, 6, 4.1, 1.5]","expected":1.1,"passed":false},{"actual":1.1,"check":"rule of twelfths [0, 0.5, 6, 4.1, 1]","expected":0.8,"passed":false},{"actual":0.5,"check":"rule of twelfths [0, 0.5, 6, 4.1, 0]","expected":0.5,"passed":true},{"actual":1.7,"check":"rule of twelfths [0, 0.5, 6, 4.1, 2]","expected":1.4,"passed":false},{"actual":2.3,"check":"rule of twelfths [0, 0.5, 6, 4.1, 3]","expected":2.3,"passed":true},{"actual":3.2,"check":"rule of twelfths [0, 0.5, 6, 4.1, 4.5]","expected":3.5,"passed":false},{"actual":3.5,"check":"rule of twelfths [0, 0.5, 6, 4.1, 5]","expected":3.8,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 1.5]\", \"actual\": 1.4, \"expected\": 1.1, \"passed\": false}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 1]\", \"actual\": 1.1, \"expected\": 0.8, \"passed\": false}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 0]\", \"actual\": 0.5, \"expected\": 0.5, \"passed\": true}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 2]\", \"actual\": 1.7, \"expected\": 1.4, \"passed\": false}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 3]\", \"actual\": 2.3, \"expected\": 2.3, \"passed\": true}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 4.5]\", \"actual\": 3.2, \"expected\": 3.5, \"passed\": false}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 5]\", \"actual\": 3.5, \"expected\": 3.8, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.817,"exit_code":1,"observations":[{"actual":0.95,"check":"rule of twelfths [0, 0.5, 6, 4.1, 1.5]","expected":1.1,"passed":false},{"actual":0.8,"check":"rule of twelfths [0, 0.5, 6, 4.1, 1]","expected":0.8,"passed":true},{"actual":0.5,"check":"rule of twelfths [0, 0.5, 6, 4.1, 0]","expected":0.5,"passed":true},{"actual":1.1,"check":"rule of twelfths [0, 0.5, 6, 4.1, 2]","expected":1.4,"passed":false},{"actual":1.4,"check":"rule of twelfths [0, 0.5, 6, 4.1, 3]","expected":2.3,"passed":false},{"actual":1.25,"check":"rule of twelfths [0, 0.5, 6, 4.1, 4.5]","expected":3.5,"passed":false},{"actual":1.1,"check":"rule of twelfths [0, 0.5, 6, 4.1, 5]","expected":3.8,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 1.5]\", \"actual\": 0.95, \"expected\": 1.1, \"passed\": false}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 1]\", \"actual\": 0.8, \"expected\": 0.8, \"passed\": true}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 0]\", \"actual\": 0.5, \"expected\": 0.5, \"passed\": true}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 2]\", \"actual\": 1.1, \"expected\": 1.4, \"passed\": false}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 3]\", \"actual\": 1.4, \"expected\": 2.3, \"passed\": false}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 4.5]\", \"actual\": 1.25, \"expected\": 3.5, \"passed\": false}, {\"check\": \"rule of twelfths [0, 0.5, 6, 4.1, 5]\", \"actual\": 1.1, \"expected\": 3.8, \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}