{"abstract":"Neutral points between the two armies are added to black area and the reported margin is inflated.","category":"Go territory scoring","checks":8,"contract":"Input [board, komi_tenths]. Area = own stones + empty regions whose orthogonal border touches only that colour. Return [black_area, white_area, result] where result is \"B+x.y\" / \"W+x.y\" after subtracting komi from black, or \"Draw\".","evaluation_group":"w2-go-territory-scoring-tt-area","failed_approach":"A subset test fixes shared dame but credits the fully empty board (empty border set) to black.","family":"w2-go-territory-scoring-tt-area-mixed-border-region-ownership","id":"FA-82846","implementations":{"attempt":{"sha256":"6b671a6d7b69b9c1d72003c1da5f0eeb2712ffa071a025ac99025d477d1fb70f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    board, komi = x\n    n = len(board)\n    m = len(board[0])\n    b = sum(row.count('B') for row in board)\n    w = sum(row.count('W') for row in board)\n    seen = set()\n    for r in range(n):\n        for c in range(m):\n            if board[r][c] != '.' or (r, c) in seen:\n                continue\n            stack = [(r, c)]\n            seen.add((r, c))\n            size = 0\n            border = set()\n            while stack:\n                i, j = stack.pop()\n                size += 1\n                for di, dj in ((1, 0), (-1, 0), (0, 1), (0, -1)):\n                    a, d = i + di, j + dj\n                    if 0 <= a < n and 0 <= d < m:\n                        v = board[a][d]\n                        if v == '.':\n                            if (a, d) not in seen:\n                                seen.add((a, d))\n                                stack.append((a, d))\n                        else:\n                            border.add(v)\n            if border <= {'B'}:\n                b += size\n            elif border <= {'W'}:\n                w += size\n    diff = b * 10 - w * 10 - komi\n    if diff > 0:\n        res = 'B+%d.%d' % (diff // 10, diff % 10)\n    elif diff < 0:\n        res = 'W+%d.%d' % ((-diff) // 10, (-diff) % 10)\n    else:\n        res = 'Draw'\n    return [b, w, res]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['B..W', 'B..W', 'B..W', 'B..W'], 75], [4, 4, 'W+7.5']], [[['BBBB', 'B..B', 'B..B', 'BBBB'], 5], [16, 0, 'B+15.5']], [[['WWW', 'W.W', 'WWW'], 65], [0, 9, 'W+15.5']], [[['B.W', '...', 'W.B'], 75], [2, 2, 'W+7.5']], [[['.B...', 'B....', '.....', '....W', '...W.'], 35], [3, 3, 'W+3.5']], [[['BW.', 'BW.', 'BW.'], 60], [3, 6, 'W+9.0']], [[['.....', '.BBB.', '.B.B.', '.BBB.', '.....'], 70], [25, 0, 'B+18.0']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['.W.B.', 'W.WB.', '.WB..', 'WB...', 'B....'], 0], [16, 8, 'B+8.0']], [[['..W', '.W.', 'W..'], 0], [0, 9, 'W+9.0']], [[['B....B', '......', '..WW..', '..WW..', '......', 'B....B'], 5], [4, 4, 'W+0.5']], [[['.BBW.', 'B.BBB', '...W.', '.B.WB'], 65], [9, 3, 'W+0.5']], [[['BB.W.', 'BB.WW', 'W..WW', '.W...', '.B...'], 75], [5, 8, 'W+10.5']], [[['B..', '..W', '...', '.WW'], 35], [1, 3, 'W+5.5']], [[['...B..', '.B..B.', '..W...', 'B..B..'], 60], [5, 1, 'W+2.0']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['B....B', '......', '..WW..', '..WW..', '......', 'B....B'], 5], [4, 4, 'W+0.5']], [[['WBWWB', 'BB.B.', 'WBWB.', 'WBWBB'], -5], [12, 7, 'B+5.5']], [[['...', '...', '.B.', '.WB', '...', 'B..'], 0], [3, 1, 'B+2.0']], [[['.....', '.W...', 'WW...'], 5], [0, 15, 'W+15.5']], [[['.B.', '.WW', 'BBB', 'WW.'], 65], [4, 4, 'W+6.5']], [[['.B.BB', 'WB...', '.....'], 75], [4, 1, 'W+4.5']], [[['.WBB', 'BW..', '..B.'], 35], [4, 2, 'W+1.5']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['B..', '..W', '...', '.WW'], 35], [1, 3, 'W+5.5']], [[['B..', '.B.', '...', '...', 'B..', 'BB.'], 70], [18, 0, 'B+11.0']], [[['BW.B', '.WWW', 'B.BB', 'WBB.', 'BW.W'], -5], [8, 7, 'B+1.5']], [[['......', '..W...', 'WW.WW.', '......', 'WBW...'], 0], [1, 7, 'W+6.0']], [[['W..W', '.B..', 'B.W.', '.W..', '....'], 5], [2, 4, 'W+2.5']], [[['BWBB.', '.B..B', 'BW..B', 'W.BBW', '...BB'], 65], [13, 4, 'B+2.5']], [[['...W..', '..WBW.', 'W...WW', '.WW..W'], 75], [1, 13, 'W+19.5']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['WBWWB', 'BB.B.', 'WBWB.', 'WBWBB'], -5], [12, 7, 'B+5.5']], [[['W..B.', 'BB.BB', 'B..B.', 'BBB..', 'B.BBB'], 60], [19, 1, 'B+12.0']], [[['.BBBW.', 'WBBBB.', '.WBB..', 'BBB...', 'BBW..B', '..BW.W'], 70], [18, 6, 'B+5.0']], [[['W..BBB', 'BWB.W.', '.WWWWW', 'W.WBWW'], -5], [6, 13, 'W+6.5']], [[['W..B', '...B', 'WWWW'], 0], [2, 5, 'W+3.0']], [[['W...', 'WBWB', 'WWBW', 'BBB.'], 5], [6, 6, 'W+0.5']], [[['WW..', 'WWW.', 'BWWW'], 65], [1, 11, 'W+16.5']]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"area score case %d\" % i, 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":"bf32d89ec8abc048ba7f51c577f8d16054ac46a5eec028767a0836a8b2fd8467","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    board, komi = x\n    n = len(board)\n    m = len(board[0])\n    b = sum(row.count('B') for row in board)\n    w = sum(row.count('W') for row in board)\n    seen = set()\n    for r in range(n):\n        for c in range(m):\n            if board[r][c] != '.' or (r, c) in seen:\n                continue\n            stack = [(r, c)]\n            seen.add((r, c))\n            size = 0\n            border = set()\n            while stack:\n                i, j = stack.pop()\n                size += 1\n                for di, dj in ((1, 0), (-1, 0), (0, 1), (0, -1)):\n                    a, d = i + di, j + dj\n                    if 0 <= a < n and 0 <= d < m:\n                        v = board[a][d]\n                        if v == '.':\n                            if (a, d) not in seen:\n                                seen.add((a, d))\n                                stack.append((a, d))\n                        else:\n                            border.add(v)\n            if 'B' in border:\n                b += size\n            elif 'W' in border:\n                w += size\n    diff = b * 10 - w * 10 - komi\n    if diff > 0:\n        res = 'B+%d.%d' % (diff // 10, diff % 10)\n    elif diff < 0:\n        res = 'W+%d.%d' % ((-diff) // 10, (-diff) % 10)\n    else:\n        res = 'Draw'\n    return [b, w, res]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['B..W', 'B..W', 'B..W', 'B..W'], 75], [4, 4, 'W+7.5']], [[['BBBB', 'B..B', 'B..B', 'BBBB'], 5], [16, 0, 'B+15.5']], [[['WWW', 'W.W', 'WWW'], 65], [0, 9, 'W+15.5']], [[['B.W', '...', 'W.B'], 75], [2, 2, 'W+7.5']], [[['.B...', 'B....', '.....', '....W', '...W.'], 35], [3, 3, 'W+3.5']], [[['BW.', 'BW.', 'BW.'], 60], [3, 6, 'W+9.0']], [[['.....', '.BBB.', '.B.B.', '.BBB.', '.....'], 70], [25, 0, 'B+18.0']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['.W.B.', 'W.WB.', '.WB..', 'WB...', 'B....'], 0], [16, 8, 'B+8.0']], [[['..W', '.W.', 'W..'], 0], [0, 9, 'W+9.0']], [[['B....B', '......', '..WW..', '..WW..', '......', 'B....B'], 5], [4, 4, 'W+0.5']], [[['.BBW.', 'B.BBB', '...W.', '.B.WB'], 65], [9, 3, 'W+0.5']], [[['BB.W.', 'BB.WW', 'W..WW', '.W...', '.B...'], 75], [5, 8, 'W+10.5']], [[['B..', '..W', '...', '.WW'], 35], [1, 3, 'W+5.5']], [[['...B..', '.B..B.', '..W...', 'B..B..'], 60], [5, 1, 'W+2.0']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['B....B', '......', '..WW..', '..WW..', '......', 'B....B'], 5], [4, 4, 'W+0.5']], [[['WBWWB', 'BB.B.', 'WBWB.', 'WBWBB'], -5], [12, 7, 'B+5.5']], [[['...', '...', '.B.', '.WB', '...', 'B..'], 0], [3, 1, 'B+2.0']], [[['.....', '.W...', 'WW...'], 5], [0, 15, 'W+15.5']], [[['.B.', '.WW', 'BBB', 'WW.'], 65], [4, 4, 'W+6.5']], [[['.B.BB', 'WB...', '.....'], 75], [4, 1, 'W+4.5']], [[['.WBB', 'BW..', '..B.'], 35], [4, 2, 'W+1.5']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['B..', '..W', '...', '.WW'], 35], [1, 3, 'W+5.5']], [[['B..', '.B.', '...', '...', 'B..', 'BB.'], 70], [18, 0, 'B+11.0']], [[['BW.B', '.WWW', 'B.BB', 'WBB.', 'BW.W'], -5], [8, 7, 'B+1.5']], [[['......', '..W...', 'WW.WW.', '......', 'WBW...'], 0], [1, 7, 'W+6.0']], [[['W..W', '.B..', 'B.W.', '.W..', '....'], 5], [2, 4, 'W+2.5']], [[['BWBB.', '.B..B', 'BW..B', 'W.BBW', '...BB'], 65], [13, 4, 'B+2.5']], [[['...W..', '..WBW.', 'W...WW', '.WW..W'], 75], [1, 13, 'W+19.5']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['WBWWB', 'BB.B.', 'WBWB.', 'WBWBB'], -5], [12, 7, 'B+5.5']], [[['W..B.', 'BB.BB', 'B..B.', 'BBB..', 'B.BBB'], 60], [19, 1, 'B+12.0']], [[['.BBBW.', 'WBBBB.', '.WBB..', 'BBB...', 'BBW..B', '..BW.W'], 70], [18, 6, 'B+5.0']], [[['W..BBB', 'BWB.W.', '.WWWWW', 'W.WBWW'], -5], [6, 13, 'W+6.5']], [[['W..B', '...B', 'WWWW'], 0], [2, 5, 'W+3.0']], [[['W...', 'WBWB', 'WWBW', 'BBB.'], 5], [6, 6, 'W+0.5']], [[['WW..', 'WWW.', 'BWWW'], 65], [1, 11, 'W+16.5']]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"area score case %d\" % i, 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":"cbb24f94c7d5119ebca72e4b1777b81563e0079ecddb0e81c888c352ea59f1cb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    board, komi = x\n    n = len(board)\n    m = len(board[0])\n    b = sum(row.count('B') for row in board)\n    w = sum(row.count('W') for row in board)\n    seen = set()\n    for r in range(n):\n        for c in range(m):\n            if board[r][c] != '.' or (r, c) in seen:\n                continue\n            stack = [(r, c)]\n            seen.add((r, c))\n            size = 0\n            border = set()\n            while stack:\n                i, j = stack.pop()\n                size += 1\n                for di, dj in ((1, 0), (-1, 0), (0, 1), (0, -1)):\n                    a, d = i + di, j + dj\n                    if 0 <= a < n and 0 <= d < m:\n                        v = board[a][d]\n                        if v == '.':\n                            if (a, d) not in seen:\n                                seen.add((a, d))\n                                stack.append((a, d))\n                        else:\n                            border.add(v)\n            if border == {'B'}:\n                b += size\n            elif border == {'W'}:\n                w += size\n    diff = b * 10 - w * 10 - komi\n    if diff > 0:\n        res = 'B+%d.%d' % (diff // 10, diff % 10)\n    elif diff < 0:\n        res = 'W+%d.%d' % ((-diff) // 10, (-diff) % 10)\n    else:\n        res = 'Draw'\n    return [b, w, res]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['B..W', 'B..W', 'B..W', 'B..W'], 75], [4, 4, 'W+7.5']], [[['BBBB', 'B..B', 'B..B', 'BBBB'], 5], [16, 0, 'B+15.5']], [[['WWW', 'W.W', 'WWW'], 65], [0, 9, 'W+15.5']], [[['B.W', '...', 'W.B'], 75], [2, 2, 'W+7.5']], [[['.B...', 'B....', '.....', '....W', '...W.'], 35], [3, 3, 'W+3.5']], [[['BW.', 'BW.', 'BW.'], 60], [3, 6, 'W+9.0']], [[['.....', '.BBB.', '.B.B.', '.BBB.', '.....'], 70], [25, 0, 'B+18.0']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['.W.B.', 'W.WB.', '.WB..', 'WB...', 'B....'], 0], [16, 8, 'B+8.0']], [[['..W', '.W.', 'W..'], 0], [0, 9, 'W+9.0']], [[['B....B', '......', '..WW..', '..WW..', '......', 'B....B'], 5], [4, 4, 'W+0.5']], [[['.BBW.', 'B.BBB', '...W.', '.B.WB'], 65], [9, 3, 'W+0.5']], [[['BB.W.', 'BB.WW', 'W..WW', '.W...', '.B...'], 75], [5, 8, 'W+10.5']], [[['B..', '..W', '...', '.WW'], 35], [1, 3, 'W+5.5']], [[['...B..', '.B..B.', '..W...', 'B..B..'], 60], [5, 1, 'W+2.0']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['B....B', '......', '..WW..', '..WW..', '......', 'B....B'], 5], [4, 4, 'W+0.5']], [[['WBWWB', 'BB.B.', 'WBWB.', 'WBWBB'], -5], [12, 7, 'B+5.5']], [[['...', '...', '.B.', '.WB', '...', 'B..'], 0], [3, 1, 'B+2.0']], [[['.....', '.W...', 'WW...'], 5], [0, 15, 'W+15.5']], [[['.B.', '.WW', 'BBB', 'WW.'], 65], [4, 4, 'W+6.5']], [[['.B.BB', 'WB...', '.....'], 75], [4, 1, 'W+4.5']], [[['.WBB', 'BW..', '..B.'], 35], [4, 2, 'W+1.5']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['B..', '..W', '...', '.WW'], 35], [1, 3, 'W+5.5']], [[['B..', '.B.', '...', '...', 'B..', 'BB.'], 70], [18, 0, 'B+11.0']], [[['BW.B', '.WWW', 'B.BB', 'WBB.', 'BW.W'], -5], [8, 7, 'B+1.5']], [[['......', '..W...', 'WW.WW.', '......', 'WBW...'], 0], [1, 7, 'W+6.0']], [[['W..W', '.B..', 'B.W.', '.W..', '....'], 5], [2, 4, 'W+2.5']], [[['BWBB.', '.B..B', 'BW..B', 'W.BBW', '...BB'], 65], [13, 4, 'B+2.5']], [[['...W..', '..WBW.', 'W...WW', '.WW..W'], 75], [1, 13, 'W+19.5']]], [[[['...', '...', '...'], 5], [0, 0, 'W+0.5']], [[['WBWWB', 'BB.B.', 'WBWB.', 'WBWBB'], -5], [12, 7, 'B+5.5']], [[['W..B.', 'BB.BB', 'B..B.', 'BBB..', 'B.BBB'], 60], [19, 1, 'B+12.0']], [[['.BBBW.', 'WBBBB.', '.WBB..', 'BBB...', 'BBW..B', '..BW.W'], 70], [18, 6, 'B+5.0']], [[['W..BBB', 'BWB.W.', '.WWWWW', 'W.WBWW'], -5], [6, 13, 'W+6.5']], [[['W..B', '...B', 'WWWW'], 0], [2, 5, 'W+3.0']], [[['W...', 'WBWB', 'WWBW', 'BBB.'], 5], [6, 6, 'W+0.5']], [[['WW..', 'WWW.', 'BWWW'], 65], [1, 11, 'W+16.5']]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"area score case %d\" % i, 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":"Small rectangular toy boards given as strings of B, W and dot; a bounded teaching model of one scoring or bookkeeping rule, not a complete rules engine or server implementation. 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-go-territory-scoring-tt-area-mixed-border-region-ownership","generated_at":"2026-09-29T14:50:15.939477+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Go servers and scoring tools compute this value automatically; a wrong answer changes a game result.","repair":"Credit a region only when its border set equals {B} or equals {W}.","root_cause":"Ownership tests whether a colour appears in the border set instead of requiring the border to be exactly that colour.","sha256":"6a05bce3877a062bfff321cac6e5d5a7e1d4163804fe378c2431d348c8f4e070","title":"Dame bordered by both colours is credited to black · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.695,"exit_code":1,"observations":[{"actual":[9,0,"B+8.5"],"check":"area score case 0","expected":[0,0,"W+0.5"],"passed":false},{"actual":[4,4,"W+7.5"],"check":"area score case 1","expected":[4,4,"W+7.5"],"passed":true},{"actual":[16,0,"B+15.5"],"check":"area score case 2","expected":[16,0,"B+15.5"],"passed":true},{"actual":[0,9,"W+15.5"],"check":"area score case 3","expected":[0,9,"W+15.5"],"passed":true},{"actual":[2,2,"W+7.5"],"check":"area score case 4","expected":[2,2,"W+7.5"],"passed":true},{"actual":[3,3,"W+3.5"],"check":"area score case 5","expected":[3,3,"W+3.5"],"passed":true},{"actual":[3,6,"W+9.0"],"check":"area score case 6","expected":[3,6,"W+9.0"],"passed":true},{"actual":[25,0,"B+18.0"],"check":"area score case 7","expected":[25,0,"B+18.0"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"area score case 0\", \"actual\": [9, 0, \"B+8.5\"], \"expected\": [0, 0, \"W+0.5\"], \"passed\": false}, {\"check\": \"area score case 1\", \"actual\": [4, 4, \"W+7.5\"], \"expected\": [4, 4, \"W+7.5\"], \"passed\": true}, {\"check\": \"area score case 2\", \"actual\": [16, 0, \"B+15.5\"], \"expected\": [16, 0, \"B+15.5\"], \"passed\": true}, {\"check\": \"area score case 3\", \"actual\": [0, 9, \"W+15.5\"], \"expected\": [0, 9, \"W+15.5\"], \"passed\": true}, {\"check\": \"area score case 4\", \"actual\": [2, 2, \"W+7.5\"], \"expected\": [2, 2, \"W+7.5\"], \"passed\": true}, {\"check\": \"area score case 5\", \"actual\": [3, 3, \"W+3.5\"], \"expected\": [3, 3, \"W+3.5\"], \"passed\": true}, {\"check\": \"area score case 6\", \"actual\": [3, 6, \"W+9.0\"], \"expected\": [3, 6, \"W+9.0\"], \"passed\": true}, {\"check\": \"area score case 7\", \"actual\": [25, 0, \"B+18.0\"], \"expected\": [25, 0, \"B+18.0\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.753,"exit_code":1,"observations":[{"actual":[0,0,"W+0.5"],"check":"area score case 0","expected":[0,0,"W+0.5"],"passed":true},{"actual":[12,4,"B+0.5"],"check":"area score case 1","expected":[4,4,"W+7.5"],"passed":false},{"actual":[16,0,"B+15.5"],"check":"area score case 2","expected":[16,0,"B+15.5"],"passed":true},{"actual":[0,9,"W+15.5"],"check":"area score case 3","expected":[0,9,"W+15.5"],"passed":true},{"actual":[7,2,"W+2.5"],"check":"area score case 4","expected":[2,2,"W+7.5"],"passed":false},{"actual":[22,3,"B+15.5"],"check":"area score case 5","expected":[3,3,"W+3.5"],"passed":false},{"actual":[3,6,"W+9.0"],"check":"area score case 6","expected":[3,6,"W+9.0"],"passed":true},{"actual":[25,0,"B+18.0"],"check":"area score case 7","expected":[25,0,"B+18.0"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"area score case 0\", \"actual\": [0, 0, \"W+0.5\"], \"expected\": [0, 0, \"W+0.5\"], \"passed\": true}, {\"check\": \"area score case 1\", \"actual\": [12, 4, \"B+0.5\"], \"expected\": [4, 4, \"W+7.5\"], \"passed\": false}, {\"check\": \"area score case 2\", \"actual\": [16, 0, \"B+15.5\"], \"expected\": [16, 0, \"B+15.5\"], \"passed\": true}, {\"check\": \"area score case 3\", \"actual\": [0, 9, \"W+15.5\"], \"expected\": [0, 9, \"W+15.5\"], \"passed\": true}, {\"check\": \"area score case 4\", \"actual\": [7, 2, \"W+2.5\"], \"expected\": [2, 2, \"W+7.5\"], \"passed\": false}, {\"check\": \"area score case 5\", \"actual\": [22, 3, \"B+15.5\"], \"expected\": [3, 3, \"W+3.5\"], \"passed\": false}, {\"check\": \"area score case 6\", \"actual\": [3, 6, \"W+9.0\"], \"expected\": [3, 6, \"W+9.0\"], \"passed\": true}, {\"check\": \"area score case 7\", \"actual\": [25, 0, \"B+18.0\"], \"expected\": [25, 0, \"B+18.0\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.678,"exit_code":0,"observations":[{"actual":[0,0,"W+0.5"],"check":"area score case 0","expected":[0,0,"W+0.5"],"passed":true},{"actual":[4,4,"W+7.5"],"check":"area score case 1","expected":[4,4,"W+7.5"],"passed":true},{"actual":[16,0,"B+15.5"],"check":"area score case 2","expected":[16,0,"B+15.5"],"passed":true},{"actual":[0,9,"W+15.5"],"check":"area score case 3","expected":[0,9,"W+15.5"],"passed":true},{"actual":[2,2,"W+7.5"],"check":"area score case 4","expected":[2,2,"W+7.5"],"passed":true},{"actual":[3,3,"W+3.5"],"check":"area score case 5","expected":[3,3,"W+3.5"],"passed":true},{"actual":[3,6,"W+9.0"],"check":"area score case 6","expected":[3,6,"W+9.0"],"passed":true},{"actual":[25,0,"B+18.0"],"check":"area score case 7","expected":[25,0,"B+18.0"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"area score case 0\", \"actual\": [0, 0, \"W+0.5\"], \"expected\": [0, 0, \"W+0.5\"], \"passed\": true}, {\"check\": \"area score case 1\", \"actual\": [4, 4, \"W+7.5\"], \"expected\": [4, 4, \"W+7.5\"], \"passed\": true}, {\"check\": \"area score case 2\", \"actual\": [16, 0, \"B+15.5\"], \"expected\": [16, 0, \"B+15.5\"], \"passed\": true}, {\"check\": \"area score case 3\", \"actual\": [0, 9, \"W+15.5\"], \"expected\": [0, 9, \"W+15.5\"], \"passed\": true}, {\"check\": \"area score case 4\", \"actual\": [2, 2, \"W+7.5\"], \"expected\": [2, 2, \"W+7.5\"], \"passed\": true}, {\"check\": \"area score case 5\", \"actual\": [3, 3, \"W+3.5\"], \"expected\": [3, 3, \"W+3.5\"], \"passed\": true}, {\"check\": \"area score case 6\", \"actual\": [3, 6, \"W+9.0\"], \"expected\": [3, 6, \"W+9.0\"], \"passed\": true}, {\"check\": \"area score case 7\", \"actual\": [25, 0, \"B+18.0\"], \"expected\": [25, 0, \"B+18.0\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}