from pathlib import Path
import json
x=json.loads((Path(__file__).parent/'axis-contract.json').read_text(encoding='utf-8'));r=[]
for i in x['instances']:
 errors=[k for k,v in x['axes'].items() if not v['min']<=i.get(k,v['default'])<=v['max']];r.append({'name':i['name'],'out_of_range_axes':errors})
assert r[0]['out_of_range_axes']==[] and r[1]['out_of_range_axes']==['wght']
print(json.dumps(r,indent=2))
