"""本主题专属离线算法，仅读取同目录合成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']
streams={}
for name,values in data['streams'].items():
 previous=None;rows=[]
 for value in values:
  assert 0<=value<=255
  expected=1 if previous==255 else previous+1 if previous is not None else None
  state='disabled' if value==0 else 'baseline' if previous is None else 'repeat' if value==previous else 'wrap' if previous==255 and value==1 else 'continuous' if value==expected else 'nonsequential_candidate'
  rows.append({'value':value,'previous':previous,'expected':expected,'state':state});previous=None if value==0 else value
 streams[name]=rows
assert [r['state'] for r in streams['wrap']]==['baseline','continuous','continuous','wrap','continuous']
assert all(r['state']=='disabled' for r in streams['disabled'])
result={'streams':streams,'loss_rate_computed':False}
(BASE/'result.json').write_text(json.dumps(result,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
print(json.dumps(result,ensure_ascii=False))
