{"abstract":"At low water lights are sighted later than predicted.","category":"Tide and marine navigation tables","checks":7,"contract":"Input [he, hl, nominal, mhws, tide]: observer height of eye (m), light elevation charted above MHWS (m), nominal range (nm), MHWS and current tide above datum. Effective light height = hl+(mhws-tide). Geographic range = 2.08*(sqrt(he)+sqrt(effective)). Visible range = min(geographic, nominal); the limit is \"geographic\" when geographic<nominal else \"luminous\". Return [geo rounded 1, visible rounded 1, limit].","contract_signature":"x","evaluation_group":"w2-tide_and_marine_navigation_tables-light_range","failed_approach":"Adding tide-mhws lowers the light as the tide falls.","family":"w2-tide_and_marine_navigation_tables-light_range-light-elevation-tide","id":"FA-69236","implementations":{"attempt":{"sha256":"199d634c5fb803dd2e9a18350fe4c78163fdf8126662d209b861c02c9c1de632","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    he,hl,nom,mhws,tide=x\n    hle=hl+(tide-mhws)\n    geo=2.08*(math.sqrt(he)+math.sqrt(hle))\n    vis=min(geo,nom)\n    lim='geographic' if geo<nom else 'luminous'\n    return [round(geo,1),round(vis,1),lim]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('light geographic and visible range [3, 25, 18, 4.5, 1.0]', [3, 25, 18, 4.5, 1.0], [14.7, 14.7, 'geographic']), ('light geographic and visible range [3, 25, 10, 4.5, 1.0]', [3, 25, 10, 4.5, 1.0], [14.7, 10, 'luminous']), ('light geographic and visible range [9, 64, 23, 5.0, 5.0]', [9, 64, 23, 5.0, 5.0], [22.9, 22.9, 'geographic']), ('light geographic and visible range [1.5, 12, 20, 4.0, 0.5]', [1.5, 12, 20, 4.0, 0.5], [10.7, 10.7, 'geographic']), ('light geographic and visible range [16, 36, 20.8, 3.0, 3.0]', [16, 36, 20.8, 3.0, 3.0], [20.8, 20.8, 'luminous']), ('light geographic and visible range [4, 9, 10.4, 2.0, 2.0]', [4, 9, 10.4, 2.0, 2.0], [10.4, 10.4, 'luminous']), ('light geographic and visible range [2, 40, 15, 4.0, 6.0]', [2, 40, 15, 4.0, 6.0], [15.8, 15, 'luminous'])], [('light geographic and visible range [3, 25, 10, 4.5, 1.0]', [3, 25, 10, 4.5, 1.0], [14.7, 10, 'luminous']), ('light geographic and visible range [1.5, 12, 20, 4.0, 0.5]', [1.5, 12, 20, 4.0, 0.5], [10.7, 10.7, 'geographic']), ('light geographic and visible range [16, 36, 20.8, 3.0, 3.0]', [16, 36, 20.8, 3.0, 3.0], [20.8, 20.8, 'luminous']), ('light geographic and visible range [4, 9, 10.4, 2.0, 2.0]', [4, 9, 10.4, 2.0, 2.0], [10.4, 10.4, 'luminous']), ('light geographic and visible range [2, 40, 15, 4.0, 6.0]', [2, 40, 15, 4.0, 6.0], [15.8, 15, 'luminous']), ('light geographic and visible range [12, 80, 30, 5.0, 2.0]', [12, 80, 30, 5.0, 2.0], [26.2, 26.2, 'geographic']), ('light geographic and visible range [5, 5, 6, 3.0, 1.0]', [5, 5, 6, 3.0, 1.0], [10.2, 6, 'luminous'])], [('light geographic and visible range [1.5, 12, 20, 4.0, 0.5]', [1.5, 12, 20, 4.0, 0.5], [10.7, 10.7, 'geographic']), ('light geographic and visible range [2, 40, 15, 4.0, 6.0]', [2, 40, 15, 4.0, 6.0], [15.8, 15, 'luminous']), ('light geographic and visible range [12, 80, 30, 5.0, 2.0]', [12, 80, 30, 5.0, 2.0], [26.2, 26.2, 'geographic']), ('light geographic and visible range [5, 5, 6, 3.0, 1.0]', [5, 5, 6, 3.0, 1.0], [10.2, 6, 'luminous']), ('light geographic and visible range [25, 100, 28, 4.0, 4.0]', [25, 100, 28, 4.0, 4.0], [31.2, 28, 'luminous']), ('light geographic and visible range [4, 16, 12.48, 3.0, 3.0]', [4, 16, 12.48, 3.0, 3.0], [12.5, 12.5, 'luminous']), ('light geographic and visible range [4, 9.174, 10.48, 2.0, 2.0]', [4, 9.174, 10.48, 2.0, 2.0], [10.5, 10.5, 'geographic'])], [('light geographic and visible range [2, 40, 15, 4.0, 6.0]', [2, 40, 15, 4.0, 6.0], [15.8, 15, 'luminous']), ('light geographic and visible range [25, 100, 28, 4.0, 4.0]', [25, 100, 28, 4.0, 4.0], [31.2, 28, 'luminous']), ('light geographic and visible range [4, 16, 12.48, 3.0, 3.0]', [4, 16, 12.48, 3.0, 3.0], [12.5, 12.5, 'luminous']), ('light geographic and visible range [4, 9.174, 10.48, 2.0, 2.0]', [4, 9.174, 10.48, 2.0, 2.0], [10.5, 10.5, 'geographic']), ('light geographic and visible range [3, 25, 18, 4.5, 1.0]', [3, 25, 18, 4.5, 1.0], [14.7, 14.7, 'geographic']), ('light geographic and visible range [3, 25, 10, 4.5, 1.0]', [3, 25, 10, 4.5, 1.0], [14.7, 10, 'luminous']), ('light geographic and visible range [9, 64, 23, 5.0, 5.0]', [9, 64, 23, 5.0, 5.0], [22.9, 22.9, 'geographic'])], [('light geographic and visible range [12, 80, 30, 5.0, 2.0]', [12, 80, 30, 5.0, 2.0], [26.2, 26.2, 'geographic']), ('light geographic and visible range [3, 25, 18, 4.5, 1.0]', [3, 25, 18, 4.5, 1.0], [14.7, 14.7, 'geographic']), ('light geographic and visible range [3, 25, 10, 4.5, 1.0]', [3, 25, 10, 4.5, 1.0], [14.7, 10, 'luminous']), ('light geographic and visible range [9, 64, 23, 5.0, 5.0]', [9, 64, 23, 5.0, 5.0], [22.9, 22.9, 'geographic']), ('light geographic and visible range [1.5, 12, 20, 4.0, 0.5]', [1.5, 12, 20, 4.0, 0.5], [10.7, 10.7, 'geographic']), ('light geographic and visible range [16, 36, 20.8, 3.0, 3.0]', [16, 36, 20.8, 3.0, 3.0], [20.8, 20.8, 'luminous']), ('light geographic and visible range [4, 9, 10.4, 2.0, 2.0]', [4, 9, 10.4, 2.0, 2.0], [10.4, 10.4, 'luminous'])]]\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":"3aa9ab081413e0cab3a67fff5db38a30ef8c07b30c98ec16ccc1c878a321c20d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    he,hl,nom,mhws,tide=x\n    hle=hl\n    geo=2.08*(math.sqrt(he)+math.sqrt(hle))\n    vis=min(geo,nom)\n    lim='geographic' if geo<nom else 'luminous'\n    return [round(geo,1),round(vis,1),lim]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('light geographic and visible range [3, 25, 18, 4.5, 1.0]', [3, 25, 18, 4.5, 1.0], [14.7, 14.7, 'geographic']), ('light geographic and visible range [3, 25, 10, 4.5, 1.0]', [3, 25, 10, 4.5, 1.0], [14.7, 10, 'luminous']), ('light geographic and visible range [9, 64, 23, 5.0, 5.0]', [9, 64, 23, 5.0, 5.0], [22.9, 22.9, 'geographic']), ('light geographic and visible range [1.5, 12, 20, 4.0, 0.5]', [1.5, 12, 20, 4.0, 0.5], [10.7, 10.7, 'geographic']), ('light geographic and visible range [16, 36, 20.8, 3.0, 3.0]', [16, 36, 20.8, 3.0, 3.0], [20.8, 20.8, 'luminous']), ('light geographic and visible range [4, 9, 10.4, 2.0, 2.0]', [4, 9, 10.4, 2.0, 2.0], [10.4, 10.4, 'luminous']), ('light geographic and visible range [2, 40, 15, 4.0, 6.0]', [2, 40, 15, 4.0, 6.0], [15.8, 15, 'luminous'])], [('light geographic and visible range [3, 25, 10, 4.5, 1.0]', [3, 25, 10, 4.5, 1.0], [14.7, 10, 'luminous']), ('light geographic and visible range [1.5, 12, 20, 4.0, 0.5]', [1.5, 12, 20, 4.0, 0.5], [10.7, 10.7, 'geographic']), ('light geographic and visible range [16, 36, 20.8, 3.0, 3.0]', [16, 36, 20.8, 3.0, 3.0], [20.8, 20.8, 'luminous']), ('light geographic and visible range [4, 9, 10.4, 2.0, 2.0]', [4, 9, 10.4, 2.0, 2.0], [10.4, 10.4, 'luminous']), ('light geographic and visible range [2, 40, 15, 4.0, 6.0]', [2, 40, 15, 4.0, 6.0], [15.8, 15, 'luminous']), ('light geographic and visible range [12, 80, 30, 5.0, 2.0]', [12, 80, 30, 5.0, 2.0], [26.2, 26.2, 'geographic']), ('light geographic and visible range [5, 5, 6, 3.0, 1.0]', [5, 5, 6, 3.0, 1.0], [10.2, 6, 'luminous'])], [('light geographic and visible range [1.5, 12, 20, 4.0, 0.5]', [1.5, 12, 20, 4.0, 0.5], [10.7, 10.7, 'geographic']), ('light geographic and visible range [2, 40, 15, 4.0, 6.0]', [2, 40, 15, 4.0, 6.0], [15.8, 15, 'luminous']), ('light geographic and visible range [12, 80, 30, 5.0, 2.0]', [12, 80, 30, 5.0, 2.0], [26.2, 26.2, 'geographic']), ('light geographic and visible range [5, 5, 6, 3.0, 1.0]', [5, 5, 6, 3.0, 1.0], [10.2, 6, 'luminous']), ('light geographic and visible range [25, 100, 28, 4.0, 4.0]', [25, 100, 28, 4.0, 4.0], [31.2, 28, 'luminous']), ('light geographic and visible range [4, 16, 12.48, 3.0, 3.0]', [4, 16, 12.48, 3.0, 3.0], [12.5, 12.5, 'luminous']), ('light geographic and visible range [4, 9.174, 10.48, 2.0, 2.0]', [4, 9.174, 10.48, 2.0, 2.0], [10.5, 10.5, 'geographic'])], [('light geographic and visible range [2, 40, 15, 4.0, 6.0]', [2, 40, 15, 4.0, 6.0], [15.8, 15, 'luminous']), ('light geographic and visible range [25, 100, 28, 4.0, 4.0]', [25, 100, 28, 4.0, 4.0], [31.2, 28, 'luminous']), ('light geographic and visible range [4, 16, 12.48, 3.0, 3.0]', [4, 16, 12.48, 3.0, 3.0], [12.5, 12.5, 'luminous']), ('light geographic and visible range [4, 9.174, 10.48, 2.0, 2.0]', [4, 9.174, 10.48, 2.0, 2.0], [10.5, 10.5, 'geographic']), ('light geographic and visible range [3, 25, 18, 4.5, 1.0]', [3, 25, 18, 4.5, 1.0], [14.7, 14.7, 'geographic']), ('light geographic and visible range [3, 25, 10, 4.5, 1.0]', [3, 25, 10, 4.5, 1.0], [14.7, 10, 'luminous']), ('light geographic and visible range [9, 64, 23, 5.0, 5.0]', [9, 64, 23, 5.0, 5.0], [22.9, 22.9, 'geographic'])], [('light geographic and visible range [12, 80, 30, 5.0, 2.0]', [12, 80, 30, 5.0, 2.0], [26.2, 26.2, 'geographic']), ('light geographic and visible range [3, 25, 18, 4.5, 1.0]', [3, 25, 18, 4.5, 1.0], [14.7, 14.7, 'geographic']), ('light geographic and visible range [3, 25, 10, 4.5, 1.0]', [3, 25, 10, 4.5, 1.0], [14.7, 10, 'luminous']), ('light geographic and visible range [9, 64, 23, 5.0, 5.0]', [9, 64, 23, 5.0, 5.0], [22.9, 22.9, 'geographic']), ('light geographic and visible range [1.5, 12, 20, 4.0, 0.5]', [1.5, 12, 20, 4.0, 0.5], [10.7, 10.7, 'geographic']), ('light geographic and visible range [16, 36, 20.8, 3.0, 3.0]', [16, 36, 20.8, 3.0, 3.0], [20.8, 20.8, 'luminous']), ('light geographic and visible range [4, 9, 10.4, 2.0, 2.0]', [4, 9, 10.4, 2.0, 2.0], [10.4, 10.4, 'luminous'])]]\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-light_range-light-elevation-tide","generated_at":"2026-09-29T14:48:09.554623+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":"Charted elevation above MHWS is used without adding mhws-tide.","sha256":"a2ad66d75fb2fdbbbb26fa44695788e9a40615cf6fde9135cd7914542307e5a8","title":"Light geographic and visible range: Light elevation is not corrected for the tide · 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":41.08,"exit_code":1,"observations":[{"actual":[13.2,13.2,"geographic"],"check":"light geographic and visible range [3, 25, 18, 4.5, 1.0]","expected":[14.7,14.7,"geographic"],"passed":false},{"actual":[13.2,10,"luminous"],"check":"light geographic and visible range [3, 25, 10, 4.5, 1.0]","expected":[14.7,10,"luminous"],"passed":false},{"actual":[22.9,22.9,"geographic"],"check":"light geographic and visible range [9, 64, 23, 5.0, 5.0]","expected":[22.9,22.9,"geographic"],"passed":true},{"actual":[8.6,8.6,"geographic"],"check":"light geographic and visible range [1.5, 12, 20, 4.0, 0.5]","expected":[10.7,10.7,"geographic"],"passed":false},{"actual":[20.8,20.8,"luminous"],"check":"light geographic and visible range [16, 36, 20.8, 3.0, 3.0]","expected":[20.8,20.8,"luminous"],"passed":true},{"actual":[10.4,10.4,"luminous"],"check":"light geographic and visible range [4, 9, 10.4, 2.0, 2.0]","expected":[10.4,10.4,"luminous"],"passed":true},{"actual":[16.4,15,"luminous"],"check":"light geographic and visible range [2, 40, 15, 4.0, 6.0]","expected":[15.8,15,"luminous"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"light geographic and visible range [3, 25, 18, 4.5, 1.0]\", \"actual\": [13.2, 13.2, \"geographic\"], \"expected\": [14.7, 14.7, \"geographic\"], \"passed\": false}, {\"check\": \"light geographic and visible range [3, 25, 10, 4.5, 1.0]\", \"actual\": [13.2, 10, \"luminous\"], \"expected\": [14.7, 10, \"luminous\"], \"passed\": false}, {\"check\": \"light geographic and visible range [9, 64, 23, 5.0, 5.0]\", \"actual\": [22.9, 22.9, \"geographic\"], \"expected\": [22.9, 22.9, \"geographic\"], \"passed\": true}, {\"check\": \"light geographic and visible range [1.5, 12, 20, 4.0, 0.5]\", \"actual\": [8.6, 8.6, \"geographic\"], \"expected\": [10.7, 10.7, \"geographic\"], \"passed\": false}, {\"check\": \"light geographic and visible range [16, 36, 20.8, 3.0, 3.0]\", \"actual\": [20.8, 20.8, \"luminous\"], \"expected\": [20.8, 20.8, \"luminous\"], \"passed\": true}, {\"check\": \"light geographic and visible range [4, 9, 10.4, 2.0, 2.0]\", \"actual\": [10.4, 10.4, \"luminous\"], \"expected\": [10.4, 10.4, \"luminous\"], \"passed\": true}, {\"check\": \"light geographic and visible range [2, 40, 15, 4.0, 6.0]\", \"actual\": [16.4, 15, \"luminous\"], \"expected\": [15.8, 15, \"luminous\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.904,"exit_code":1,"observations":[{"actual":[14.0,14.0,"geographic"],"check":"light geographic and visible range [3, 25, 18, 4.5, 1.0]","expected":[14.7,14.7,"geographic"],"passed":false},{"actual":[14.0,10,"luminous"],"check":"light geographic and visible range [3, 25, 10, 4.5, 1.0]","expected":[14.7,10,"luminous"],"passed":false},{"actual":[22.9,22.9,"geographic"],"check":"light geographic and visible range [9, 64, 23, 5.0, 5.0]","expected":[22.9,22.9,"geographic"],"passed":true},{"actual":[9.8,9.8,"geographic"],"check":"light geographic and visible range [1.5, 12, 20, 4.0, 0.5]","expected":[10.7,10.7,"geographic"],"passed":false},{"actual":[20.8,20.8,"luminous"],"check":"light geographic and visible range [16, 36, 20.8, 3.0, 3.0]","expected":[20.8,20.8,"luminous"],"passed":true},{"actual":[10.4,10.4,"luminous"],"check":"light geographic and visible range [4, 9, 10.4, 2.0, 2.0]","expected":[10.4,10.4,"luminous"],"passed":true},{"actual":[16.1,15,"luminous"],"check":"light geographic and visible range [2, 40, 15, 4.0, 6.0]","expected":[15.8,15,"luminous"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"light geographic and visible range [3, 25, 18, 4.5, 1.0]\", \"actual\": [14.0, 14.0, \"geographic\"], \"expected\": [14.7, 14.7, \"geographic\"], \"passed\": false}, {\"check\": \"light geographic and visible range [3, 25, 10, 4.5, 1.0]\", \"actual\": [14.0, 10, \"luminous\"], \"expected\": [14.7, 10, \"luminous\"], \"passed\": false}, {\"check\": \"light geographic and visible range [9, 64, 23, 5.0, 5.0]\", \"actual\": [22.9, 22.9, \"geographic\"], \"expected\": [22.9, 22.9, \"geographic\"], \"passed\": true}, {\"check\": \"light geographic and visible range [1.5, 12, 20, 4.0, 0.5]\", \"actual\": [9.8, 9.8, \"geographic\"], \"expected\": [10.7, 10.7, \"geographic\"], \"passed\": false}, {\"check\": \"light geographic and visible range [16, 36, 20.8, 3.0, 3.0]\", \"actual\": [20.8, 20.8, \"luminous\"], \"expected\": [20.8, 20.8, \"luminous\"], \"passed\": true}, {\"check\": \"light geographic and visible range [4, 9, 10.4, 2.0, 2.0]\", \"actual\": [10.4, 10.4, \"luminous\"], \"expected\": [10.4, 10.4, \"luminous\"], \"passed\": true}, {\"check\": \"light geographic and visible range [2, 40, 15, 4.0, 6.0]\", \"actual\": [16.1, 15, \"luminous\"], \"expected\": [15.8, 15, \"luminous\"], \"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."}}