{"abstract":"Every light is sighted too early relative to a metric table.","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":"Converting metres to feet but keeping 1.17 is close yet not the stipulated constant.","family":"w2-tide_and_marine_navigation_tables-light_range-distance-constant","id":"FA-69231","implementations":{"attempt":{"sha256":"dc2c3d62e2cb981bc838390e129e0f0a5ec8c623c771dbd0ac3b9ceb15417b2c","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+(mhws-tide)\n    geo=1.17*(math.sqrt(he*3.28084)+math.sqrt(hle*3.28084))\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 [9, 64, 23, 5.0, 5.0]', [9, 64, 23, 5.0, 5.0], [22.9, 22.9, '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 [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 [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 [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 [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 [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'])]]\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":"28561e666fc00fa60ac758b265f130b50286a560f1a2457740ff4e773553514d","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+(mhws-tide)\n    geo=1.17*(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 [9, 64, 23, 5.0, 5.0]', [9, 64, 23, 5.0, 5.0], [22.9, 22.9, '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 [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 [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 [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 [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 [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'])]]\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-distance-constant","generated_at":"2026-09-29T14:48:09.512509+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 1.17 feet-based constant is applied to heights in metres.","sha256":"5e4b17fafa89679e230fe0a8edf5d04580c8356f997346f1ef94dce202081d70","title":"Light geographic and visible range: Horizon constant for feet is used with metres · 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.617,"exit_code":1,"observations":[{"actual":[15.0,15.0,"geographic"],"check":"light geographic and visible range [3, 25, 18, 4.5, 1.0]","expected":[14.7,14.7,"geographic"],"passed":false},{"actual":[15.0,10,"luminous"],"check":"light geographic and visible range [3, 25, 10, 4.5, 1.0]","expected":[14.7,10,"luminous"],"passed":false},{"actual":[23.3,23,"luminous"],"check":"light geographic and visible range [9, 64, 23, 5.0, 5.0]","expected":[22.9,22.9,"geographic"],"passed":false},{"actual":[10.9,10.9,"geographic"],"check":"light geographic and visible range [1.5, 12, 20, 4.0, 0.5]","expected":[10.7,10.7,"geographic"],"passed":false},{"actual":[21.2,20.8,"luminous"],"check":"light geographic and visible range [16, 36, 20.8, 3.0, 3.0]","expected":[20.8,20.8,"luminous"],"passed":false},{"actual":[10.6,10.4,"luminous"],"check":"light geographic and visible range [4, 9, 10.4, 2.0, 2.0]","expected":[10.4,10.4,"luminous"],"passed":false},{"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\": [15.0, 15.0, \"geographic\"], \"expected\": [14.7, 14.7, \"geographic\"], \"passed\": false}, {\"check\": \"light geographic and visible range [3, 25, 10, 4.5, 1.0]\", \"actual\": [15.0, 10, \"luminous\"], \"expected\": [14.7, 10, \"luminous\"], \"passed\": false}, {\"check\": \"light geographic and visible range [9, 64, 23, 5.0, 5.0]\", \"actual\": [23.3, 23, \"luminous\"], \"expected\": [22.9, 22.9, \"geographic\"], \"passed\": false}, {\"check\": \"light geographic and visible range [1.5, 12, 20, 4.0, 0.5]\", \"actual\": [10.9, 10.9, \"geographic\"], \"expected\": [10.7, 10.7, \"geographic\"], \"passed\": false}, {\"check\": \"light geographic and visible range [16, 36, 20.8, 3.0, 3.0]\", \"actual\": [21.2, 20.8, \"luminous\"], \"expected\": [20.8, 20.8, \"luminous\"], \"passed\": false}, {\"check\": \"light geographic and visible range [4, 9, 10.4, 2.0, 2.0]\", \"actual\": [10.6, 10.4, \"luminous\"], \"expected\": [10.4, 10.4, \"luminous\"], \"passed\": false}, {\"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"},"broken":{"elapsed_ms":41.576,"exit_code":1,"observations":[{"actual":[8.3,8.3,"geographic"],"check":"light geographic and visible range [3, 25, 18, 4.5, 1.0]","expected":[14.7,14.7,"geographic"],"passed":false},{"actual":[8.3,8.3,"geographic"],"check":"light geographic and visible range [3, 25, 10, 4.5, 1.0]","expected":[14.7,10,"luminous"],"passed":false},{"actual":[12.9,12.9,"geographic"],"check":"light geographic and visible range [9, 64, 23, 5.0, 5.0]","expected":[22.9,22.9,"geographic"],"passed":false},{"actual":[6.0,6.0,"geographic"],"check":"light geographic and visible range [1.5, 12, 20, 4.0, 0.5]","expected":[10.7,10.7,"geographic"],"passed":false},{"actual":[11.7,11.7,"geographic"],"check":"light geographic and visible range [16, 36, 20.8, 3.0, 3.0]","expected":[20.8,20.8,"luminous"],"passed":false},{"actual":[5.8,5.8,"geographic"],"check":"light geographic and visible range [4, 9, 10.4, 2.0, 2.0]","expected":[10.4,10.4,"luminous"],"passed":false},{"actual":[8.9,8.9,"geographic"],"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\": [8.3, 8.3, \"geographic\"], \"expected\": [14.7, 14.7, \"geographic\"], \"passed\": false}, {\"check\": \"light geographic and visible range [3, 25, 10, 4.5, 1.0]\", \"actual\": [8.3, 8.3, \"geographic\"], \"expected\": [14.7, 10, \"luminous\"], \"passed\": false}, {\"check\": \"light geographic and visible range [9, 64, 23, 5.0, 5.0]\", \"actual\": [12.9, 12.9, \"geographic\"], \"expected\": [22.9, 22.9, \"geographic\"], \"passed\": false}, {\"check\": \"light geographic and visible range [1.5, 12, 20, 4.0, 0.5]\", \"actual\": [6.0, 6.0, \"geographic\"], \"expected\": [10.7, 10.7, \"geographic\"], \"passed\": false}, {\"check\": \"light geographic and visible range [16, 36, 20.8, 3.0, 3.0]\", \"actual\": [11.7, 11.7, \"geographic\"], \"expected\": [20.8, 20.8, \"luminous\"], \"passed\": false}, {\"check\": \"light geographic and visible range [4, 9, 10.4, 2.0, 2.0]\", \"actual\": [5.8, 5.8, \"geographic\"], \"expected\": [10.4, 10.4, \"luminous\"], \"passed\": false}, {\"check\": \"light geographic and visible range [2, 40, 15, 4.0, 6.0]\", \"actual\": [8.9, 8.9, \"geographic\"], \"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."}}