{"abstract":"Any solid with a ring loop is flagged as broken.","category":"Mesh topology invariants","checks":7,"contract":"Input: list of Euler operator names applied to counts [V,E,F,L,S,G] starting at zero. Deltas: mvfs(+V,+F,+L,+S), mev(+V,+E), mef(+E,+F,+L), kemr(-E,+L), mekr(+E,-L), kfmrh(-F,+G) and their inverses kvfs, kev, kef, mfkrh. After each op: an unknown name returns [\"unknown\", i]; a negative count or fewer loops than faces returns [\"invalid\", i]; a violated Euler-Poincare relation V-E+F-(L-F)=2(S-G) returns [\"broken-invariant\", i]. Return the final counts.","evaluation_group":"w2-mesh_topology_invariants-euler-operators","failed_approach":"Dropping the genus term rejects every solid with a through-hole.","family":"w2-mesh_topology_invariants-euler-operators-euler-poincare-relation","id":"FA-88701","implementations":{"attempt":{"sha256":"a7eae164c257ef60f4535b8fe05c424c02abd9db5042977895b50f8d32852ba6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    ops=x\n    V=E=Fc=L=S=G=0\n    D={'mvfs':(1,0,1,1,1,0),'kvfs':(-1,0,-1,-1,-1,0),'mev':(1,1,0,0,0,0),'kev':(-1,-1,0,0,0,0),\n       'mef':(0,1,1,1,0,0),'kef':(0,-1,-1,-1,0,0),'kemr':(0,-1,0,1,0,0),'mekr':(0,1,0,-1,0,0),\n       'kfmrh':(0,0,-1,0,0,1),'mfkrh':(0,0,1,0,0,-1)}\n    for i,op in enumerate(ops):\n        if op not in D: return ['unknown',i]\n        d=D[op]\n        V,E,Fc,L,S,G=V+d[0],E+d[1],Fc+d[2],L+d[3],S+d[4],G+d[5]\n        if min(V,E,Fc,L,S,G)<0 or L<Fc: return ['invalid',i]\n        if V-E+2*Fc-L!=2*S: return ['broken-invariant',i]\n    return [V,E,Fc,L,S,G]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['triangle lamina', [['mvfs', 'mev', 'mev', 'mef']], [3, 3, 2, 2, 1, 0]], ['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['square with hole ring', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr']], [7, 7, 3, 4, 1, 0]], ['torus handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh']], [7, 7, 2, 4, 1, 1]], ['undo handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mfkrh']], [7, 7, 3, 4, 1, 0]], ['ring then remake edge', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'kemr', 'mekr']], [4, 4, 2, 2, 1, 0]], ['kill edge on empty', [['mvfs', 'kev']], ['invalid', 1]]], [['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['undo handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mfkrh']], [7, 7, 3, 4, 1, 0]], ['ring then remake edge', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'kemr', 'mekr']], [4, 4, 2, 2, 1, 0]], ['kill edge on empty', [['mvfs', 'kev']], ['invalid', 1]], ['unknown op', [['mvfs', 'mev', 'split']], ['unknown', 2]], ['uppercase op', [['mvfs', 'MEV']], ['unknown', 1]], ['loop deficit', [['mvfs', 'mev', 'mekr']], ['invalid', 2]]], [['square with hole ring', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr']], [7, 7, 3, 4, 1, 0]], ['unknown op', [['mvfs', 'mev', 'split']], ['unknown', 2]], ['uppercase op', [['mvfs', 'MEV']], ['unknown', 1]], ['loop deficit', [['mvfs', 'mev', 'mekr']], ['invalid', 2]], ['two shells', [['mvfs', 'mev', 'mvfs', 'mev', 'mev', 'mef']], [5, 4, 3, 3, 2, 0]], ['face without loop', [['mvfs', 'mfkrh']], ['invalid', 1]], ['hole into lamina', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mev']], [7, 7, 2, 4, 1, 1]]], [['triangle lamina', [['mvfs', 'mev', 'mev', 'mef']], [3, 3, 2, 2, 1, 0]], ['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['torus handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh']], [7, 7, 2, 4, 1, 1]], ['two shells', [['mvfs', 'mev', 'mvfs', 'mev', 'mev', 'mef']], [5, 4, 3, 3, 2, 0]], ['face without loop', [['mvfs', 'mfkrh']], ['invalid', 1]], ['build and kill', [['mvfs', 'mev', 'mev', 'mef', 'kef', 'kev', 'kev', 'kvfs']], [0, 0, 0, 0, 0, 0]], ['hole into lamina', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mev']], [7, 7, 2, 4, 1, 1]]], [['triangle lamina', [['mvfs', 'mev', 'mev', 'mef']], [3, 3, 2, 2, 1, 0]], ['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['square with hole ring', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr']], [7, 7, 3, 4, 1, 0]], ['torus handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh']], [7, 7, 2, 4, 1, 1]], ['undo handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mfkrh']], [7, 7, 3, 4, 1, 0]], ['ring then remake edge', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'kemr', 'mekr']], [4, 4, 2, 2, 1, 0]], ['hole into lamina', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mev']], [7, 7, 2, 4, 1, 1]]]]\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":"135dd16a7ab64695f939048ffd82de1ff9dc2faa394dac72019798da7ebe90d1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    ops=x\n    V=E=Fc=L=S=G=0\n    D={'mvfs':(1,0,1,1,1,0),'kvfs':(-1,0,-1,-1,-1,0),'mev':(1,1,0,0,0,0),'kev':(-1,-1,0,0,0,0),\n       'mef':(0,1,1,1,0,0),'kef':(0,-1,-1,-1,0,0),'kemr':(0,-1,0,1,0,0),'mekr':(0,1,0,-1,0,0),\n       'kfmrh':(0,0,-1,0,0,1),'mfkrh':(0,0,1,0,0,-1)}\n    for i,op in enumerate(ops):\n        if op not in D: return ['unknown',i]\n        d=D[op]\n        V,E,Fc,L,S,G=V+d[0],E+d[1],Fc+d[2],L+d[3],S+d[4],G+d[5]\n        if min(V,E,Fc,L,S,G)<0 or L<Fc: return ['invalid',i]\n        if V-E+Fc-L!=2*(S-G): return ['broken-invariant',i]\n    return [V,E,Fc,L,S,G]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['triangle lamina', [['mvfs', 'mev', 'mev', 'mef']], [3, 3, 2, 2, 1, 0]], ['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['square with hole ring', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr']], [7, 7, 3, 4, 1, 0]], ['torus handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh']], [7, 7, 2, 4, 1, 1]], ['undo handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mfkrh']], [7, 7, 3, 4, 1, 0]], ['ring then remake edge', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'kemr', 'mekr']], [4, 4, 2, 2, 1, 0]], ['kill edge on empty', [['mvfs', 'kev']], ['invalid', 1]]], [['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['undo handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mfkrh']], [7, 7, 3, 4, 1, 0]], ['ring then remake edge', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'kemr', 'mekr']], [4, 4, 2, 2, 1, 0]], ['kill edge on empty', [['mvfs', 'kev']], ['invalid', 1]], ['unknown op', [['mvfs', 'mev', 'split']], ['unknown', 2]], ['uppercase op', [['mvfs', 'MEV']], ['unknown', 1]], ['loop deficit', [['mvfs', 'mev', 'mekr']], ['invalid', 2]]], [['square with hole ring', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr']], [7, 7, 3, 4, 1, 0]], ['unknown op', [['mvfs', 'mev', 'split']], ['unknown', 2]], ['uppercase op', [['mvfs', 'MEV']], ['unknown', 1]], ['loop deficit', [['mvfs', 'mev', 'mekr']], ['invalid', 2]], ['two shells', [['mvfs', 'mev', 'mvfs', 'mev', 'mev', 'mef']], [5, 4, 3, 3, 2, 0]], ['face without loop', [['mvfs', 'mfkrh']], ['invalid', 1]], ['hole into lamina', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mev']], [7, 7, 2, 4, 1, 1]]], [['triangle lamina', [['mvfs', 'mev', 'mev', 'mef']], [3, 3, 2, 2, 1, 0]], ['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['torus handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh']], [7, 7, 2, 4, 1, 1]], ['two shells', [['mvfs', 'mev', 'mvfs', 'mev', 'mev', 'mef']], [5, 4, 3, 3, 2, 0]], ['face without loop', [['mvfs', 'mfkrh']], ['invalid', 1]], ['build and kill', [['mvfs', 'mev', 'mev', 'mef', 'kef', 'kev', 'kev', 'kvfs']], [0, 0, 0, 0, 0, 0]], ['hole into lamina', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mev']], [7, 7, 2, 4, 1, 1]]], [['triangle lamina', [['mvfs', 'mev', 'mev', 'mef']], [3, 3, 2, 2, 1, 0]], ['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['square with hole ring', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr']], [7, 7, 3, 4, 1, 0]], ['torus handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh']], [7, 7, 2, 4, 1, 1]], ['undo handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mfkrh']], [7, 7, 3, 4, 1, 0]], ['ring then remake edge', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'kemr', 'mekr']], [4, 4, 2, 2, 1, 0]], ['hole into lamina', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mev']], [7, 7, 2, 4, 1, 1]]]]\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":"3e6d8424ff44c6e8fd8b077545842e3e93092907e124fe4ef612d5ed81ca1668","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    ops=x\n    V=E=Fc=L=S=G=0\n    D={'mvfs':(1,0,1,1,1,0),'kvfs':(-1,0,-1,-1,-1,0),'mev':(1,1,0,0,0,0),'kev':(-1,-1,0,0,0,0),\n       'mef':(0,1,1,1,0,0),'kef':(0,-1,-1,-1,0,0),'kemr':(0,-1,0,1,0,0),'mekr':(0,1,0,-1,0,0),\n       'kfmrh':(0,0,-1,0,0,1),'mfkrh':(0,0,1,0,0,-1)}\n    for i,op in enumerate(ops):\n        if op not in D: return ['unknown',i]\n        d=D[op]\n        V,E,Fc,L,S,G=V+d[0],E+d[1],Fc+d[2],L+d[3],S+d[4],G+d[5]\n        if min(V,E,Fc,L,S,G)<0 or L<Fc: return ['invalid',i]\n        if V-E+Fc-(L-Fc)!=2*(S-G): return ['broken-invariant',i]\n    return [V,E,Fc,L,S,G]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['triangle lamina', [['mvfs', 'mev', 'mev', 'mef']], [3, 3, 2, 2, 1, 0]], ['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['square with hole ring', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr']], [7, 7, 3, 4, 1, 0]], ['torus handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh']], [7, 7, 2, 4, 1, 1]], ['undo handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mfkrh']], [7, 7, 3, 4, 1, 0]], ['ring then remake edge', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'kemr', 'mekr']], [4, 4, 2, 2, 1, 0]], ['kill edge on empty', [['mvfs', 'kev']], ['invalid', 1]]], [['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['undo handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mfkrh']], [7, 7, 3, 4, 1, 0]], ['ring then remake edge', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'kemr', 'mekr']], [4, 4, 2, 2, 1, 0]], ['kill edge on empty', [['mvfs', 'kev']], ['invalid', 1]], ['unknown op', [['mvfs', 'mev', 'split']], ['unknown', 2]], ['uppercase op', [['mvfs', 'MEV']], ['unknown', 1]], ['loop deficit', [['mvfs', 'mev', 'mekr']], ['invalid', 2]]], [['square with hole ring', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr']], [7, 7, 3, 4, 1, 0]], ['unknown op', [['mvfs', 'mev', 'split']], ['unknown', 2]], ['uppercase op', [['mvfs', 'MEV']], ['unknown', 1]], ['loop deficit', [['mvfs', 'mev', 'mekr']], ['invalid', 2]], ['two shells', [['mvfs', 'mev', 'mvfs', 'mev', 'mev', 'mef']], [5, 4, 3, 3, 2, 0]], ['face without loop', [['mvfs', 'mfkrh']], ['invalid', 1]], ['hole into lamina', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mev']], [7, 7, 2, 4, 1, 1]]], [['triangle lamina', [['mvfs', 'mev', 'mev', 'mef']], [3, 3, 2, 2, 1, 0]], ['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['torus handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh']], [7, 7, 2, 4, 1, 1]], ['two shells', [['mvfs', 'mev', 'mvfs', 'mev', 'mev', 'mef']], [5, 4, 3, 3, 2, 0]], ['face without loop', [['mvfs', 'mfkrh']], ['invalid', 1]], ['build and kill', [['mvfs', 'mev', 'mev', 'mef', 'kef', 'kev', 'kev', 'kvfs']], [0, 0, 0, 0, 0, 0]], ['hole into lamina', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mev']], [7, 7, 2, 4, 1, 1]]], [['triangle lamina', [['mvfs', 'mev', 'mev', 'mef']], [3, 3, 2, 2, 1, 0]], ['tetrahedron', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mef', 'mef']], [4, 6, 4, 4, 1, 0]], ['square with hole ring', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr']], [7, 7, 3, 4, 1, 0]], ['torus handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh']], [7, 7, 2, 4, 1, 1]], ['undo handle', [['mvfs', 'mev', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mfkrh']], [7, 7, 3, 4, 1, 0]], ['ring then remake edge', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'kemr', 'mekr']], [4, 4, 2, 2, 1, 0]], ['hole into lamina', [['mvfs', 'mev', 'mev', 'mef', 'mev', 'mev', 'mev', 'mef', 'kemr', 'kfmrh', 'mev']], [7, 7, 2, 4, 1, 1]]]]\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":"Pure combinatorial teaching model over integer face lists with a stipulated contract; no geometry kernel or file format is implied. 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-mesh_topology_invariants-euler-operators-euler-poincare-relation","generated_at":"2026-09-29T14:51:10.601820+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Mesh processing pipelines (remeshing, export, simulation, printing) trust these topological counts and adjacency answers; a wrong invariant silently accepts broken meshes or rejects valid ones.","repair":"Check V - E + F - (L - F) = 2(S - G).","root_cause":"The relation is checked as V-E+F-L instead of V-E+F-(L-F).","sha256":"81a189f429c42b393304efe4c078be28776bf7830704073f72bea0b7465929a5","title":"Euler-Poincare check ignores inner rings · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.565,"exit_code":1,"observations":[{"actual":[3,3,2,2,1,0],"check":"triangle lamina","expected":[3,3,2,2,1,0],"passed":true},{"actual":[4,6,4,4,1,0],"check":"tetrahedron","expected":[4,6,4,4,1,0],"passed":true},{"actual":[7,7,3,4,1,0],"check":"square with hole ring","expected":[7,7,3,4,1,0],"passed":true},{"actual":["broken-invariant",10],"check":"torus handle","expected":[7,7,2,4,1,1],"passed":false},{"actual":["broken-invariant",10],"check":"undo handle","expected":[7,7,3,4,1,0],"passed":false},{"actual":[4,4,2,2,1,0],"check":"ring then remake edge","expected":[4,4,2,2,1,0],"passed":true},{"actual":["invalid",1],"check":"kill edge on empty","expected":["invalid",1],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"triangle lamina\", \"actual\": [3, 3, 2, 2, 1, 0], \"expected\": [3, 3, 2, 2, 1, 0], \"passed\": true}, {\"check\": \"tetrahedron\", \"actual\": [4, 6, 4, 4, 1, 0], \"expected\": [4, 6, 4, 4, 1, 0], \"passed\": true}, {\"check\": \"square with hole ring\", \"actual\": [7, 7, 3, 4, 1, 0], \"expected\": [7, 7, 3, 4, 1, 0], \"passed\": true}, {\"check\": \"torus handle\", \"actual\": [\"broken-invariant\", 10], \"expected\": [7, 7, 2, 4, 1, 1], \"passed\": false}, {\"check\": \"undo handle\", \"actual\": [\"broken-invariant\", 10], \"expected\": [7, 7, 3, 4, 1, 0], \"passed\": false}, {\"check\": \"ring then remake edge\", \"actual\": [4, 4, 2, 2, 1, 0], \"expected\": [4, 4, 2, 2, 1, 0], \"passed\": true}, {\"check\": \"kill edge on empty\", \"actual\": [\"invalid\", 1], \"expected\": [\"invalid\", 1], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.994,"exit_code":1,"observations":[{"actual":["broken-invariant",0],"check":"triangle lamina","expected":[3,3,2,2,1,0],"passed":false},{"actual":["broken-invariant",0],"check":"tetrahedron","expected":[4,6,4,4,1,0],"passed":false},{"actual":["broken-invariant",0],"check":"square with hole ring","expected":[7,7,3,4,1,0],"passed":false},{"actual":["broken-invariant",0],"check":"torus handle","expected":[7,7,2,4,1,1],"passed":false},{"actual":["broken-invariant",0],"check":"undo handle","expected":[7,7,3,4,1,0],"passed":false},{"actual":["broken-invariant",0],"check":"ring then remake edge","expected":[4,4,2,2,1,0],"passed":false},{"actual":["broken-invariant",0],"check":"kill edge on empty","expected":["invalid",1],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"triangle lamina\", \"actual\": [\"broken-invariant\", 0], \"expected\": [3, 3, 2, 2, 1, 0], \"passed\": false}, {\"check\": \"tetrahedron\", \"actual\": [\"broken-invariant\", 0], \"expected\": [4, 6, 4, 4, 1, 0], \"passed\": false}, {\"check\": \"square with hole ring\", \"actual\": [\"broken-invariant\", 0], \"expected\": [7, 7, 3, 4, 1, 0], \"passed\": false}, {\"check\": \"torus handle\", \"actual\": [\"broken-invariant\", 0], \"expected\": [7, 7, 2, 4, 1, 1], \"passed\": false}, {\"check\": \"undo handle\", \"actual\": [\"broken-invariant\", 0], \"expected\": [7, 7, 3, 4, 1, 0], \"passed\": false}, {\"check\": \"ring then remake edge\", \"actual\": [\"broken-invariant\", 0], \"expected\": [4, 4, 2, 2, 1, 0], \"passed\": false}, {\"check\": \"kill edge on empty\", \"actual\": [\"broken-invariant\", 0], \"expected\": [\"invalid\", 1], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.91,"exit_code":0,"observations":[{"actual":[3,3,2,2,1,0],"check":"triangle lamina","expected":[3,3,2,2,1,0],"passed":true},{"actual":[4,6,4,4,1,0],"check":"tetrahedron","expected":[4,6,4,4,1,0],"passed":true},{"actual":[7,7,3,4,1,0],"check":"square with hole ring","expected":[7,7,3,4,1,0],"passed":true},{"actual":[7,7,2,4,1,1],"check":"torus handle","expected":[7,7,2,4,1,1],"passed":true},{"actual":[7,7,3,4,1,0],"check":"undo handle","expected":[7,7,3,4,1,0],"passed":true},{"actual":[4,4,2,2,1,0],"check":"ring then remake edge","expected":[4,4,2,2,1,0],"passed":true},{"actual":["invalid",1],"check":"kill edge on empty","expected":["invalid",1],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"triangle lamina\", \"actual\": [3, 3, 2, 2, 1, 0], \"expected\": [3, 3, 2, 2, 1, 0], \"passed\": true}, {\"check\": \"tetrahedron\", \"actual\": [4, 6, 4, 4, 1, 0], \"expected\": [4, 6, 4, 4, 1, 0], \"passed\": true}, {\"check\": \"square with hole ring\", \"actual\": [7, 7, 3, 4, 1, 0], \"expected\": [7, 7, 3, 4, 1, 0], \"passed\": true}, {\"check\": \"torus handle\", \"actual\": [7, 7, 2, 4, 1, 1], \"expected\": [7, 7, 2, 4, 1, 1], \"passed\": true}, {\"check\": \"undo handle\", \"actual\": [7, 7, 3, 4, 1, 0], \"expected\": [7, 7, 3, 4, 1, 0], \"passed\": true}, {\"check\": \"ring then remake edge\", \"actual\": [4, 4, 2, 2, 1, 0], \"expected\": [4, 4, 2, 2, 1, 0], \"passed\": true}, {\"check\": \"kill edge on empty\", \"actual\": [\"invalid\", 1], \"expected\": [\"invalid\", 1], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}