# 离线只读验证：不访问网络、不操作设备，只读取同目录合成输入。
import json, math, struct, statistics
from pathlib import Path
def check(d):
 p=d['point']; s=d['scale']; t=d['translation']; a=math.radians(d['degrees_z'])
 def rot(v): return [round(v[0]*math.cos(a)-v[1]*math.sin(a),6),round(v[0]*math.sin(a)+v[1]*math.cos(a),6),v[2]]
 scaled=[p[i]*s[i] for i in range(3)]; r=rot(scaled)
 world=[round(r[i]+t[i],6) for i in range(3)]
 wrong=rot([(p[i]+t[i])*s[i] for i in range(3)])
 return dict(scaled=scaled,rotated=r,world=world,wrong_order=wrong)

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))
