Record bounded wrapped-label trials and independent conservation review
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
from pathlib import Path
|
||||
import copy, hashlib, json, sys
|
||||
|
||||
assert len(sys.argv) == 4
|
||||
original, saved, output = map(Path, sys.argv[1:])
|
||||
assert not output.exists()
|
||||
sha = lambda path: hashlib.sha256(path.read_bytes()).hexdigest()
|
||||
assert sha(original) == '9db1015369f450d5810c96a01fddb8a009d57f6aafbda5182703f15ded23d9c8'
|
||||
before, after = [json.loads(p.read_bytes()) for p in [original, saved]]
|
||||
diagram = '00000000-0038-4000-8000-000000000001'
|
||||
edge = '63009b5f-539e-5914-b630-ec6b7fefb4d5'
|
||||
old_routes = before['diagrams'][diagram]['routes']
|
||||
routes = after['diagrams'][diagram]['routes']
|
||||
assert not any(r['edge'] == edge for r in old_routes)
|
||||
changed = [r for r in routes if r['edge'] == edge]
|
||||
assert len(changed) == 1
|
||||
route = changed[0]
|
||||
assert route['waypoints'] == []
|
||||
assert route.get('source_attachment') is None and route.get('target_attachment') is None
|
||||
assert set(route) <= {'edge','waypoints','label','source_attachment','target_attachment'}
|
||||
label = route['label']
|
||||
assert label['fraction'] == 0.55
|
||||
assert set(label) == {'fraction','offset'} and set(label['offset']) == {'x','y'}
|
||||
# Declared native delta30/20px at rounded Fit52%, not a geometry-derived oracle.
|
||||
assert 0.515 <= 0.525
|
||||
assert 62.591065 + 30/0.525 - 1 <= label['offset']['x'] <= 62.591065 + 30/0.515 + 1
|
||||
assert 20/0.525 - 1 <= label['offset']['y'] <= 20/0.515 + 1
|
||||
restored = copy.deepcopy(after)
|
||||
restored['diagrams'][diagram]['routes'] = [r for r in routes if r['edge'] != edge]
|
||||
assert restored == before, 'Complete Project must differ only by declared target route label'
|
||||
receipt = {'status':'PASS', 'original_sha256':sha(original), 'saved_sha256':sha(saved),
|
||||
'saved_bytes':saved.stat().st_size, 'declared_edit':route,
|
||||
'complete_project_equal_after_removing_only_declared_route':True,
|
||||
'scope':'F30px right/20px down at displayed52%; no extra formatting field persisted'}
|
||||
with output.open('x',encoding='utf-8') as f: json.dump(receipt,f,indent=2);f.write('\n')
|
||||
print(json.dumps(receipt,indent=2))
|
||||
Reference in New Issue
Block a user