{"abstract":"Ending a query leaves it active for subsequent draws.","category":"Raster clipping","checks":12,"contract":"Queries count distinct covered sample IDs per draw after path clipping and sample enable masking. Multiple draws accumulate independently, while duplicate sample IDs within one draw count once. Begin resets a named result and activates it; end makes it readable. Result reads while active return null. Conditional draws consult only completed query counts. Disabling queries pauses accumulation without disabling clipping.","evaluation_group":"s3-raster-clipping-clip-occlusion-query","failed_approach":"Clearing the result on end both loses accumulated coverage and leaves activation unchanged.","family":"s3-raster-clipping-clip-occlusion-query-end-still-active","id":"FA-51101","implementations":{"attempt":{"sha256":"b63a12eb39bf54c4c016cfa7fb94a4ce46ea0d6c1f2c15f9deef0a50ae8ffe6c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(commands, size):\n    full=set(range(size))\n    clip=set(full)\n    lanes=set(full)\n    results={}\n    active=None\n    query_enabled=True\n    out=[]\n    for cmd in commands:\n        op=cmd[0]\n        if op=='clip': clip=set(cmd[1])&full\n        elif op=='lanes': lanes=set(cmd[1])&full\n        elif op=='begin': active=cmd[1]; results[active]=0\n        elif op=='end': results[active]=0 if active is not None else 0\n        elif op=='enable-query': query_enabled=cmd[1]\n        elif op in ('draw','conditional'):\n            samples=cmd[1]\n            if op=='conditional' and (cmd[2]==active or results.get(cmd[2],0)==0): continue\n            visible=set(samples)&clip&lanes\n            if active is not None and query_enabled: results[active]+=len(visible)\n        elif op=='read': out.append(None if cmd[1]==active else results.get(cmd[1],0))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 4), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 4), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 4), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 4), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 4), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 4), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 4), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 4), [4])\nif N == 2:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 5), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 5), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 5), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 5), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 5), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 5), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 5), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 5), [5])\nif N == 3:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 6), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 6), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 6), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 6), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 6), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 6), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 6), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 6), [6])\nif N == 4:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 7), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 7), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 7), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 7), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 7), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 7), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 7), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 7), [7])\nif N == 5:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 8), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 8), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 8), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 8), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 8), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 8), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 8), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 8), [8])\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":"56c26aad470b207db6bd83530917eba9a645d2b68bff1dedb8230e7bcd3523bd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(commands, size):\n    full=set(range(size))\n    clip=set(full)\n    lanes=set(full)\n    results={}\n    active=None\n    query_enabled=True\n    out=[]\n    for cmd in commands:\n        op=cmd[0]\n        if op=='clip': clip=set(cmd[1])&full\n        elif op=='lanes': lanes=set(cmd[1])&full\n        elif op=='begin': active=cmd[1]; results[active]=0\n        elif op=='end': pass\n        elif op=='enable-query': query_enabled=cmd[1]\n        elif op in ('draw','conditional'):\n            samples=cmd[1]\n            if op=='conditional' and (cmd[2]==active or results.get(cmd[2],0)==0): continue\n            visible=set(samples)&clip&lanes\n            if active is not None and query_enabled: results[active]+=len(visible)\n        elif op=='read': out.append(None if cmd[1]==active else results.get(cmd[1],0))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 4), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 4), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 4), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 4), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 4), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 4), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 4), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 4), [4])\nif N == 2:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 5), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 5), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 5), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 5), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 5), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 5), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 5), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 5), [5])\nif N == 3:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 6), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 6), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 6), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 6), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 6), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 6), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 6), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 6), [6])\nif N == 4:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 7), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 7), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 7), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 7), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 7), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 7), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 7), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 7), [7])\nif N == 5:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 8), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 8), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 8), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 8), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 8), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 8), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 8), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 8), [8])\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":"7f04546e92e8cdc78f83a58258cc0623d15461b1c2f96c362adda021f7d70132","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(commands, size):\n    full=set(range(size))\n    clip=set(full)\n    lanes=set(full)\n    results={}\n    active=None\n    query_enabled=True\n    out=[]\n    for cmd in commands:\n        op=cmd[0]\n        if op=='clip': clip=set(cmd[1])&full\n        elif op=='lanes': lanes=set(cmd[1])&full\n        elif op=='begin': active=cmd[1]; results[active]=0\n        elif op=='end': active=None\n        elif op=='enable-query': query_enabled=cmd[1]\n        elif op in ('draw','conditional'):\n            samples=cmd[1]\n            if op=='conditional' and (cmd[2]==active or results.get(cmd[2],0)==0): continue\n            visible=set(samples)&clip&lanes\n            if active is not None and query_enabled: results[active]+=len(visible)\n        elif op=='read': out.append(None if cmd[1]==active else results.get(cmd[1],0))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 4), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 4), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 4), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 4), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 4), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 4), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 4), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 4), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 4), [4])\nif N == 2:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 5), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 5), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 5), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 5), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 5), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 5), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 5), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 5), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 5), [5])\nif N == 3:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 6), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 6), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 6), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 6), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 6), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 6), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 6), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 6), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 6), [6])\nif N == 4:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 7), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 7), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 7), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 7), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 7), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 7), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 7), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 7), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 7), [7])\nif N == 5:\n    check('explicit sequence 0', solve([['clip', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 8), [1])\n    check('explicit sequence 1', solve([['lanes', [0]], ['begin', 'q'], ['draw', [0, 1]], ['end'], ['read', 'q']], 8), [1])\n    check('explicit sequence 2', solve([['begin', 'q'], ['draw', [0, 0, 1]], ['end'], ['read', 'q']], 8), [2])\n    check('explicit sequence 3', solve([['begin', 'q'], ['draw', [0]], ['draw', [1]], ['end'], ['read', 'q']], 8), [2])\n    check('explicit sequence 4', solve([['begin', 'q'], ['draw', [0]], ['end'], ['begin', 'q'], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 5', solve([['begin', 'q'], ['draw', [0]], ['end'], ['draw', [1]], ['read', 'q']], 8), [1])\n    check('explicit sequence 6', solve([['begin', 'q'], ['enable-query', False], ['draw', [0]], ['enable-query', True], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 7', solve([['begin', 'q'], ['draw', [0]], ['read', 'q'], ['conditional', [1], 'q'], ['end'], ['read', 'q']], 8), [None, 1])\n    check('explicit sequence 8', solve([['begin', 'q'], ['conditional', [0], 'missing'], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 9', solve([['begin', 'a'], ['draw', [0]], ['end'], ['begin', 'b'], ['end'], ['read', 'b']], 8), [0])\n    check('explicit sequence 10', solve([['clip', []], ['begin', 'q'], ['draw', [0]], ['end'], ['read', 'q']], 8), [0])\n    check('explicit sequence 11', solve([['begin', 'q'], ['draw', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], ['end'], ['read', 'q']], 8), [8])\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":"Finite one-dimensional integer sample sets model coverage state only; no geometric intersection, memory layout, GPU or graphics-standard conformance 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":"s3-raster-clipping-clip-occlusion-query-end-still-active","generated_at":"2026-09-29T14:45:15.581942+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Raster clip state can leak coverage across draws even when every individual region is valid.","repair":"Apply the documented state transition at end still active. Queries count distinct covered sample IDs per draw after path clipping and sample enable masking. Multiple draws accumulate independently, while duplicate sample IDs within one draw count once. Begin resets a named result and activates it; end makes it readable. Result reads while active return null. Conditional draws consult only completed query counts. Disabling queries pauses accumulation without disabling clipping.","root_cause":"Ending a query leaves it active for subsequent draws.","sha256":"50cef939a813e51185a02876284a6ea55bfb174a13c9765d05a3f5586ee3d38d","title":"Clip occlusion query: end still active · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.782,"exit_code":1,"observations":[{"actual":[null],"check":"explicit sequence 0","expected":[1],"passed":false},{"actual":[null],"check":"explicit sequence 1","expected":[1],"passed":false},{"actual":[null],"check":"explicit sequence 2","expected":[2],"passed":false},{"actual":[null],"check":"explicit sequence 3","expected":[2],"passed":false},{"actual":[null],"check":"explicit sequence 4","expected":[0],"passed":false},{"actual":[null],"check":"explicit sequence 5","expected":[1],"passed":false},{"actual":[null],"check":"explicit sequence 6","expected":[0],"passed":false},{"actual":[null,null],"check":"explicit sequence 7","expected":[null,1],"passed":false},{"actual":[null],"check":"explicit sequence 8","expected":[0],"passed":false},{"actual":[null],"check":"explicit sequence 9","expected":[0],"passed":false},{"actual":[null],"check":"explicit sequence 10","expected":[0],"passed":false},{"actual":[null],"check":"explicit sequence 11","expected":[4],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit sequence 0\", \"actual\": [null], \"expected\": [1], \"passed\": false}, {\"check\": \"explicit sequence 1\", \"actual\": [null], \"expected\": [1], \"passed\": false}, {\"check\": \"explicit sequence 2\", \"actual\": [null], \"expected\": [2], \"passed\": false}, {\"check\": \"explicit sequence 3\", \"actual\": [null], \"expected\": [2], \"passed\": false}, {\"check\": \"explicit sequence 4\", \"actual\": [null], \"expected\": [0], \"passed\": false}, {\"check\": \"explicit sequence 5\", \"actual\": [null], \"expected\": [1], \"passed\": false}, {\"check\": \"explicit sequence 6\", \"actual\": [null], \"expected\": [0], \"passed\": false}, {\"check\": \"explicit sequence 7\", \"actual\": [null, null], \"expected\": [null, 1], \"passed\": false}, {\"check\": \"explicit sequence 8\", \"actual\": [null], \"expected\": [0], \"passed\": false}, {\"check\": \"explicit sequence 9\", \"actual\": [null], \"expected\": [0], \"passed\": false}, {\"check\": \"explicit sequence 10\", \"actual\": [null], \"expected\": [0], \"passed\": false}, {\"check\": \"explicit sequence 11\", \"actual\": [null], \"expected\": [4], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.544,"exit_code":1,"observations":[{"actual":[null],"check":"explicit sequence 0","expected":[1],"passed":false},{"actual":[null],"check":"explicit sequence 1","expected":[1],"passed":false},{"actual":[null],"check":"explicit sequence 2","expected":[2],"passed":false},{"actual":[null],"check":"explicit sequence 3","expected":[2],"passed":false},{"actual":[null],"check":"explicit sequence 4","expected":[0],"passed":false},{"actual":[null],"check":"explicit sequence 5","expected":[1],"passed":false},{"actual":[null],"check":"explicit sequence 6","expected":[0],"passed":false},{"actual":[null,null],"check":"explicit sequence 7","expected":[null,1],"passed":false},{"actual":[null],"check":"explicit sequence 8","expected":[0],"passed":false},{"actual":[null],"check":"explicit sequence 9","expected":[0],"passed":false},{"actual":[null],"check":"explicit sequence 10","expected":[0],"passed":false},{"actual":[null],"check":"explicit sequence 11","expected":[4],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit sequence 0\", \"actual\": [null], \"expected\": [1], \"passed\": false}, {\"check\": \"explicit sequence 1\", \"actual\": [null], \"expected\": [1], \"passed\": false}, {\"check\": \"explicit sequence 2\", \"actual\": [null], \"expected\": [2], \"passed\": false}, {\"check\": \"explicit sequence 3\", \"actual\": [null], \"expected\": [2], \"passed\": false}, {\"check\": \"explicit sequence 4\", \"actual\": [null], \"expected\": [0], \"passed\": false}, {\"check\": \"explicit sequence 5\", \"actual\": [null], \"expected\": [1], \"passed\": false}, {\"check\": \"explicit sequence 6\", \"actual\": [null], \"expected\": [0], \"passed\": false}, {\"check\": \"explicit sequence 7\", \"actual\": [null, null], \"expected\": [null, 1], \"passed\": false}, {\"check\": \"explicit sequence 8\", \"actual\": [null], \"expected\": [0], \"passed\": false}, {\"check\": \"explicit sequence 9\", \"actual\": [null], \"expected\": [0], \"passed\": false}, {\"check\": \"explicit sequence 10\", \"actual\": [null], \"expected\": [0], \"passed\": false}, {\"check\": \"explicit sequence 11\", \"actual\": [null], \"expected\": [4], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.824,"exit_code":0,"observations":[{"actual":[1],"check":"explicit sequence 0","expected":[1],"passed":true},{"actual":[1],"check":"explicit sequence 1","expected":[1],"passed":true},{"actual":[2],"check":"explicit sequence 2","expected":[2],"passed":true},{"actual":[2],"check":"explicit sequence 3","expected":[2],"passed":true},{"actual":[0],"check":"explicit sequence 4","expected":[0],"passed":true},{"actual":[1],"check":"explicit sequence 5","expected":[1],"passed":true},{"actual":[0],"check":"explicit sequence 6","expected":[0],"passed":true},{"actual":[null,1],"check":"explicit sequence 7","expected":[null,1],"passed":true},{"actual":[0],"check":"explicit sequence 8","expected":[0],"passed":true},{"actual":[0],"check":"explicit sequence 9","expected":[0],"passed":true},{"actual":[0],"check":"explicit sequence 10","expected":[0],"passed":true},{"actual":[4],"check":"explicit sequence 11","expected":[4],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit sequence 0\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"explicit sequence 1\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"explicit sequence 2\", \"actual\": [2], \"expected\": [2], \"passed\": true}, {\"check\": \"explicit sequence 3\", \"actual\": [2], \"expected\": [2], \"passed\": true}, {\"check\": \"explicit sequence 4\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"explicit sequence 5\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"explicit sequence 6\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"explicit sequence 7\", \"actual\": [null, 1], \"expected\": [null, 1], \"passed\": true}, {\"check\": \"explicit sequence 8\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"explicit sequence 9\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"explicit sequence 10\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"explicit sequence 11\", \"actual\": [4], \"expected\": [4], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}