"""Reconcile a saved trace, not a fresh browser run. Python standard library only."""
from pathlib import Path
import json
trace = json.loads(Path(__file__).with_name('selection-observations.json').read_text())
expected = [(32, 'PT Serif'), (16, 'PT Serif'), (15, 'PT Serif'),
            (14, 'PT Serif Caption'), (16, 'PT Serif Caption'),
            (17, 'PT Serif'), (12, 'PT Serif Caption')]
assert len(trace['out']) == len(expected)
for row, (size, family) in zip(trace['out'], expected):
    managed, fixed = row['render']
    assert row['size'] == size
    assert managed['size'] == fixed['size'] == f'{size}px'
    assert managed['font'].startswith(f'"{family}"')
    assert fixed['font'].startswith('"PT Serif"')
    print(size, family, '| fixed PT Serif')
for family in ('PT Serif', 'PT Serif Caption'):
    assert any(font['family'] == family and font['status'] == 'loaded'
               for font in trace['fonts'])
print('Retained selection observations reconcile; no reading or performance result inferred.')
