| 21-Oct-2026 22:33:17 |
|
| 21-Oct-2026 22:33:17 |
assert oldkey == newkey, f"Expected key {oldkey} does not match new key {newkey}." |
| 21-Oct-2026 22:33:17 |
tolerance = tol if tol else relative_tolerance |
| 21-Oct-2026 22:33:17 |
if newval is not None: |
| 21-Oct-2026 22:33:17 |
LOG.info('Comparing %s to %s with a rel. tolerance of %s', oldval, newval, tolerance) |
| 21-Oct-2026 22:33:17 |
if oldval != pytest.approx(newval, rel=tolerance): |
| 21-Oct-2026 22:33:17 |
diff = oldval-newval |
| 21-Oct-2026 22:33:17 |
percent_diff = (oldval-newval)/oldval * 100 if oldval != 0 else 100 |
| 21-Oct-2026 22:33:17 |
if abs(diff) > abs(worst_diff[0]): |
| 21-Oct-2026 22:33:17 |
worst_diff = diff, oldkey |
| 21-Oct-2026 22:33:17 |
if abs(percent_diff) > abs(worst_percent_diff[0]): |
| 21-Oct-2026 22:33:17 |
worst_percent_diff = percent_diff, oldkey |
| 21-Oct-2026 22:33:17 |
errorstr = f"{oldkey}\n\tvalues differ by > a relative difference of {tolerance}\n\texpected: {oldval}\n\tnew: {newval}\n\tdiff: {diff}\n\tpercent_diff: {percent_diff}%" |
| 21-Oct-2026 22:33:17 |
errors.append(errorstr) |
| 21-Oct-2026 22:33:17 |
elif oldval is not None: |
| 21-Oct-2026 22:33:17 |
# If only the new value is None, fail |
| 21-Oct-2026 22:33:17 |
errorstr = f"{oldkey}\n\tvalue is None\n\texpected: {oldval}\n\tnew: {newval}" |
| 21-Oct-2026 22:33:17 |
errors.append(errorstr) |
| 21-Oct-2026 22:33:17 |
else: |
| 21-Oct-2026 22:33:17 |
# If old and new values are both None, this is expected, so pass |
| 21-Oct-2026 22:33:17 |
LOG.info('Comparing %s and %s... both values are None.', oldval, newval) |
| 21-Oct-2026 22:33:17 |
|
| 21-Oct-2026 22:33:17 |
[LOG.warning(x) for x in errors] |
| 21-Oct-2026 22:33:17 |
n_errors = len(errors) |
| 21-Oct-2026 22:33:17 |
if n_errors > 0: |