"""本主题专属离线算法，仅读取同目录合成JSON，不联网、不控制设备。"""
import csv, json, math, re, struct
from pathlib import Path
from fractions import Fraction
BASE=Path(__file__).resolve().parent
data=json.loads((BASE/'input.json').read_text(encoding='utf-8'))['data']
w,h,bpp,stride=data['width'],data['height'],data['bytes_per_pixel'],data['stride']
valid=w*bpp;assert stride>=valid
buf=b''.join(bytes([r+1])*valid+bytes([data['padding']])*(stride-valid) for r in range(h))
correct=[];wrong=[]
for r in range(h):
 correct.append({'row':r,'offset':r*stride,'hex':buf[r*stride:r*stride+valid].hex()})
 wrong.append({'row':r,'offset':r*valid,'hex':buf[r*valid:r*valid+valid].hex()})
 assert buf[r*stride:r*stride+valid]==bytes([r+1])*valid
assert correct[1]['hex']!=wrong[1]['hex']
result={'valid_row_bytes':valid,'stride':stride,'correct':correct,'incorrect_tightly_packed':wrong}
(BASE/'result.json').write_text(json.dumps(result,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
print(json.dumps(result,ensure_ascii=False))
