{"abstract":"Ring-shaped islands closed by a single loop arc lose their face.","category":"GIS polygon topology","checks":8,"contract":"Input [nodes, arcs] for a planar, fully noded arc-node graph. arcs are [arc_id, from, to]; the same arc_id may be listed more than once (once per adjacent polygon) and counts once, while distinct ids between the same nodes are distinct parallel arcs. A loop arc (from == to) is an arc. Nodes listed in nodes but used by no arc are isolated nodes. Return [V, E, C, F] with V nodes, E distinct arcs, C connected components and F = E - V + C bounded faces.","evaluation_group":"w2-gis-polygon-topology-arc-node-face-count","failed_approach":"Loop arcs are now counted twice.","family":"w2-gis-polygon-topology-arc-node-face-count-loop-arcs","id":"FA-70741","implementations":{"attempt":{"sha256":"6a9a2ca37c0e54eaa9750cb88365eb9822f2dc67b231c7a68c02c6ee2f4a6d9a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    nodes, arcs = x\n    uniq = {}\n    for aid, u, v in arcs:\n        uniq[aid] = (u, v)\n        if u == v:\n            uniq[-aid] = (u, v)\n    parent = {n: n for n in nodes}\n    for u, v in uniq.values():\n        parent.setdefault(u, u)\n        parent.setdefault(v, v)\n    def find(a):\n        while parent[a] != a:\n            a = parent[a]\n        return a\n    for u, v in uniq.values():\n        ru, rv = find(u), find(v)\n        if ru != rv:\n            parent[ru] = rv\n    V = len(parent)\n    E = len(uniq)\n    C = len({find(n) for n in parent})\n    return [V, E, C, E - V + C]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('control #0', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1]]], [4, 4, 1, 1]), ('control #1', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [14, 1, 3]]], [4, 5, 1, 2]), ('regression #2', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [10, 1, 2], [12, 3, 4]]], [4, 4, 1, 1]), ('regression #3', [[1, 2], [[20, 1, 2], [21, 1, 2]]], [2, 2, 1, 1]), ('regression #4', [[1, 2], [[20, 1, 2], [21, 2, 1], [22, 1, 2]]], [2, 3, 1, 2]), ('regression #5', [[1, 2, 3, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [4, 3, 2, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2])], [('regression #3', [[1, 2], [[20, 1, 2], [21, 1, 2]]], [2, 2, 1, 1]), ('regression #4', [[1, 2], [[20, 1, 2], [21, 2, 1], [22, 1, 2]]], [2, 3, 1, 2]), ('regression #5', [[1, 2, 3, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [4, 3, 2, 1]), ('regression #6', [[1, 2, 3, 8, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [5, 3, 3, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('regression #9', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4]]], [6, 6, 2, 2]), ('regression #10', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4], [7, 3, 4]]], [6, 7, 1, 2])], [('regression #6', [[1, 2, 3, 8, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [5, 3, 3, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('regression #9', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4]]], [6, 6, 2, 2]), ('regression #10', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4], [7, 3, 4]]], [6, 7, 1, 2]), ('boundary #11', [[1], []], [1, 0, 1, 0]), ('boundary #12', [[], []], [0, 0, 0, 0]), ('control #13', [[1, 2, 3], [[1, 1, 2], [2, 2, 3]]], [3, 2, 1, 0])], [('control #0', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1]]], [4, 4, 1, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('boundary #11', [[1], []], [1, 0, 1, 0]), ('boundary #12', [[], []], [0, 0, 0, 0]), ('control #13', [[1, 2, 3], [[1, 1, 2], [2, 2, 3]]], [3, 2, 1, 0]), ('regression #14', [[1, 2, 3, 4], [[1, 1, 2], [2, 3, 4], [3, 2, 1], [4, 4, 3]]], [4, 4, 2, 2]), ('control #15', [[1, 2, 3, 4, 5], [[1, 1, 2], [2, 2, 3], [3, 3, 4], [4, 4, 5], [5, 5, 1], [6, 1, 3], [7, 3, 5]]], [5, 7, 1, 3])], [('control #0', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1]]], [4, 4, 1, 1]), ('control #1', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [14, 1, 3]]], [4, 5, 1, 2]), ('regression #2', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [10, 1, 2], [12, 3, 4]]], [4, 4, 1, 1]), ('regression #3', [[1, 2], [[20, 1, 2], [21, 1, 2]]], [2, 2, 1, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('regression #14', [[1, 2, 3, 4], [[1, 1, 2], [2, 3, 4], [3, 2, 1], [4, 4, 3]]], [4, 4, 2, 2]), ('control #15', [[1, 2, 3, 4, 5], [[1, 1, 2], [2, 2, 3], [3, 3, 4], [4, 4, 5], [5, 5, 1], [6, 1, 3], [7, 3, 5]]], [5, 7, 1, 3])]]\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":"5f5594148042c8eeb1e5f914ee7db5ade22b72d51c339344d371477385b38dad","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    nodes, arcs = x\n    uniq = {}\n    for aid, u, v in arcs:\n        if u != v:\n            uniq[aid] = (u, v)\n    parent = {n: n for n in nodes}\n    for u, v in uniq.values():\n        parent.setdefault(u, u)\n        parent.setdefault(v, v)\n    def find(a):\n        while parent[a] != a:\n            a = parent[a]\n        return a\n    for u, v in uniq.values():\n        ru, rv = find(u), find(v)\n        if ru != rv:\n            parent[ru] = rv\n    V = len(parent)\n    E = len(uniq)\n    C = len({find(n) for n in parent})\n    return [V, E, C, E - V + C]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('control #0', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1]]], [4, 4, 1, 1]), ('control #1', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [14, 1, 3]]], [4, 5, 1, 2]), ('regression #2', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [10, 1, 2], [12, 3, 4]]], [4, 4, 1, 1]), ('regression #3', [[1, 2], [[20, 1, 2], [21, 1, 2]]], [2, 2, 1, 1]), ('regression #4', [[1, 2], [[20, 1, 2], [21, 2, 1], [22, 1, 2]]], [2, 3, 1, 2]), ('regression #5', [[1, 2, 3, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [4, 3, 2, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2])], [('regression #3', [[1, 2], [[20, 1, 2], [21, 1, 2]]], [2, 2, 1, 1]), ('regression #4', [[1, 2], [[20, 1, 2], [21, 2, 1], [22, 1, 2]]], [2, 3, 1, 2]), ('regression #5', [[1, 2, 3, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [4, 3, 2, 1]), ('regression #6', [[1, 2, 3, 8, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [5, 3, 3, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('regression #9', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4]]], [6, 6, 2, 2]), ('regression #10', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4], [7, 3, 4]]], [6, 7, 1, 2])], [('regression #6', [[1, 2, 3, 8, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [5, 3, 3, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('regression #9', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4]]], [6, 6, 2, 2]), ('regression #10', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4], [7, 3, 4]]], [6, 7, 1, 2]), ('boundary #11', [[1], []], [1, 0, 1, 0]), ('boundary #12', [[], []], [0, 0, 0, 0]), ('control #13', [[1, 2, 3], [[1, 1, 2], [2, 2, 3]]], [3, 2, 1, 0])], [('control #0', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1]]], [4, 4, 1, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('boundary #11', [[1], []], [1, 0, 1, 0]), ('boundary #12', [[], []], [0, 0, 0, 0]), ('control #13', [[1, 2, 3], [[1, 1, 2], [2, 2, 3]]], [3, 2, 1, 0]), ('regression #14', [[1, 2, 3, 4], [[1, 1, 2], [2, 3, 4], [3, 2, 1], [4, 4, 3]]], [4, 4, 2, 2]), ('control #15', [[1, 2, 3, 4, 5], [[1, 1, 2], [2, 2, 3], [3, 3, 4], [4, 4, 5], [5, 5, 1], [6, 1, 3], [7, 3, 5]]], [5, 7, 1, 3])], [('control #0', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1]]], [4, 4, 1, 1]), ('control #1', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [14, 1, 3]]], [4, 5, 1, 2]), ('regression #2', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [10, 1, 2], [12, 3, 4]]], [4, 4, 1, 1]), ('regression #3', [[1, 2], [[20, 1, 2], [21, 1, 2]]], [2, 2, 1, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('regression #14', [[1, 2, 3, 4], [[1, 1, 2], [2, 3, 4], [3, 2, 1], [4, 4, 3]]], [4, 4, 2, 2]), ('control #15', [[1, 2, 3, 4, 5], [[1, 1, 2], [2, 2, 3], [3, 3, 4], [4, 4, 5], [5, 5, 1], [6, 1, 3], [7, 3, 5]]], [5, 7, 1, 3])]]\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":"13bc78076524e66aac972c23b7dd670bca0b9ab88954b496de64e03c556a8ce1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    nodes, arcs = x\n    uniq = {}\n    for aid, u, v in arcs:\n        uniq[aid] = (u, v)\n    parent = {n: n for n in nodes}\n    for u, v in uniq.values():\n        parent.setdefault(u, u)\n        parent.setdefault(v, v)\n    def find(a):\n        while parent[a] != a:\n            a = parent[a]\n        return a\n    for u, v in uniq.values():\n        ru, rv = find(u), find(v)\n        if ru != rv:\n            parent[ru] = rv\n    V = len(parent)\n    E = len(uniq)\n    C = len({find(n) for n in parent})\n    return [V, E, C, E - V + C]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('control #0', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1]]], [4, 4, 1, 1]), ('control #1', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [14, 1, 3]]], [4, 5, 1, 2]), ('regression #2', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [10, 1, 2], [12, 3, 4]]], [4, 4, 1, 1]), ('regression #3', [[1, 2], [[20, 1, 2], [21, 1, 2]]], [2, 2, 1, 1]), ('regression #4', [[1, 2], [[20, 1, 2], [21, 2, 1], [22, 1, 2]]], [2, 3, 1, 2]), ('regression #5', [[1, 2, 3, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [4, 3, 2, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2])], [('regression #3', [[1, 2], [[20, 1, 2], [21, 1, 2]]], [2, 2, 1, 1]), ('regression #4', [[1, 2], [[20, 1, 2], [21, 2, 1], [22, 1, 2]]], [2, 3, 1, 2]), ('regression #5', [[1, 2, 3, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [4, 3, 2, 1]), ('regression #6', [[1, 2, 3, 8, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [5, 3, 3, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('regression #9', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4]]], [6, 6, 2, 2]), ('regression #10', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4], [7, 3, 4]]], [6, 7, 1, 2])], [('regression #6', [[1, 2, 3, 8, 9], [[10, 1, 2], [11, 2, 3], [12, 3, 1]]], [5, 3, 3, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('regression #9', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4]]], [6, 6, 2, 2]), ('regression #10', [[1, 2, 3, 4, 5, 6], [[1, 1, 2], [2, 2, 3], [3, 3, 1], [4, 4, 5], [5, 5, 6], [6, 6, 4], [7, 3, 4]]], [6, 7, 1, 2]), ('boundary #11', [[1], []], [1, 0, 1, 0]), ('boundary #12', [[], []], [0, 0, 0, 0]), ('control #13', [[1, 2, 3], [[1, 1, 2], [2, 2, 3]]], [3, 2, 1, 0])], [('control #0', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1]]], [4, 4, 1, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('boundary #11', [[1], []], [1, 0, 1, 0]), ('boundary #12', [[], []], [0, 0, 0, 0]), ('control #13', [[1, 2, 3], [[1, 1, 2], [2, 2, 3]]], [3, 2, 1, 0]), ('regression #14', [[1, 2, 3, 4], [[1, 1, 2], [2, 3, 4], [3, 2, 1], [4, 4, 3]]], [4, 4, 2, 2]), ('control #15', [[1, 2, 3, 4, 5], [[1, 1, 2], [2, 2, 3], [3, 3, 4], [4, 4, 5], [5, 5, 1], [6, 1, 3], [7, 3, 5]]], [5, 7, 1, 3])], [('control #0', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1]]], [4, 4, 1, 1]), ('control #1', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [14, 1, 3]]], [4, 5, 1, 2]), ('regression #2', [[1, 2, 3, 4], [[10, 1, 2], [11, 2, 3], [12, 3, 4], [13, 4, 1], [10, 1, 2], [12, 3, 4]]], [4, 4, 1, 1]), ('regression #3', [[1, 2], [[20, 1, 2], [21, 1, 2]]], [2, 2, 1, 1]), ('regression #7', [[5], [[30, 5, 5]]], [1, 1, 1, 1]), ('regression #8', [[5, 6], [[30, 5, 5], [31, 5, 6], [32, 6, 6]]], [2, 3, 1, 2]), ('regression #14', [[1, 2, 3, 4], [[1, 1, 2], [2, 3, 4], [3, 2, 1], [4, 4, 3]]], [4, 4, 2, 2]), ('control #15', [[1, 2, 3, 4, 5], [[1, 1, 2], [2, 2, 3], [3, 3, 4], [4, 4, 5], [5, 5, 1], [6, 1, 3], [7, 3, 5]]], [5, 7, 1, 3])]]\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 toy contract on a bounded input domain; results are rounded as stated and no conformance with any published standard or library is claimed. 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-gis-polygon-topology-arc-node-face-count-loop-arcs","generated_at":"2026-09-29T14:48:23.531009+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Topology builders check face counts against Euler characteristic to detect missing or doubled arcs after edits.","repair":"At the loop arcs step restore `for aid, u, v in arcs:     uniq[aid] = (u, v)`, leaving the rest of the model unchanged.","root_cause":"Loop arcs are discarded as degenerate.","sha256":"6cd98c33ac68c28739a822032c714a216ca2f160965b039164579d4e8153fdbf","title":"Bounded face count of an arc-node topology: loop arcs · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":36.491,"exit_code":1,"observations":[{"actual":[4,4,1,1],"check":"control #0","expected":[4,4,1,1],"passed":true},{"actual":[4,5,1,2],"check":"control #1","expected":[4,5,1,2],"passed":true},{"actual":[4,4,1,1],"check":"regression #2","expected":[4,4,1,1],"passed":true},{"actual":[2,2,1,1],"check":"regression #3","expected":[2,2,1,1],"passed":true},{"actual":[2,3,1,2],"check":"regression #4","expected":[2,3,1,2],"passed":true},{"actual":[4,3,2,1],"check":"regression #5","expected":[4,3,2,1],"passed":true},{"actual":[1,2,1,2],"check":"regression #7","expected":[1,1,1,1],"passed":false},{"actual":[2,5,1,4],"check":"regression #8","expected":[2,3,1,2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control #0\", \"actual\": [4, 4, 1, 1], \"expected\": [4, 4, 1, 1], \"passed\": true}, {\"check\": \"control #1\", \"actual\": [4, 5, 1, 2], \"expected\": [4, 5, 1, 2], \"passed\": true}, {\"check\": \"regression #2\", \"actual\": [4, 4, 1, 1], \"expected\": [4, 4, 1, 1], \"passed\": true}, {\"check\": \"regression #3\", \"actual\": [2, 2, 1, 1], \"expected\": [2, 2, 1, 1], \"passed\": true}, {\"check\": \"regression #4\", \"actual\": [2, 3, 1, 2], \"expected\": [2, 3, 1, 2], \"passed\": true}, {\"check\": \"regression #5\", \"actual\": [4, 3, 2, 1], \"expected\": [4, 3, 2, 1], \"passed\": true}, {\"check\": \"regression #7\", \"actual\": [1, 2, 1, 2], \"expected\": [1, 1, 1, 1], \"passed\": false}, {\"check\": \"regression #8\", \"actual\": [2, 5, 1, 4], \"expected\": [2, 3, 1, 2], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.338,"exit_code":1,"observations":[{"actual":[4,4,1,1],"check":"control #0","expected":[4,4,1,1],"passed":true},{"actual":[4,5,1,2],"check":"control #1","expected":[4,5,1,2],"passed":true},{"actual":[4,4,1,1],"check":"regression #2","expected":[4,4,1,1],"passed":true},{"actual":[2,2,1,1],"check":"regression #3","expected":[2,2,1,1],"passed":true},{"actual":[2,3,1,2],"check":"regression #4","expected":[2,3,1,2],"passed":true},{"actual":[4,3,2,1],"check":"regression #5","expected":[4,3,2,1],"passed":true},{"actual":[1,0,1,0],"check":"regression #7","expected":[1,1,1,1],"passed":false},{"actual":[2,1,1,0],"check":"regression #8","expected":[2,3,1,2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control #0\", \"actual\": [4, 4, 1, 1], \"expected\": [4, 4, 1, 1], \"passed\": true}, {\"check\": \"control #1\", \"actual\": [4, 5, 1, 2], \"expected\": [4, 5, 1, 2], \"passed\": true}, {\"check\": \"regression #2\", \"actual\": [4, 4, 1, 1], \"expected\": [4, 4, 1, 1], \"passed\": true}, {\"check\": \"regression #3\", \"actual\": [2, 2, 1, 1], \"expected\": [2, 2, 1, 1], \"passed\": true}, {\"check\": \"regression #4\", \"actual\": [2, 3, 1, 2], \"expected\": [2, 3, 1, 2], \"passed\": true}, {\"check\": \"regression #5\", \"actual\": [4, 3, 2, 1], \"expected\": [4, 3, 2, 1], \"passed\": true}, {\"check\": \"regression #7\", \"actual\": [1, 0, 1, 0], \"expected\": [1, 1, 1, 1], \"passed\": false}, {\"check\": \"regression #8\", \"actual\": [2, 1, 1, 0], \"expected\": [2, 3, 1, 2], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.382,"exit_code":0,"observations":[{"actual":[4,4,1,1],"check":"control #0","expected":[4,4,1,1],"passed":true},{"actual":[4,5,1,2],"check":"control #1","expected":[4,5,1,2],"passed":true},{"actual":[4,4,1,1],"check":"regression #2","expected":[4,4,1,1],"passed":true},{"actual":[2,2,1,1],"check":"regression #3","expected":[2,2,1,1],"passed":true},{"actual":[2,3,1,2],"check":"regression #4","expected":[2,3,1,2],"passed":true},{"actual":[4,3,2,1],"check":"regression #5","expected":[4,3,2,1],"passed":true},{"actual":[1,1,1,1],"check":"regression #7","expected":[1,1,1,1],"passed":true},{"actual":[2,3,1,2],"check":"regression #8","expected":[2,3,1,2],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control #0\", \"actual\": [4, 4, 1, 1], \"expected\": [4, 4, 1, 1], \"passed\": true}, {\"check\": \"control #1\", \"actual\": [4, 5, 1, 2], \"expected\": [4, 5, 1, 2], \"passed\": true}, {\"check\": \"regression #2\", \"actual\": [4, 4, 1, 1], \"expected\": [4, 4, 1, 1], \"passed\": true}, {\"check\": \"regression #3\", \"actual\": [2, 2, 1, 1], \"expected\": [2, 2, 1, 1], \"passed\": true}, {\"check\": \"regression #4\", \"actual\": [2, 3, 1, 2], \"expected\": [2, 3, 1, 2], \"passed\": true}, {\"check\": \"regression #5\", \"actual\": [4, 3, 2, 1], \"expected\": [4, 3, 2, 1], \"passed\": true}, {\"check\": \"regression #7\", \"actual\": [1, 1, 1, 1], \"expected\": [1, 1, 1, 1], \"passed\": true}, {\"check\": \"regression #8\", \"actual\": [2, 3, 1, 2], \"expected\": [2, 3, 1, 2], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}