{"abstract":"The posted WBGT and the flag colour disagree near a flag boundary (26.7 degC posted with a white flag).","category":"Weather index computation","checks":8,"contract":"Inputs natural wet bulb, globe and dry bulb in degC and whether the site is in sun. Sun: WBGT = 0.7Tw + 0.2Tg + 0.1Td; shade/indoor: 0.7Tw + 0.3Tg; round to 0.1 degC. Convert the rounded value to degF (x*9/5+32) and flag: <80 white, <85 green, <88 yellow, <90 red, else black.","evaluation_group":"w2-weather_index_computation-wbgt-flag","failed_approach":"Rounding the Fahrenheit value to a whole degree moves 84.9 degF into the yellow band.","family":"w2-weather_index_computation-wbgt-flag-flag-from-reported-value","id":"FA-70986","implementations":{"attempt":{"sha256":"08f2c929ede9b1e56335faeabd5e53c0f388574ae65dc5c8fa10ada21d65ce15","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(tw, tg, td, solar):\n    if solar:\n        w = 0.7 * tw + 0.2 * tg + 0.1 * td\n    else:\n        w = 0.7 * tw + 0.3 * tg\n    w = round(w, 1)\n    wf = round(w * 9 / 5 + 32)\n    if wf < 80:\n        flag = \"white\"\n    elif wf < 85:\n        flag = \"green\"\n    elif wf < 88:\n        flag = \"yellow\"\n    elif wf < 90:\n        flag = \"red\"\n    else:\n        flag = \"black\"\n    return [w, flag]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['Tw 20 Tg 30 Td 25 sun', [20, 30, 25, True], [22.5, 'white']], ['Tw 20 Tg 30 Td 25 indoor', [20, 30, 25, False], [23.0, 'white']], ['Tw 24 Tg 35 Td 30 sun', [24, 35, 30, True], [26.8, 'green']], ['Tw 24 Tg 35 Td 30 indoor', [24, 35, 30, False], [27.3, 'green']], ['Tw 25 Tg 40 Td 31 sun', [25, 40, 31, True], [28.6, 'green']], ['Tw 25 Tg 40 Td 31 indoor', [25, 40, 31, False], [29.5, 'yellow']], ['Tw 28 Tg 45 Td 34 sun', [28, 45, 34, True], [32.0, 'red']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']]], [['Tw 26 Tg 38 Td 30 indoor', [26, 38, 30, False], [29.6, 'yellow']], ['Tw 27 Tg 36 Td 32 sun', [27, 36, 32, True], [29.3, 'green']], ['Tw 27 Tg 36 Td 32 indoor', [27, 36, 32, False], [29.7, 'yellow']], ['Tw 28 Tg 45 Td 34 sun', [28, 45, 34, True], [32.0, 'red']], ['Tw 28 Tg 45 Td 34 indoor', [28, 45, 34, False], [33.1, 'black']], ['Tw 29 Tg 30 Td 29 sun', [29, 30, 29, True], [29.2, 'green']], ['Tw 29 Tg 30 Td 29 indoor', [29, 30, 29, False], [29.3, 'green']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']]], [['Tw 30 Tg 50 Td 35 sun', [30, 50, 35, True], [34.5, 'black']], ['Tw 30 Tg 50 Td 35 indoor', [30, 50, 35, False], [36.0, 'black']], ['Tw 31 Tg 40 Td 33 sun', [31, 40, 33, True], [33.0, 'black']], ['Tw 31 Tg 40 Td 33 indoor', [31, 40, 33, False], [33.7, 'black']], ['Tw 22 Tg 26 Td 24 sun', [22, 26, 24, True], [23.0, 'white']], ['Tw 22 Tg 26 Td 24 indoor', [22, 26, 24, False], [23.2, 'white']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']], ['field Tw 30.3 Tg 35.9 Td 35.9', [30.3, 35.9, 35.9, False], [32.0, 'red']]], [['Tw 27 Tg 29.4 Td 30 indoor', [27, 29.4, 30, False], [27.7, 'green']], ['Tw 26.4 Tg 30 Td 29 sun', [26.4, 30, 29, True], [27.4, 'green']], ['Tw 26.4 Tg 30 Td 29 indoor', [26.4, 30, 29, False], [27.5, 'green']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']], ['indoor raw 29.43', [21, 49.1, 30, False], [29.4, 'green']], ['sun raw 26.66', [20, 41.3, 30.6, True], [25.3, 'white']], ['field Tw 22.5 Tg 25.2 Td 27.7', [22.5, 25.2, 27.7, True], [23.6, 'white']], ['field Tw 25.5 Tg 32.1 Td 26.0', [25.5, 32.1, 26.0, False], [27.5, 'green']]], [['Tw 29 Tg 30 Td 29 indoor', [29, 30, 29, False], [29.3, 'green']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']], ['field Tw 25.5 Tg 32.1 Td 26.0', [25.5, 32.1, 26.0, False], [27.5, 'green']], ['field Tw 18.5 Tg 26.3 Td 19.1', [18.5, 26.3, 19.1, True], [20.1, 'white']], ['field Tw 23.9 Tg 38.8 Td 24.9', [23.9, 38.8, 24.9, True], [27.0, 'green']], ['field Tw 26.8 Tg 43.9 Td 31.4', [26.8, 43.9, 31.4, True], [30.7, 'yellow']], ['field Tw 31.7 Tg 32.5 Td 38.6', [31.7, 32.5, 38.6, True], [32.5, 'black']], ['field Tw 20.0 Tg 22.1 Td 22.5', [20.0, 22.1, 22.5, False], [20.6, 'white']]]]\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":"25fa16a9112e54a8674e7a4fa7e1819c852b5bc5288c73c3c76f5e003d3f7c32","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(tw, tg, td, solar):\n    if solar:\n        w = 0.7 * tw + 0.2 * tg + 0.1 * td\n    else:\n        w = 0.7 * tw + 0.3 * tg\n    wf = w * 9 / 5 + 32\n    w = round(w, 1)\n    if wf < 80:\n        flag = \"white\"\n    elif wf < 85:\n        flag = \"green\"\n    elif wf < 88:\n        flag = \"yellow\"\n    elif wf < 90:\n        flag = \"red\"\n    else:\n        flag = \"black\"\n    return [w, flag]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['Tw 20 Tg 30 Td 25 sun', [20, 30, 25, True], [22.5, 'white']], ['Tw 20 Tg 30 Td 25 indoor', [20, 30, 25, False], [23.0, 'white']], ['Tw 24 Tg 35 Td 30 sun', [24, 35, 30, True], [26.8, 'green']], ['Tw 24 Tg 35 Td 30 indoor', [24, 35, 30, False], [27.3, 'green']], ['Tw 25 Tg 40 Td 31 sun', [25, 40, 31, True], [28.6, 'green']], ['Tw 25 Tg 40 Td 31 indoor', [25, 40, 31, False], [29.5, 'yellow']], ['Tw 28 Tg 45 Td 34 sun', [28, 45, 34, True], [32.0, 'red']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']]], [['Tw 26 Tg 38 Td 30 indoor', [26, 38, 30, False], [29.6, 'yellow']], ['Tw 27 Tg 36 Td 32 sun', [27, 36, 32, True], [29.3, 'green']], ['Tw 27 Tg 36 Td 32 indoor', [27, 36, 32, False], [29.7, 'yellow']], ['Tw 28 Tg 45 Td 34 sun', [28, 45, 34, True], [32.0, 'red']], ['Tw 28 Tg 45 Td 34 indoor', [28, 45, 34, False], [33.1, 'black']], ['Tw 29 Tg 30 Td 29 sun', [29, 30, 29, True], [29.2, 'green']], ['Tw 29 Tg 30 Td 29 indoor', [29, 30, 29, False], [29.3, 'green']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']]], [['Tw 30 Tg 50 Td 35 sun', [30, 50, 35, True], [34.5, 'black']], ['Tw 30 Tg 50 Td 35 indoor', [30, 50, 35, False], [36.0, 'black']], ['Tw 31 Tg 40 Td 33 sun', [31, 40, 33, True], [33.0, 'black']], ['Tw 31 Tg 40 Td 33 indoor', [31, 40, 33, False], [33.7, 'black']], ['Tw 22 Tg 26 Td 24 sun', [22, 26, 24, True], [23.0, 'white']], ['Tw 22 Tg 26 Td 24 indoor', [22, 26, 24, False], [23.2, 'white']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']], ['field Tw 30.3 Tg 35.9 Td 35.9', [30.3, 35.9, 35.9, False], [32.0, 'red']]], [['Tw 27 Tg 29.4 Td 30 indoor', [27, 29.4, 30, False], [27.7, 'green']], ['Tw 26.4 Tg 30 Td 29 sun', [26.4, 30, 29, True], [27.4, 'green']], ['Tw 26.4 Tg 30 Td 29 indoor', [26.4, 30, 29, False], [27.5, 'green']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']], ['indoor raw 29.43', [21, 49.1, 30, False], [29.4, 'green']], ['sun raw 26.66', [20, 41.3, 30.6, True], [25.3, 'white']], ['field Tw 22.5 Tg 25.2 Td 27.7', [22.5, 25.2, 27.7, True], [23.6, 'white']], ['field Tw 25.5 Tg 32.1 Td 26.0', [25.5, 32.1, 26.0, False], [27.5, 'green']]], [['Tw 29 Tg 30 Td 29 indoor', [29, 30, 29, False], [29.3, 'green']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']], ['field Tw 25.5 Tg 32.1 Td 26.0', [25.5, 32.1, 26.0, False], [27.5, 'green']], ['field Tw 18.5 Tg 26.3 Td 19.1', [18.5, 26.3, 19.1, True], [20.1, 'white']], ['field Tw 23.9 Tg 38.8 Td 24.9', [23.9, 38.8, 24.9, True], [27.0, 'green']], ['field Tw 26.8 Tg 43.9 Td 31.4', [26.8, 43.9, 31.4, True], [30.7, 'yellow']], ['field Tw 31.7 Tg 32.5 Td 38.6', [31.7, 32.5, 38.6, True], [32.5, 'black']], ['field Tw 20.0 Tg 22.1 Td 22.5', [20.0, 22.1, 22.5, False], [20.6, 'white']]]]\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":"1c326735c7b7d1e0f62c047642a9cc748d3f5f4834dd8216c4f13319e90f179e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(tw, tg, td, solar):\n    if solar:\n        w = 0.7 * tw + 0.2 * tg + 0.1 * td\n    else:\n        w = 0.7 * tw + 0.3 * tg\n    w = round(w, 1)\n    wf = w * 9 / 5 + 32\n    if wf < 80:\n        flag = \"white\"\n    elif wf < 85:\n        flag = \"green\"\n    elif wf < 88:\n        flag = \"yellow\"\n    elif wf < 90:\n        flag = \"red\"\n    else:\n        flag = \"black\"\n    return [w, flag]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['Tw 20 Tg 30 Td 25 sun', [20, 30, 25, True], [22.5, 'white']], ['Tw 20 Tg 30 Td 25 indoor', [20, 30, 25, False], [23.0, 'white']], ['Tw 24 Tg 35 Td 30 sun', [24, 35, 30, True], [26.8, 'green']], ['Tw 24 Tg 35 Td 30 indoor', [24, 35, 30, False], [27.3, 'green']], ['Tw 25 Tg 40 Td 31 sun', [25, 40, 31, True], [28.6, 'green']], ['Tw 25 Tg 40 Td 31 indoor', [25, 40, 31, False], [29.5, 'yellow']], ['Tw 28 Tg 45 Td 34 sun', [28, 45, 34, True], [32.0, 'red']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']]], [['Tw 26 Tg 38 Td 30 indoor', [26, 38, 30, False], [29.6, 'yellow']], ['Tw 27 Tg 36 Td 32 sun', [27, 36, 32, True], [29.3, 'green']], ['Tw 27 Tg 36 Td 32 indoor', [27, 36, 32, False], [29.7, 'yellow']], ['Tw 28 Tg 45 Td 34 sun', [28, 45, 34, True], [32.0, 'red']], ['Tw 28 Tg 45 Td 34 indoor', [28, 45, 34, False], [33.1, 'black']], ['Tw 29 Tg 30 Td 29 sun', [29, 30, 29, True], [29.2, 'green']], ['Tw 29 Tg 30 Td 29 indoor', [29, 30, 29, False], [29.3, 'green']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']]], [['Tw 30 Tg 50 Td 35 sun', [30, 50, 35, True], [34.5, 'black']], ['Tw 30 Tg 50 Td 35 indoor', [30, 50, 35, False], [36.0, 'black']], ['Tw 31 Tg 40 Td 33 sun', [31, 40, 33, True], [33.0, 'black']], ['Tw 31 Tg 40 Td 33 indoor', [31, 40, 33, False], [33.7, 'black']], ['Tw 22 Tg 26 Td 24 sun', [22, 26, 24, True], [23.0, 'white']], ['Tw 22 Tg 26 Td 24 indoor', [22, 26, 24, False], [23.2, 'white']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']], ['field Tw 30.3 Tg 35.9 Td 35.9', [30.3, 35.9, 35.9, False], [32.0, 'red']]], [['Tw 27 Tg 29.4 Td 30 indoor', [27, 29.4, 30, False], [27.7, 'green']], ['Tw 26.4 Tg 30 Td 29 sun', [26.4, 30, 29, True], [27.4, 'green']], ['Tw 26.4 Tg 30 Td 29 indoor', [26.4, 30, 29, False], [27.5, 'green']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']], ['indoor raw 29.43', [21, 49.1, 30, False], [29.4, 'green']], ['sun raw 26.66', [20, 41.3, 30.6, True], [25.3, 'white']], ['field Tw 22.5 Tg 25.2 Td 27.7', [22.5, 25.2, 27.7, True], [23.6, 'white']], ['field Tw 25.5 Tg 32.1 Td 26.0', [25.5, 32.1, 26.0, False], [27.5, 'green']]], [['Tw 29 Tg 30 Td 29 indoor', [29, 30, 29, False], [29.3, 'green']], ['indoor raw 26.66', [20, 42.2, 30, False], [26.7, 'green']], ['field Tw 25.5 Tg 32.1 Td 26.0', [25.5, 32.1, 26.0, False], [27.5, 'green']], ['field Tw 18.5 Tg 26.3 Td 19.1', [18.5, 26.3, 19.1, True], [20.1, 'white']], ['field Tw 23.9 Tg 38.8 Td 24.9', [23.9, 38.8, 24.9, True], [27.0, 'green']], ['field Tw 26.8 Tg 43.9 Td 31.4', [26.8, 43.9, 31.4, True], [30.7, 'yellow']], ['field Tw 31.7 Tg 32.5 Td 38.6', [31.7, 32.5, 38.6, True], [32.5, 'black']], ['field Tw 20.0 Tg 22.1 Td 22.5', [20.0, 22.1, 22.5, False], [20.6, 'white']]]]\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-wbgt-flag-flag-from-reported-value","generated_at":"2026-09-29T14:48:25.601514+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Training and work/rest schedules follow the WBGT flag colour.","repair":"Round WBGT to 0.1 degC first and derive the flag from that value.","root_cause":"The flag is computed from the unrounded WBGT while the rounded value is posted.","sha256":"509983e0208c6d9d3548d0f9cee81204c5db5e53e21c39f0d2797248f9313926","title":"WBGT heat flag: flag from reported value · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":36.352,"exit_code":1,"observations":[{"actual":[22.5,"white"],"check":"Tw 20 Tg 30 Td 25 sun","expected":[22.5,"white"],"passed":true},{"actual":[23.0,"white"],"check":"Tw 20 Tg 30 Td 25 indoor","expected":[23.0,"white"],"passed":true},{"actual":[26.8,"green"],"check":"Tw 24 Tg 35 Td 30 sun","expected":[26.8,"green"],"passed":true},{"actual":[27.3,"green"],"check":"Tw 24 Tg 35 Td 30 indoor","expected":[27.3,"green"],"passed":true},{"actual":[28.6,"green"],"check":"Tw 25 Tg 40 Td 31 sun","expected":[28.6,"green"],"passed":true},{"actual":[29.5,"yellow"],"check":"Tw 25 Tg 40 Td 31 indoor","expected":[29.5,"yellow"],"passed":true},{"actual":[32.0,"black"],"check":"Tw 28 Tg 45 Td 34 sun","expected":[32.0,"red"],"passed":false},{"actual":[26.7,"green"],"check":"indoor raw 26.66","expected":[26.7,"green"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"Tw 20 Tg 30 Td 25 sun\", \"actual\": [22.5, \"white\"], \"expected\": [22.5, \"white\"], \"passed\": true}, {\"check\": \"Tw 20 Tg 30 Td 25 indoor\", \"actual\": [23.0, \"white\"], \"expected\": [23.0, \"white\"], \"passed\": true}, {\"check\": \"Tw 24 Tg 35 Td 30 sun\", \"actual\": [26.8, \"green\"], \"expected\": [26.8, \"green\"], \"passed\": true}, {\"check\": \"Tw 24 Tg 35 Td 30 indoor\", \"actual\": [27.3, \"green\"], \"expected\": [27.3, \"green\"], \"passed\": true}, {\"check\": \"Tw 25 Tg 40 Td 31 sun\", \"actual\": [28.6, \"green\"], \"expected\": [28.6, \"green\"], \"passed\": true}, {\"check\": \"Tw 25 Tg 40 Td 31 indoor\", \"actual\": [29.5, \"yellow\"], \"expected\": [29.5, \"yellow\"], \"passed\": true}, {\"check\": \"Tw 28 Tg 45 Td 34 sun\", \"actual\": [32.0, \"black\"], \"expected\": [32.0, \"red\"], \"passed\": false}, {\"check\": \"indoor raw 26.66\", \"actual\": [26.7, \"green\"], \"expected\": [26.7, \"green\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.913,"exit_code":1,"observations":[{"actual":[22.5,"white"],"check":"Tw 20 Tg 30 Td 25 sun","expected":[22.5,"white"],"passed":true},{"actual":[23.0,"white"],"check":"Tw 20 Tg 30 Td 25 indoor","expected":[23.0,"white"],"passed":true},{"actual":[26.8,"green"],"check":"Tw 24 Tg 35 Td 30 sun","expected":[26.8,"green"],"passed":true},{"actual":[27.3,"green"],"check":"Tw 24 Tg 35 Td 30 indoor","expected":[27.3,"green"],"passed":true},{"actual":[28.6,"green"],"check":"Tw 25 Tg 40 Td 31 sun","expected":[28.6,"green"],"passed":true},{"actual":[29.5,"yellow"],"check":"Tw 25 Tg 40 Td 31 indoor","expected":[29.5,"yellow"],"passed":true},{"actual":[32.0,"red"],"check":"Tw 28 Tg 45 Td 34 sun","expected":[32.0,"red"],"passed":true},{"actual":[26.7,"white"],"check":"indoor raw 26.66","expected":[26.7,"green"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"Tw 20 Tg 30 Td 25 sun\", \"actual\": [22.5, \"white\"], \"expected\": [22.5, \"white\"], \"passed\": true}, {\"check\": \"Tw 20 Tg 30 Td 25 indoor\", \"actual\": [23.0, \"white\"], \"expected\": [23.0, \"white\"], \"passed\": true}, {\"check\": \"Tw 24 Tg 35 Td 30 sun\", \"actual\": [26.8, \"green\"], \"expected\": [26.8, \"green\"], \"passed\": true}, {\"check\": \"Tw 24 Tg 35 Td 30 indoor\", \"actual\": [27.3, \"green\"], \"expected\": [27.3, \"green\"], \"passed\": true}, {\"check\": \"Tw 25 Tg 40 Td 31 sun\", \"actual\": [28.6, \"green\"], \"expected\": [28.6, \"green\"], \"passed\": true}, {\"check\": \"Tw 25 Tg 40 Td 31 indoor\", \"actual\": [29.5, \"yellow\"], \"expected\": [29.5, \"yellow\"], \"passed\": true}, {\"check\": \"Tw 28 Tg 45 Td 34 sun\", \"actual\": [32.0, \"red\"], \"expected\": [32.0, \"red\"], \"passed\": true}, {\"check\": \"indoor raw 26.66\", \"actual\": [26.7, \"white\"], \"expected\": [26.7, \"green\"], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":36.646,"exit_code":0,"observations":[{"actual":[22.5,"white"],"check":"Tw 20 Tg 30 Td 25 sun","expected":[22.5,"white"],"passed":true},{"actual":[23.0,"white"],"check":"Tw 20 Tg 30 Td 25 indoor","expected":[23.0,"white"],"passed":true},{"actual":[26.8,"green"],"check":"Tw 24 Tg 35 Td 30 sun","expected":[26.8,"green"],"passed":true},{"actual":[27.3,"green"],"check":"Tw 24 Tg 35 Td 30 indoor","expected":[27.3,"green"],"passed":true},{"actual":[28.6,"green"],"check":"Tw 25 Tg 40 Td 31 sun","expected":[28.6,"green"],"passed":true},{"actual":[29.5,"yellow"],"check":"Tw 25 Tg 40 Td 31 indoor","expected":[29.5,"yellow"],"passed":true},{"actual":[32.0,"red"],"check":"Tw 28 Tg 45 Td 34 sun","expected":[32.0,"red"],"passed":true},{"actual":[26.7,"green"],"check":"indoor raw 26.66","expected":[26.7,"green"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"Tw 20 Tg 30 Td 25 sun\", \"actual\": [22.5, \"white\"], \"expected\": [22.5, \"white\"], \"passed\": true}, {\"check\": \"Tw 20 Tg 30 Td 25 indoor\", \"actual\": [23.0, \"white\"], \"expected\": [23.0, \"white\"], \"passed\": true}, {\"check\": \"Tw 24 Tg 35 Td 30 sun\", \"actual\": [26.8, \"green\"], \"expected\": [26.8, \"green\"], \"passed\": true}, {\"check\": \"Tw 24 Tg 35 Td 30 indoor\", \"actual\": [27.3, \"green\"], \"expected\": [27.3, \"green\"], \"passed\": true}, {\"check\": \"Tw 25 Tg 40 Td 31 sun\", \"actual\": [28.6, \"green\"], \"expected\": [28.6, \"green\"], \"passed\": true}, {\"check\": \"Tw 25 Tg 40 Td 31 indoor\", \"actual\": [29.5, \"yellow\"], \"expected\": [29.5, \"yellow\"], \"passed\": true}, {\"check\": \"Tw 28 Tg 45 Td 34 sun\", \"actual\": [32.0, \"red\"], \"expected\": [32.0, \"red\"], \"passed\": true}, {\"check\": \"indoor raw 26.66\", \"actual\": [26.7, \"green\"], \"expected\": [26.7, \"green\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}