{"abstract":"Prices between discounted and undiscounted intrinsic are rejected or solved inconsistently.","category":"Options payoff and settlement","checks":8,"contract":"Inputs kind, option price, S, K, r, T (no dividends). If price <= lower bound (call max(S - K e^{-rT},0), put max(K e^{-rT} - S,0)) or price >= upper bound (call S, put K e^{-rT}) return None. Otherwise bisect sigma in [1e-6, 5] for 100 iterations on the Black-Scholes price and return the midpoint rounded to 4.","evaluation_group":"w2-options_payoff_and_settlement-implied-volatility-bisection","failed_approach":"Applying the call bound formula to puts leaves put bounds wrong.","family":"w2-options_payoff_and_settlement-implied-volatility-bisection-lower-arbitrage-bound","id":"FA-61736","implementations":{"attempt":{"sha256":"19f9537c3523452fbf74451497be916656b2385faf1d7c0e8e9b89767a305d45","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(kind, price, S, K, r, T):\n    def N(x):\n        return 0.5 * (1 + math.erf(x / math.sqrt(2)))\n    def bs(v):\n        d1 = (math.log(S / K) + (r + 0.5 * v * v) * T) / (v * math.sqrt(T))\n        d2 = d1 - v * math.sqrt(T)\n        if kind == 'C':\n            return S * N(d1) - K * math.exp(-r * T) * N(d2)\n        return K * math.exp(-r * T) * N(-d2) - S * N(-d1)\n    disc_k = K * math.exp(-r * T)\n    lower = max(S - disc_k, 0)\n    upper = S if kind == 'C' else disc_k\n    if price <= lower or price >= upper:\n        return None\n    lo, hi = 1e-6, 5.0\n    for _ in range(100):\n        mid = (lo + hi) / 2\n        if bs(mid) > price:\n            hi = mid\n        else:\n            lo = mid\n    return round((lo + hi) / 2, 4)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression lower arbitrage bound 1', ['P', 6.9002, 100.0, 120.0, 0.08, 2.0], 0.1], ['regression lower arbitrage bound 2', ['C', 22.0232, 110.0, 95.0, 0.08, 2.0], None], ['partial repair probe 1', ['P', 0.01, 100.0, 95.0, 0.03, 2.0], 0.0321], ['partial repair probe 2', ['P', 0.0713, 110.0, 95.0, 0.08, 2.0], 0.1], ['normal control 1', ['C', 32.8627, 100.0, 100.0, 0.0, 2.0], 0.6], ['normal control 2', ['C', 0.0, 100.0, 100.0, 0.0, 0.25], None], ['normal control 3', ['C', 100.0, 100.0, 100.0, 0.03, 2.0], None], ['normal control 4', ['C', 47.0024, 100.0, 100.0, 0.03, 0.25], 2.5]], [['regression lower arbitrage bound 1', ['P', 6.1558, 90.0, 100.0, 0.08, 1.0], 0.1352], ['regression lower arbitrage bound 2', ['C', 12.2939, 100.0, 95.0, 0.08, 1.0], None], ['partial repair probe 1', ['P', 1.1273, 100.0, 95.0, 0.03, 1.0], 0.1], ['partial repair probe 2', ['P', 2.2473, 100.0, 120.0, 0.08, 2.0], None], ['normal control 1', ['C', 19.4236, 100.0, 95.0, 0.08, 2.0], 0.1], ['normal control 2', ['C', 32.8627, 100.0, 100.0, 0.0, 2.0], 0.6], ['normal control 3', ['P', 12.0217, 90.0, 100.0, 0.0, 0.25], 0.3], ['normal control 4', ['C', 43.9475, 110.0, 95.0, 0.03, 2.0], 0.6]], [['regression lower arbitrage bound 1', ['C', 22.0232, 110.0, 95.0, 0.08, 2.0], None], ['regression lower arbitrage bound 2', ['C', 10.9901, 110.0, 100.0, 0.08, 0.25], None], ['partial repair probe 1', ['P', 2.2473, 100.0, 120.0, 0.08, 2.0], None], ['partial repair probe 2', ['P', 5.01, 90.0, 95.0, 0.08, 2.0], 0.1832], ['normal control 1', ['C', 91.9882, 100.0, 100.0, 0.0, 1.0], 3.5], ['normal control 2', ['C', 68.1279, 90.0, 120.0, 0.0, 1.0], 2.5], ['normal control 3', ['P', 104.819, 100.0, 120.0, 0.03, 2.0], 2.5], ['normal control 4', ['P', 120.0, 100.0, 120.0, 0.0, 2.0], None]], [['regression lower arbitrage bound 1', ['C', 0.01, 100.0, 100.0, 0.08, 2.0], None], ['regression lower arbitrage bound 2', ['C', 9.0363, 90.0, 95.0, 0.08, 2.0], None], ['partial repair probe 1', ['P', 0.01, 110.0, 100.0, 0.08, 0.25], 0.0927], ['partial repair probe 2', ['P', 0.2861, 100.0, 95.0, 0.03, 0.25], 0.1], ['normal control 1', ['C', 89.2978, 110.0, 95.0, 0.08, 1.0], 2.5], ['normal control 2', ['C', 22.3436, 110.0, 95.0, 0.08, 1.0], 0.1], ['normal control 3', ['C', 28.1884, 100.0, 95.0, 0.08, 0.25], 1.3], ['normal control 4', ['C', 100.0, 100.0, 95.0, 0.08, 1.0], None]], [['regression lower arbitrage bound 1', ['P', 19.1037, 100.0, 120.0, 0.03, 0.25], 0.1002], ['regression lower arbitrage bound 2', ['P', 2.8891, 110.0, 120.0, 0.08, 2.0], 0.1], ['partial repair probe 1', ['P', 7.4876, 100.0, 95.0, 0.08, 2.0], 0.3], ['partial repair probe 2', ['P', 9.99, 90.0, 100.0, 0.0, 1.0], None], ['normal control 1', ['P', 92.5421, 110.0, 120.0, 0.03, 1.0], 2.5], ['normal control 2', ['P', 100.0, 90.0, 100.0, 0.0, 2.0], None], ['normal control 3', ['P', 0.0, 100.0, 95.0, 0.03, 2.0], None], ['normal control 4', ['C', 0, 90.0, 100.0, 0.03, 0.25], None]]]\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":"3d9e2d424dec85492539075f11f37422b058e03e095ab9b08d0c27940a86c606","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(kind, price, S, K, r, T):\n    def N(x):\n        return 0.5 * (1 + math.erf(x / math.sqrt(2)))\n    def bs(v):\n        d1 = (math.log(S / K) + (r + 0.5 * v * v) * T) / (v * math.sqrt(T))\n        d2 = d1 - v * math.sqrt(T)\n        if kind == 'C':\n            return S * N(d1) - K * math.exp(-r * T) * N(d2)\n        return K * math.exp(-r * T) * N(-d2) - S * N(-d1)\n    disc_k = K * math.exp(-r * T)\n    lower = max(S - K, 0) if kind == 'C' else max(K - S, 0)\n    upper = S if kind == 'C' else disc_k\n    if price <= lower or price >= upper:\n        return None\n    lo, hi = 1e-6, 5.0\n    for _ in range(100):\n        mid = (lo + hi) / 2\n        if bs(mid) > price:\n            hi = mid\n        else:\n            lo = mid\n    return round((lo + hi) / 2, 4)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression lower arbitrage bound 1', ['P', 6.9002, 100.0, 120.0, 0.08, 2.0], 0.1], ['regression lower arbitrage bound 2', ['C', 22.0232, 110.0, 95.0, 0.08, 2.0], None], ['partial repair probe 1', ['P', 0.01, 100.0, 95.0, 0.03, 2.0], 0.0321], ['partial repair probe 2', ['P', 0.0713, 110.0, 95.0, 0.08, 2.0], 0.1], ['normal control 1', ['C', 32.8627, 100.0, 100.0, 0.0, 2.0], 0.6], ['normal control 2', ['C', 0.0, 100.0, 100.0, 0.0, 0.25], None], ['normal control 3', ['C', 100.0, 100.0, 100.0, 0.03, 2.0], None], ['normal control 4', ['C', 47.0024, 100.0, 100.0, 0.03, 0.25], 2.5]], [['regression lower arbitrage bound 1', ['P', 6.1558, 90.0, 100.0, 0.08, 1.0], 0.1352], ['regression lower arbitrage bound 2', ['C', 12.2939, 100.0, 95.0, 0.08, 1.0], None], ['partial repair probe 1', ['P', 1.1273, 100.0, 95.0, 0.03, 1.0], 0.1], ['partial repair probe 2', ['P', 2.2473, 100.0, 120.0, 0.08, 2.0], None], ['normal control 1', ['C', 19.4236, 100.0, 95.0, 0.08, 2.0], 0.1], ['normal control 2', ['C', 32.8627, 100.0, 100.0, 0.0, 2.0], 0.6], ['normal control 3', ['P', 12.0217, 90.0, 100.0, 0.0, 0.25], 0.3], ['normal control 4', ['C', 43.9475, 110.0, 95.0, 0.03, 2.0], 0.6]], [['regression lower arbitrage bound 1', ['C', 22.0232, 110.0, 95.0, 0.08, 2.0], None], ['regression lower arbitrage bound 2', ['C', 10.9901, 110.0, 100.0, 0.08, 0.25], None], ['partial repair probe 1', ['P', 2.2473, 100.0, 120.0, 0.08, 2.0], None], ['partial repair probe 2', ['P', 5.01, 90.0, 95.0, 0.08, 2.0], 0.1832], ['normal control 1', ['C', 91.9882, 100.0, 100.0, 0.0, 1.0], 3.5], ['normal control 2', ['C', 68.1279, 90.0, 120.0, 0.0, 1.0], 2.5], ['normal control 3', ['P', 104.819, 100.0, 120.0, 0.03, 2.0], 2.5], ['normal control 4', ['P', 120.0, 100.0, 120.0, 0.0, 2.0], None]], [['regression lower arbitrage bound 1', ['C', 0.01, 100.0, 100.0, 0.08, 2.0], None], ['regression lower arbitrage bound 2', ['C', 9.0363, 90.0, 95.0, 0.08, 2.0], None], ['partial repair probe 1', ['P', 0.01, 110.0, 100.0, 0.08, 0.25], 0.0927], ['partial repair probe 2', ['P', 0.2861, 100.0, 95.0, 0.03, 0.25], 0.1], ['normal control 1', ['C', 89.2978, 110.0, 95.0, 0.08, 1.0], 2.5], ['normal control 2', ['C', 22.3436, 110.0, 95.0, 0.08, 1.0], 0.1], ['normal control 3', ['C', 28.1884, 100.0, 95.0, 0.08, 0.25], 1.3], ['normal control 4', ['C', 100.0, 100.0, 95.0, 0.08, 1.0], None]], [['regression lower arbitrage bound 1', ['P', 19.1037, 100.0, 120.0, 0.03, 0.25], 0.1002], ['regression lower arbitrage bound 2', ['P', 2.8891, 110.0, 120.0, 0.08, 2.0], 0.1], ['partial repair probe 1', ['P', 7.4876, 100.0, 95.0, 0.08, 2.0], 0.3], ['partial repair probe 2', ['P', 9.99, 90.0, 100.0, 0.0, 1.0], None], ['normal control 1', ['P', 92.5421, 110.0, 120.0, 0.03, 1.0], 2.5], ['normal control 2', ['P', 100.0, 90.0, 100.0, 0.0, 2.0], None], ['normal control 3', ['P', 0.0, 100.0, 95.0, 0.03, 2.0], None], ['normal control 4', ['C', 0, 90.0, 100.0, 0.03, 0.25], None]]]\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":"03b929b79d1c31085957d072a23a9410b54f47c940c7b2cbaa6c539acdb4f9a0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(kind, price, S, K, r, T):\n    def N(x):\n        return 0.5 * (1 + math.erf(x / math.sqrt(2)))\n    def bs(v):\n        d1 = (math.log(S / K) + (r + 0.5 * v * v) * T) / (v * math.sqrt(T))\n        d2 = d1 - v * math.sqrt(T)\n        if kind == 'C':\n            return S * N(d1) - K * math.exp(-r * T) * N(d2)\n        return K * math.exp(-r * T) * N(-d2) - S * N(-d1)\n    disc_k = K * math.exp(-r * T)\n    lower = max(S - disc_k, 0) if kind == 'C' else max(disc_k - S, 0)\n    upper = S if kind == 'C' else disc_k\n    if price <= lower or price >= upper:\n        return None\n    lo, hi = 1e-6, 5.0\n    for _ in range(100):\n        mid = (lo + hi) / 2\n        if bs(mid) > price:\n            hi = mid\n        else:\n            lo = mid\n    return round((lo + hi) / 2, 4)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression lower arbitrage bound 1', ['P', 6.9002, 100.0, 120.0, 0.08, 2.0], 0.1], ['regression lower arbitrage bound 2', ['C', 22.0232, 110.0, 95.0, 0.08, 2.0], None], ['partial repair probe 1', ['P', 0.01, 100.0, 95.0, 0.03, 2.0], 0.0321], ['partial repair probe 2', ['P', 0.0713, 110.0, 95.0, 0.08, 2.0], 0.1], ['normal control 1', ['C', 32.8627, 100.0, 100.0, 0.0, 2.0], 0.6], ['normal control 2', ['C', 0.0, 100.0, 100.0, 0.0, 0.25], None], ['normal control 3', ['C', 100.0, 100.0, 100.0, 0.03, 2.0], None], ['normal control 4', ['C', 47.0024, 100.0, 100.0, 0.03, 0.25], 2.5]], [['regression lower arbitrage bound 1', ['P', 6.1558, 90.0, 100.0, 0.08, 1.0], 0.1352], ['regression lower arbitrage bound 2', ['C', 12.2939, 100.0, 95.0, 0.08, 1.0], None], ['partial repair probe 1', ['P', 1.1273, 100.0, 95.0, 0.03, 1.0], 0.1], ['partial repair probe 2', ['P', 2.2473, 100.0, 120.0, 0.08, 2.0], None], ['normal control 1', ['C', 19.4236, 100.0, 95.0, 0.08, 2.0], 0.1], ['normal control 2', ['C', 32.8627, 100.0, 100.0, 0.0, 2.0], 0.6], ['normal control 3', ['P', 12.0217, 90.0, 100.0, 0.0, 0.25], 0.3], ['normal control 4', ['C', 43.9475, 110.0, 95.0, 0.03, 2.0], 0.6]], [['regression lower arbitrage bound 1', ['C', 22.0232, 110.0, 95.0, 0.08, 2.0], None], ['regression lower arbitrage bound 2', ['C', 10.9901, 110.0, 100.0, 0.08, 0.25], None], ['partial repair probe 1', ['P', 2.2473, 100.0, 120.0, 0.08, 2.0], None], ['partial repair probe 2', ['P', 5.01, 90.0, 95.0, 0.08, 2.0], 0.1832], ['normal control 1', ['C', 91.9882, 100.0, 100.0, 0.0, 1.0], 3.5], ['normal control 2', ['C', 68.1279, 90.0, 120.0, 0.0, 1.0], 2.5], ['normal control 3', ['P', 104.819, 100.0, 120.0, 0.03, 2.0], 2.5], ['normal control 4', ['P', 120.0, 100.0, 120.0, 0.0, 2.0], None]], [['regression lower arbitrage bound 1', ['C', 0.01, 100.0, 100.0, 0.08, 2.0], None], ['regression lower arbitrage bound 2', ['C', 9.0363, 90.0, 95.0, 0.08, 2.0], None], ['partial repair probe 1', ['P', 0.01, 110.0, 100.0, 0.08, 0.25], 0.0927], ['partial repair probe 2', ['P', 0.2861, 100.0, 95.0, 0.03, 0.25], 0.1], ['normal control 1', ['C', 89.2978, 110.0, 95.0, 0.08, 1.0], 2.5], ['normal control 2', ['C', 22.3436, 110.0, 95.0, 0.08, 1.0], 0.1], ['normal control 3', ['C', 28.1884, 100.0, 95.0, 0.08, 0.25], 1.3], ['normal control 4', ['C', 100.0, 100.0, 95.0, 0.08, 1.0], None]], [['regression lower arbitrage bound 1', ['P', 19.1037, 100.0, 120.0, 0.03, 0.25], 0.1002], ['regression lower arbitrage bound 2', ['P', 2.8891, 110.0, 120.0, 0.08, 2.0], 0.1], ['partial repair probe 1', ['P', 7.4876, 100.0, 95.0, 0.08, 2.0], 0.3], ['partial repair probe 2', ['P', 9.99, 90.0, 100.0, 0.0, 1.0], None], ['normal control 1', ['P', 92.5421, 110.0, 120.0, 0.03, 1.0], 2.5], ['normal control 2', ['P', 100.0, 90.0, 100.0, 0.0, 2.0], None], ['normal control 3', ['P', 0.0, 100.0, 95.0, 0.03, 2.0], None], ['normal control 4', ['C', 0, 90.0, 100.0, 0.03, 0.25], None]]]\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 contract stated explicitly in the contract field; no claim of conformance to any exchange or clearing rulebook. 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-options_payoff_and_settlement-implied-volatility-bisection-lower-arbitrage-bound","generated_at":"2026-09-29T14:46:58.062938+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Option expiry, exercise and settlement engines move cash and shares; a wrong branch misstates obligations.","repair":"Discount the strike in the lower bound.","root_cause":"The lower bound uses max(S-K,0) or max(K-S,0) instead of the discounted strike.","sha256":"c2a027235805a8b161446cd18937bfa927bca9dd735822b199789187afe03b47","title":"Implied volatility by bisection with arbitrage bounds: the lower bound uses the undiscounted intrinsic value · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.027,"exit_code":1,"observations":[{"actual":0.1,"check":"regression lower arbitrage bound 1","expected":0.1,"passed":true},{"actual":null,"check":"regression lower arbitrage bound 2","expected":null,"passed":true},{"actual":null,"check":"partial repair probe 1","expected":0.0321,"passed":false},{"actual":null,"check":"partial repair probe 2","expected":0.1,"passed":false},{"actual":0.6,"check":"normal control 1","expected":0.6,"passed":true},{"actual":null,"check":"normal control 2","expected":null,"passed":true},{"actual":null,"check":"normal control 3","expected":null,"passed":true},{"actual":2.5,"check":"normal control 4","expected":2.5,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression lower arbitrage bound 1\", \"actual\": 0.1, \"expected\": 0.1, \"passed\": true}, {\"check\": \"regression lower arbitrage bound 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"partial repair probe 1\", \"actual\": null, \"expected\": 0.0321, \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": null, \"expected\": 0.1, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": 0.6, \"expected\": 0.6, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 2.5, \"expected\": 2.5, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.206,"exit_code":1,"observations":[{"actual":null,"check":"regression lower arbitrage bound 1","expected":0.1,"passed":false},{"actual":0.0,"check":"regression lower arbitrage bound 2","expected":null,"passed":false},{"actual":0.0321,"check":"partial repair probe 1","expected":0.0321,"passed":true},{"actual":0.1,"check":"partial repair probe 2","expected":0.1,"passed":true},{"actual":0.6,"check":"normal control 1","expected":0.6,"passed":true},{"actual":null,"check":"normal control 2","expected":null,"passed":true},{"actual":null,"check":"normal control 3","expected":null,"passed":true},{"actual":2.5,"check":"normal control 4","expected":2.5,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression lower arbitrage bound 1\", \"actual\": null, \"expected\": 0.1, \"passed\": false}, {\"check\": \"regression lower arbitrage bound 2\", \"actual\": 0.0, \"expected\": null, \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": 0.0321, \"expected\": 0.0321, \"passed\": true}, {\"check\": \"partial repair probe 2\", \"actual\": 0.1, \"expected\": 0.1, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 0.6, \"expected\": 0.6, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 2.5, \"expected\": 2.5, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.832,"exit_code":0,"observations":[{"actual":0.1,"check":"regression lower arbitrage bound 1","expected":0.1,"passed":true},{"actual":null,"check":"regression lower arbitrage bound 2","expected":null,"passed":true},{"actual":0.0321,"check":"partial repair probe 1","expected":0.0321,"passed":true},{"actual":0.1,"check":"partial repair probe 2","expected":0.1,"passed":true},{"actual":0.6,"check":"normal control 1","expected":0.6,"passed":true},{"actual":null,"check":"normal control 2","expected":null,"passed":true},{"actual":null,"check":"normal control 3","expected":null,"passed":true},{"actual":2.5,"check":"normal control 4","expected":2.5,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression lower arbitrage bound 1\", \"actual\": 0.1, \"expected\": 0.1, \"passed\": true}, {\"check\": \"regression lower arbitrage bound 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"partial repair probe 1\", \"actual\": 0.0321, \"expected\": 0.0321, \"passed\": true}, {\"check\": \"partial repair probe 2\", \"actual\": 0.1, \"expected\": 0.1, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 0.6, \"expected\": 0.6, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 2.5, \"expected\": 2.5, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}