{"abstract":"Exactly 3 statute miles is reported IFR.","category":"Weather index computation","checks":8,"contract":"layers are [cover, height_ft]; the ceiling is the lowest BKN, OVC or VV layer (None if none). Ceiling class: None or >3000 VFR, 1000-3000 MVFR, 500-999 IFR, <500 LIFR. Visibility class: >5 VFR, 3-5 MVFR, 1 to <3 IFR, <1 LIFR. Report [ceiling, worse of the two classes].","evaluation_group":"w2-weather_index_computation-flight-category","failed_approach":"Rounding visibility to whole miles reports 2.75 miles as MVFR.","family":"w2-weather_index_computation-flight-category-ifr-visibility-edge","id":"FA-71276","implementations":{"attempt":{"sha256":"d558a4ac894b2254f19099503a9b68c605f17fc58f383fdfa1392981e47fc568","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(vis_sm, layers):\n    ceil = None\n    for cover, h in layers:\n        if cover in (\"BKN\", \"OVC\", \"VV\"):\n            if ceil is None or h < ceil:\n                ceil = h\n    def cls_c(c):\n        if c is None:\n            return 3\n        if c < 500:\n            return 0\n        if c < 1000:\n            return 1\n        if c <= 3000:\n            return 2\n        return 3\n    def cls_v(v):\n        if v < 1:\n            return 0\n        if round(v) < 3:\n            return 1\n        if v <= 5:\n            return 2\n        return 3\n    names = [\"LIFR\", \"IFR\", \"MVFR\", \"VFR\"]\n    return [ceil, names[min(cls_c(ceil), cls_v(vis_sm))]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[\"vis 4 layers [['BKN', 400]]\", [4, [['BKN', 400]]], [400, 'LIFR']], [\"vis 5 layers [['FEW', 2500]]\", [5, [['FEW', 2500]]], [None, 'MVFR']], ['vis 0.5 layers []', [0.5, []], [None, 'LIFR']], [\"vis 6 layers [['BKN', 3000]]\", [6, [['BKN', 3000]]], [3000, 'MVFR']], [\"vis 0.5 layers [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]\", [0.5, [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]], [1500, 'LIFR']], [\"vis 2 layers [['OVC', 400], ['SCT', 5000], ['SCT', 200]]\", [2, [['OVC', 400], ['SCT', 5000], ['SCT', 200]]], [400, 'LIFR']], [\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], ['2.6 sm mist', [2.6, []], [None, 'IFR']]], [[\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], [\"vis 3 layers [['SCT', 5000], ['FEW', 200]]\", [3, [['SCT', 5000], ['FEW', 200]]], [None, 'MVFR']], [\"vis 2 layers [['SCT', 5000]]\", [2, [['SCT', 5000]]], [None, 'IFR']], ['vis 0.25 layers []', [0.25, []], [None, 'LIFR']], [\"vis 6 layers [['BKN', 500], ['BKN', 5000]]\", [6, [['BKN', 500], ['BKN', 5000]]], [500, 'IFR']], [\"vis 5 layers [['BKN', 3100]]\", [5, [['BKN', 3100]]], [3100, 'MVFR']], [\"vis 3 layers [['BKN', 5000]]\", [3, [['BKN', 5000]]], [5000, 'MVFR']], ['2.75 sm haze', [2.75, [['FEW', 5000]]], [None, 'IFR']]], [[\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], [\"vis 4 layers [['VV', 2500]]\", [4, [['VV', 2500]]], [2500, 'MVFR']], [\"vis 0.25 layers [['FEW', 5000]]\", [0.25, [['FEW', 5000]]], [None, 'LIFR']], [\"vis 1 layers [['OVC', 500]]\", [1, [['OVC', 500]]], [500, 'IFR']], ['vis 0.5 layers []', [0.5, []], [None, 'LIFR']], [\"vis 10 layers [['FEW', 1500], ['OVC', 3000]]\", [10, [['FEW', 1500], ['OVC', 3000]]], [3000, 'MVFR']], ['vis 1 layers []', [1, []], [None, 'IFR']], ['2.6 sm mist', [2.6, []], [None, 'IFR']]], [[\"vis 0.5 layers [['FEW', 400], ['VV', 400]]\", [0.5, [['FEW', 400], ['VV', 400]]], [400, 'LIFR']], [\"vis 0.25 layers [['BKN', 400], ['BKN', 200]]\", [0.25, [['BKN', 400], ['BKN', 200]]], [200, 'LIFR']], [\"vis 10 layers [['SCT', 3100]]\", [10, [['SCT', 3100]]], [None, 'VFR']], ['vis 1 layers []', [1, []], [None, 'IFR']], ['vis 10 layers []', [10, []], [None, 'VFR']], [\"vis 5 layers [['BKN', 500]]\", [5, [['BKN', 500]]], [500, 'IFR']], [\"vis 3 layers [['BKN', 5000]]\", [3, [['BKN', 5000]]], [5000, 'MVFR']], ['2.75 sm haze', [2.75, [['FEW', 5000]]], [None, 'IFR']]], [[\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], [\"vis 3 layers [['SCT', 400]]\", [3, [['SCT', 400]]], [None, 'MVFR']], [\"vis 1 layers [['VV', 2500]]\", [1, [['VV', 2500]]], [2500, 'IFR']], ['vis 6 layers []', [6, []], [None, 'VFR']], [\"vis 3 layers [['FEW', 500], ['SCT', 1000], ['OVC', 400]]\", [3, [['FEW', 500], ['SCT', 1000], ['OVC', 400]]], [400, 'LIFR']], [\"vis 3 layers [['BKN', 5000]]\", [3, [['BKN', 5000]]], [5000, 'MVFR']], [\"vis 3 layers [['FEW', 200]]\", [3, [['FEW', 200]]], [None, 'MVFR']], ['2.6 sm mist', [2.6, []], [None, 'IFR']]]]\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":"a28dd8cadd11f4d882253f5341b01f420eecce85365fd55b36fd1899d8e4da8d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(vis_sm, layers):\n    ceil = None\n    for cover, h in layers:\n        if cover in (\"BKN\", \"OVC\", \"VV\"):\n            if ceil is None or h < ceil:\n                ceil = h\n    def cls_c(c):\n        if c is None:\n            return 3\n        if c < 500:\n            return 0\n        if c < 1000:\n            return 1\n        if c <= 3000:\n            return 2\n        return 3\n    def cls_v(v):\n        if v < 1:\n            return 0\n        if v <= 3:\n            return 1\n        if v <= 5:\n            return 2\n        return 3\n    names = [\"LIFR\", \"IFR\", \"MVFR\", \"VFR\"]\n    return [ceil, names[min(cls_c(ceil), cls_v(vis_sm))]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[\"vis 4 layers [['BKN', 400]]\", [4, [['BKN', 400]]], [400, 'LIFR']], [\"vis 5 layers [['FEW', 2500]]\", [5, [['FEW', 2500]]], [None, 'MVFR']], ['vis 0.5 layers []', [0.5, []], [None, 'LIFR']], [\"vis 6 layers [['BKN', 3000]]\", [6, [['BKN', 3000]]], [3000, 'MVFR']], [\"vis 0.5 layers [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]\", [0.5, [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]], [1500, 'LIFR']], [\"vis 2 layers [['OVC', 400], ['SCT', 5000], ['SCT', 200]]\", [2, [['OVC', 400], ['SCT', 5000], ['SCT', 200]]], [400, 'LIFR']], [\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], ['2.6 sm mist', [2.6, []], [None, 'IFR']]], [[\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], [\"vis 3 layers [['SCT', 5000], ['FEW', 200]]\", [3, [['SCT', 5000], ['FEW', 200]]], [None, 'MVFR']], [\"vis 2 layers [['SCT', 5000]]\", [2, [['SCT', 5000]]], [None, 'IFR']], ['vis 0.25 layers []', [0.25, []], [None, 'LIFR']], [\"vis 6 layers [['BKN', 500], ['BKN', 5000]]\", [6, [['BKN', 500], ['BKN', 5000]]], [500, 'IFR']], [\"vis 5 layers [['BKN', 3100]]\", [5, [['BKN', 3100]]], [3100, 'MVFR']], [\"vis 3 layers [['BKN', 5000]]\", [3, [['BKN', 5000]]], [5000, 'MVFR']], ['2.75 sm haze', [2.75, [['FEW', 5000]]], [None, 'IFR']]], [[\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], [\"vis 4 layers [['VV', 2500]]\", [4, [['VV', 2500]]], [2500, 'MVFR']], [\"vis 0.25 layers [['FEW', 5000]]\", [0.25, [['FEW', 5000]]], [None, 'LIFR']], [\"vis 1 layers [['OVC', 500]]\", [1, [['OVC', 500]]], [500, 'IFR']], ['vis 0.5 layers []', [0.5, []], [None, 'LIFR']], [\"vis 10 layers [['FEW', 1500], ['OVC', 3000]]\", [10, [['FEW', 1500], ['OVC', 3000]]], [3000, 'MVFR']], ['vis 1 layers []', [1, []], [None, 'IFR']], ['2.6 sm mist', [2.6, []], [None, 'IFR']]], [[\"vis 0.5 layers [['FEW', 400], ['VV', 400]]\", [0.5, [['FEW', 400], ['VV', 400]]], [400, 'LIFR']], [\"vis 0.25 layers [['BKN', 400], ['BKN', 200]]\", [0.25, [['BKN', 400], ['BKN', 200]]], [200, 'LIFR']], [\"vis 10 layers [['SCT', 3100]]\", [10, [['SCT', 3100]]], [None, 'VFR']], ['vis 1 layers []', [1, []], [None, 'IFR']], ['vis 10 layers []', [10, []], [None, 'VFR']], [\"vis 5 layers [['BKN', 500]]\", [5, [['BKN', 500]]], [500, 'IFR']], [\"vis 3 layers [['BKN', 5000]]\", [3, [['BKN', 5000]]], [5000, 'MVFR']], ['2.75 sm haze', [2.75, [['FEW', 5000]]], [None, 'IFR']]], [[\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], [\"vis 3 layers [['SCT', 400]]\", [3, [['SCT', 400]]], [None, 'MVFR']], [\"vis 1 layers [['VV', 2500]]\", [1, [['VV', 2500]]], [2500, 'IFR']], ['vis 6 layers []', [6, []], [None, 'VFR']], [\"vis 3 layers [['FEW', 500], ['SCT', 1000], ['OVC', 400]]\", [3, [['FEW', 500], ['SCT', 1000], ['OVC', 400]]], [400, 'LIFR']], [\"vis 3 layers [['BKN', 5000]]\", [3, [['BKN', 5000]]], [5000, 'MVFR']], [\"vis 3 layers [['FEW', 200]]\", [3, [['FEW', 200]]], [None, 'MVFR']], ['2.6 sm mist', [2.6, []], [None, 'IFR']]]]\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":"9289cc6d68d2407c6a7972ad6b1e8153ca7f2e838eebf39dacdc7b77fa98d5ba","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(vis_sm, layers):\n    ceil = None\n    for cover, h in layers:\n        if cover in (\"BKN\", \"OVC\", \"VV\"):\n            if ceil is None or h < ceil:\n                ceil = h\n    def cls_c(c):\n        if c is None:\n            return 3\n        if c < 500:\n            return 0\n        if c < 1000:\n            return 1\n        if c <= 3000:\n            return 2\n        return 3\n    def cls_v(v):\n        if v < 1:\n            return 0\n        if v < 3:\n            return 1\n        if v <= 5:\n            return 2\n        return 3\n    names = [\"LIFR\", \"IFR\", \"MVFR\", \"VFR\"]\n    return [ceil, names[min(cls_c(ceil), cls_v(vis_sm))]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[\"vis 4 layers [['BKN', 400]]\", [4, [['BKN', 400]]], [400, 'LIFR']], [\"vis 5 layers [['FEW', 2500]]\", [5, [['FEW', 2500]]], [None, 'MVFR']], ['vis 0.5 layers []', [0.5, []], [None, 'LIFR']], [\"vis 6 layers [['BKN', 3000]]\", [6, [['BKN', 3000]]], [3000, 'MVFR']], [\"vis 0.5 layers [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]\", [0.5, [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]], [1500, 'LIFR']], [\"vis 2 layers [['OVC', 400], ['SCT', 5000], ['SCT', 200]]\", [2, [['OVC', 400], ['SCT', 5000], ['SCT', 200]]], [400, 'LIFR']], [\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], ['2.6 sm mist', [2.6, []], [None, 'IFR']]], [[\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], [\"vis 3 layers [['SCT', 5000], ['FEW', 200]]\", [3, [['SCT', 5000], ['FEW', 200]]], [None, 'MVFR']], [\"vis 2 layers [['SCT', 5000]]\", [2, [['SCT', 5000]]], [None, 'IFR']], ['vis 0.25 layers []', [0.25, []], [None, 'LIFR']], [\"vis 6 layers [['BKN', 500], ['BKN', 5000]]\", [6, [['BKN', 500], ['BKN', 5000]]], [500, 'IFR']], [\"vis 5 layers [['BKN', 3100]]\", [5, [['BKN', 3100]]], [3100, 'MVFR']], [\"vis 3 layers [['BKN', 5000]]\", [3, [['BKN', 5000]]], [5000, 'MVFR']], ['2.75 sm haze', [2.75, [['FEW', 5000]]], [None, 'IFR']]], [[\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], [\"vis 4 layers [['VV', 2500]]\", [4, [['VV', 2500]]], [2500, 'MVFR']], [\"vis 0.25 layers [['FEW', 5000]]\", [0.25, [['FEW', 5000]]], [None, 'LIFR']], [\"vis 1 layers [['OVC', 500]]\", [1, [['OVC', 500]]], [500, 'IFR']], ['vis 0.5 layers []', [0.5, []], [None, 'LIFR']], [\"vis 10 layers [['FEW', 1500], ['OVC', 3000]]\", [10, [['FEW', 1500], ['OVC', 3000]]], [3000, 'MVFR']], ['vis 1 layers []', [1, []], [None, 'IFR']], ['2.6 sm mist', [2.6, []], [None, 'IFR']]], [[\"vis 0.5 layers [['FEW', 400], ['VV', 400]]\", [0.5, [['FEW', 400], ['VV', 400]]], [400, 'LIFR']], [\"vis 0.25 layers [['BKN', 400], ['BKN', 200]]\", [0.25, [['BKN', 400], ['BKN', 200]]], [200, 'LIFR']], [\"vis 10 layers [['SCT', 3100]]\", [10, [['SCT', 3100]]], [None, 'VFR']], ['vis 1 layers []', [1, []], [None, 'IFR']], ['vis 10 layers []', [10, []], [None, 'VFR']], [\"vis 5 layers [['BKN', 500]]\", [5, [['BKN', 500]]], [500, 'IFR']], [\"vis 3 layers [['BKN', 5000]]\", [3, [['BKN', 5000]]], [5000, 'MVFR']], ['2.75 sm haze', [2.75, [['FEW', 5000]]], [None, 'IFR']]], [[\"vis 3 layers [['BKN', 1000]]\", [3, [['BKN', 1000]]], [1000, 'MVFR']], [\"vis 3 layers [['SCT', 400]]\", [3, [['SCT', 400]]], [None, 'MVFR']], [\"vis 1 layers [['VV', 2500]]\", [1, [['VV', 2500]]], [2500, 'IFR']], ['vis 6 layers []', [6, []], [None, 'VFR']], [\"vis 3 layers [['FEW', 500], ['SCT', 1000], ['OVC', 400]]\", [3, [['FEW', 500], ['SCT', 1000], ['OVC', 400]]], [400, 'LIFR']], [\"vis 3 layers [['BKN', 5000]]\", [3, [['BKN', 5000]]], [5000, 'MVFR']], [\"vis 3 layers [['FEW', 200]]\", [3, [['FEW', 200]]], [None, 'MVFR']], ['2.6 sm mist', [2.6, []], [None, 'IFR']]]]\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":"Stipulated deterministic teaching model of an operational weather index; coefficients and thresholds are fixed by the contract and no claim of standards conformance is made. 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-weather_index_computation-flight-category-ifr-visibility-edge","generated_at":"2026-09-29T14:48:28.185814+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Pilots and dispatch use flight categories for go/no-go and alternate planning.","repair":"IFR visibility is 1 to below 3 miles.","root_cause":"The IFR visibility band includes 3 miles.","sha256":"afb6ad1b363392130b521670803f3e479e7e9b3aa062236680cf630dbd878756","title":"Aviation flight category: IFR visibility edge · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.785,"exit_code":1,"observations":[{"actual":[400,"LIFR"],"check":"vis 4 layers [['BKN', 400]]","expected":[400,"LIFR"],"passed":true},{"actual":[null,"MVFR"],"check":"vis 5 layers [['FEW', 2500]]","expected":[null,"MVFR"],"passed":true},{"actual":[null,"LIFR"],"check":"vis 0.5 layers []","expected":[null,"LIFR"],"passed":true},{"actual":[3000,"MVFR"],"check":"vis 6 layers [['BKN', 3000]]","expected":[3000,"MVFR"],"passed":true},{"actual":[1500,"LIFR"],"check":"vis 0.5 layers [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]","expected":[1500,"LIFR"],"passed":true},{"actual":[400,"LIFR"],"check":"vis 2 layers [['OVC', 400], ['SCT', 5000], ['SCT', 200]]","expected":[400,"LIFR"],"passed":true},{"actual":[1000,"MVFR"],"check":"vis 3 layers [['BKN', 1000]]","expected":[1000,"MVFR"],"passed":true},{"actual":[null,"MVFR"],"check":"2.6 sm mist","expected":[null,"IFR"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"vis 4 layers [['BKN', 400]]\", \"actual\": [400, \"LIFR\"], \"expected\": [400, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 5 layers [['FEW', 2500]]\", \"actual\": [null, \"MVFR\"], \"expected\": [null, \"MVFR\"], \"passed\": true}, {\"check\": \"vis 0.5 layers []\", \"actual\": [null, \"LIFR\"], \"expected\": [null, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 6 layers [['BKN', 3000]]\", \"actual\": [3000, \"MVFR\"], \"expected\": [3000, \"MVFR\"], \"passed\": true}, {\"check\": \"vis 0.5 layers [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]\", \"actual\": [1500, \"LIFR\"], \"expected\": [1500, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 2 layers [['OVC', 400], ['SCT', 5000], ['SCT', 200]]\", \"actual\": [400, \"LIFR\"], \"expected\": [400, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 3 layers [['BKN', 1000]]\", \"actual\": [1000, \"MVFR\"], \"expected\": [1000, \"MVFR\"], \"passed\": true}, {\"check\": \"2.6 sm mist\", \"actual\": [null, \"MVFR\"], \"expected\": [null, \"IFR\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.894,"exit_code":1,"observations":[{"actual":[400,"LIFR"],"check":"vis 4 layers [['BKN', 400]]","expected":[400,"LIFR"],"passed":true},{"actual":[null,"MVFR"],"check":"vis 5 layers [['FEW', 2500]]","expected":[null,"MVFR"],"passed":true},{"actual":[null,"LIFR"],"check":"vis 0.5 layers []","expected":[null,"LIFR"],"passed":true},{"actual":[3000,"MVFR"],"check":"vis 6 layers [['BKN', 3000]]","expected":[3000,"MVFR"],"passed":true},{"actual":[1500,"LIFR"],"check":"vis 0.5 layers [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]","expected":[1500,"LIFR"],"passed":true},{"actual":[400,"LIFR"],"check":"vis 2 layers [['OVC', 400], ['SCT', 5000], ['SCT', 200]]","expected":[400,"LIFR"],"passed":true},{"actual":[1000,"IFR"],"check":"vis 3 layers [['BKN', 1000]]","expected":[1000,"MVFR"],"passed":false},{"actual":[null,"IFR"],"check":"2.6 sm mist","expected":[null,"IFR"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"vis 4 layers [['BKN', 400]]\", \"actual\": [400, \"LIFR\"], \"expected\": [400, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 5 layers [['FEW', 2500]]\", \"actual\": [null, \"MVFR\"], \"expected\": [null, \"MVFR\"], \"passed\": true}, {\"check\": \"vis 0.5 layers []\", \"actual\": [null, \"LIFR\"], \"expected\": [null, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 6 layers [['BKN', 3000]]\", \"actual\": [3000, \"MVFR\"], \"expected\": [3000, \"MVFR\"], \"passed\": true}, {\"check\": \"vis 0.5 layers [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]\", \"actual\": [1500, \"LIFR\"], \"expected\": [1500, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 2 layers [['OVC', 400], ['SCT', 5000], ['SCT', 200]]\", \"actual\": [400, \"LIFR\"], \"expected\": [400, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 3 layers [['BKN', 1000]]\", \"actual\": [1000, \"IFR\"], \"expected\": [1000, \"MVFR\"], \"passed\": false}, {\"check\": \"2.6 sm mist\", \"actual\": [null, \"IFR\"], \"expected\": [null, \"IFR\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.482,"exit_code":0,"observations":[{"actual":[400,"LIFR"],"check":"vis 4 layers [['BKN', 400]]","expected":[400,"LIFR"],"passed":true},{"actual":[null,"MVFR"],"check":"vis 5 layers [['FEW', 2500]]","expected":[null,"MVFR"],"passed":true},{"actual":[null,"LIFR"],"check":"vis 0.5 layers []","expected":[null,"LIFR"],"passed":true},{"actual":[3000,"MVFR"],"check":"vis 6 layers [['BKN', 3000]]","expected":[3000,"MVFR"],"passed":true},{"actual":[1500,"LIFR"],"check":"vis 0.5 layers [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]","expected":[1500,"LIFR"],"passed":true},{"actual":[400,"LIFR"],"check":"vis 2 layers [['OVC', 400], ['SCT', 5000], ['SCT', 200]]","expected":[400,"LIFR"],"passed":true},{"actual":[1000,"MVFR"],"check":"vis 3 layers [['BKN', 1000]]","expected":[1000,"MVFR"],"passed":true},{"actual":[null,"IFR"],"check":"2.6 sm mist","expected":[null,"IFR"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"vis 4 layers [['BKN', 400]]\", \"actual\": [400, \"LIFR\"], \"expected\": [400, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 5 layers [['FEW', 2500]]\", \"actual\": [null, \"MVFR\"], \"expected\": [null, \"MVFR\"], \"passed\": true}, {\"check\": \"vis 0.5 layers []\", \"actual\": [null, \"LIFR\"], \"expected\": [null, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 6 layers [['BKN', 3000]]\", \"actual\": [3000, \"MVFR\"], \"expected\": [3000, \"MVFR\"], \"passed\": true}, {\"check\": \"vis 0.5 layers [['SCT', 800], ['BKN', 1500], ['BKN', 2500]]\", \"actual\": [1500, \"LIFR\"], \"expected\": [1500, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 2 layers [['OVC', 400], ['SCT', 5000], ['SCT', 200]]\", \"actual\": [400, \"LIFR\"], \"expected\": [400, \"LIFR\"], \"passed\": true}, {\"check\": \"vis 3 layers [['BKN', 1000]]\", \"actual\": [1000, \"MVFR\"], \"expected\": [1000, \"MVFR\"], \"passed\": true}, {\"check\": \"2.6 sm mist\", \"actual\": [null, \"IFR\"], \"expected\": [null, \"IFR\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}