# 离线只读验证：不访问网络、不操作设备，只读取同目录合成输入。
import json, math, struct, statistics
from pathlib import Path
def check(d):
 seen=set(); events=set(); out=[]
 for i,x in enumerate(d):
  key=(x['connection'],x['pid'])
  if x['dup'] and key in seen: label='可能报文重发'
  elif x['event'] in events: label='应用事件再次出现'
  else: label='首次' if i==0 else '新连接新事件'
  out.append(label); seen.add(key); events.add(x['event'])
 return out

if __name__=='__main__':
 fixture=json.loads(Path(__file__).with_name('fixture.json').read_text(encoding='utf-8'))
 actual=check(fixture['input'])
 assert actual==fixture['expected'], {'实际':actual,'预期':fixture['expected']}
 print(json.dumps({'状态':'通过','实际':actual,'边界':'仅离线合成样例，现场未测'},ensure_ascii=False))
