{"abstract":"Active facet selection hides alternative facet counts.","category":"Search retrieval semantics","checks":7,"contract":"Documents map single-valued dimensions to strings. Selection maps dimensions to allowed values; empty selections impose no constraint. Count requested facet values after all other selected dimensions. Return sorted [value,count] pairs.","evaluation_group":"model-84c399ef3ad01f7f","failed_approach":"Dropping every filter restores alternatives but counts documents excluded by other dimensions.","family":"z-search-disjunctive-facet-counts","id":"FA-11881","implementations":{"attempt":{"sha256":"eafc99edad24019daf1b10e7515bae5f8a6ff735a9f81741d4c9df67b23e56c1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(docs, selection, facet):\n    counts={}\n    for d in docs:\n        if facet in d: counts[d[facet]]=counts.get(d[facet],0)+1\n    return sorted([v,c] for v,c in counts.items())\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndocs=[{'color':'red','size':'s'}]*N+[{'color':'blue','size':'s'},{'color':'green','size':'l'}]\ncheck('keep other filters', solve(docs,{'color':['red'],'size':['s']},'color'),[['blue',1],['red',N]])\ncheck('no filters', solve(docs,{},'color'),[['blue',1],['green',1],['red',N]])\ncheck('self filter only', solve(docs,{'color':['red']},'color'),[['blue',1],['green',1],['red',N]])\ncheck('no matching other field', solve(docs,{'size':['xx']},'color'),[])\ncheck('missing facet ignored', solve([{'size':'s'}],{},'color'),[])\ncheck('empty docs', solve([],{},'color'),[])\ncheck('empty selection unrestricted', solve(docs,{'size':[]},'color'),[['blue',1],['green',1],['red',N]])\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":"1bc79c3d07e5a4d48b38a029708668e6030f3b0fc8ccef065c5d5a63770bdec3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(docs, selection, facet):\n    counts={}\n    for d in docs:\n        if all(not vals or d.get(key) in vals for key,vals in selection.items()) and facet in d: counts[d[facet]]=counts.get(d[facet],0)+1\n    return sorted([v,c] for v,c in counts.items())\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndocs=[{'color':'red','size':'s'}]*N+[{'color':'blue','size':'s'},{'color':'green','size':'l'}]\ncheck('keep other filters', solve(docs,{'color':['red'],'size':['s']},'color'),[['blue',1],['red',N]])\ncheck('no filters', solve(docs,{},'color'),[['blue',1],['green',1],['red',N]])\ncheck('self filter only', solve(docs,{'color':['red']},'color'),[['blue',1],['green',1],['red',N]])\ncheck('no matching other field', solve(docs,{'size':['xx']},'color'),[])\ncheck('missing facet ignored', solve([{'size':'s'}],{},'color'),[])\ncheck('empty docs', solve([],{},'color'),[])\ncheck('empty selection unrestricted', solve(docs,{'size':[]},'color'),[['blue',1],['green',1],['red',N]])\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":"1823c0845f6369142c2e8dd4c5b5a34070afb0ee748b39a7f81a98fa58e42c57","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(docs, selection, facet):\n    counts={}\n    for d in docs:\n        if all(key==facet or not vals or d.get(key) in vals for key,vals in selection.items()) and facet in d: counts[d[facet]]=counts.get(d[facet],0)+1\n    return sorted([v,c] for v,c in counts.items())\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndocs=[{'color':'red','size':'s'}]*N+[{'color':'blue','size':'s'},{'color':'green','size':'l'}]\ncheck('keep other filters', solve(docs,{'color':['red'],'size':['s']},'color'),[['blue',1],['red',N]])\ncheck('no filters', solve(docs,{},'color'),[['blue',1],['green',1],['red',N]])\ncheck('self filter only', solve(docs,{'color':['red']},'color'),[['blue',1],['green',1],['red',N]])\ncheck('no matching other field', solve(docs,{'size':['xx']},'color'),[])\ncheck('missing facet ignored', solve([{'size':'s'}],{},'color'),[])\ncheck('empty docs', solve([],{},'color'),[])\ncheck('empty selection unrestricted', solve(docs,{'size':[]},'color'),[['blue',1],['green',1],['red',N]])\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":"Inputs are already tokenized or scored; this model makes no claim about production engine performance or linguistic analysis. 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":"z-search-disjunctive-facet-counts","generated_at":"2026-09-29T14:38:51.763978+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline deterministic retrieval model isolates this search contract from tokenization, storage, and network behavior.","repair":"Apply all selected dimensions except the facet being counted.","root_cause":"Facet counts use the fully filtered result set including their own dimension.","sha256":"45922c5c6a325352af026a09874fb5d4bd3b404419eee620fb98bfb58efdcd39","title":"Active facet selection hides alternative facet counts · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":37.264,"exit_code":1,"observations":[{"actual":[["blue",1],["green",1],["red",1]],"check":"keep other filters","expected":[["blue",1],["red",1]],"passed":false},{"actual":[["blue",1],["green",1],["red",1]],"check":"no filters","expected":[["blue",1],["green",1],["red",1]],"passed":true},{"actual":[["blue",1],["green",1],["red",1]],"check":"self filter only","expected":[["blue",1],["green",1],["red",1]],"passed":true},{"actual":[["blue",1],["green",1],["red",1]],"check":"no matching other field","expected":[],"passed":false},{"actual":[],"check":"missing facet ignored","expected":[],"passed":true},{"actual":[],"check":"empty docs","expected":[],"passed":true},{"actual":[["blue",1],["green",1],["red",1]],"check":"empty selection unrestricted","expected":[["blue",1],["green",1],["red",1]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"keep other filters\", \"actual\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"expected\": [[\"blue\", 1], [\"red\", 1]], \"passed\": false}, {\"check\": \"no filters\", \"actual\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"expected\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"passed\": true}, {\"check\": \"self filter only\", \"actual\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"expected\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"passed\": true}, {\"check\": \"no matching other field\", \"actual\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"expected\": [], \"passed\": false}, {\"check\": \"missing facet ignored\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty docs\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty selection unrestricted\", \"actual\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"expected\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.157,"exit_code":1,"observations":[{"actual":[["red",1]],"check":"keep other filters","expected":[["blue",1],["red",1]],"passed":false},{"actual":[["blue",1],["green",1],["red",1]],"check":"no filters","expected":[["blue",1],["green",1],["red",1]],"passed":true},{"actual":[["red",1]],"check":"self filter only","expected":[["blue",1],["green",1],["red",1]],"passed":false},{"actual":[],"check":"no matching other field","expected":[],"passed":true},{"actual":[],"check":"missing facet ignored","expected":[],"passed":true},{"actual":[],"check":"empty docs","expected":[],"passed":true},{"actual":[["blue",1],["green",1],["red",1]],"check":"empty selection unrestricted","expected":[["blue",1],["green",1],["red",1]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"keep other filters\", \"actual\": [[\"red\", 1]], \"expected\": [[\"blue\", 1], [\"red\", 1]], \"passed\": false}, {\"check\": \"no filters\", \"actual\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"expected\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"passed\": true}, {\"check\": \"self filter only\", \"actual\": [[\"red\", 1]], \"expected\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"passed\": false}, {\"check\": \"no matching other field\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"missing facet ignored\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty docs\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty selection unrestricted\", \"actual\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"expected\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.245,"exit_code":0,"observations":[{"actual":[["blue",1],["red",1]],"check":"keep other filters","expected":[["blue",1],["red",1]],"passed":true},{"actual":[["blue",1],["green",1],["red",1]],"check":"no filters","expected":[["blue",1],["green",1],["red",1]],"passed":true},{"actual":[["blue",1],["green",1],["red",1]],"check":"self filter only","expected":[["blue",1],["green",1],["red",1]],"passed":true},{"actual":[],"check":"no matching other field","expected":[],"passed":true},{"actual":[],"check":"missing facet ignored","expected":[],"passed":true},{"actual":[],"check":"empty docs","expected":[],"passed":true},{"actual":[["blue",1],["green",1],["red",1]],"check":"empty selection unrestricted","expected":[["blue",1],["green",1],["red",1]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"keep other filters\", \"actual\": [[\"blue\", 1], [\"red\", 1]], \"expected\": [[\"blue\", 1], [\"red\", 1]], \"passed\": true}, {\"check\": \"no filters\", \"actual\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"expected\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"passed\": true}, {\"check\": \"self filter only\", \"actual\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"expected\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"passed\": true}, {\"check\": \"no matching other field\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"missing facet ignored\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty docs\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty selection unrestricted\", \"actual\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"expected\": [[\"blue\", 1], [\"green\", 1], [\"red\", 1]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}