Skip to content

Commit a7f38f2

Browse files
Dimitrios AdamDimitrios Adam
authored andcommitted
Small Changes
1 parent 6329b04 commit a7f38f2

File tree

1 file changed

+31
-23
lines changed

1 file changed

+31
-23
lines changed

toolchain/mfc/packer/tol.py

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,34 @@ def is_close(error: Error, tolerance: Tolerance) -> bool:
1818
return False
1919

2020

21+
def _format_error_diagnostics(max_abs_info, max_rel_info) -> str:
22+
"""Format diagnostic information for maximum errors among failing variables."""
23+
diagnostic_msg = ""
24+
25+
if max_abs_info:
26+
filepath, val_idx, g_val, c_val, abs_err, rel_err = max_abs_info
27+
rel_error_str = f"{rel_err:.2E}" if not math.isnan(rel_err) else "NaN"
28+
diagnostic_msg += f"\n\nDiagnostics - Maximum absolute error among FAILING variables:\n" \
29+
f" - File: {filepath}\n" \
30+
f" - Variable n°{val_idx+1}\n" \
31+
f" - Candidate: {c_val}\n" \
32+
f" - Golden: {g_val}\n" \
33+
f" - Absolute Error: {abs_err:.2E}\n" \
34+
f" - Relative Error: {rel_error_str}"
35+
36+
if max_rel_info:
37+
filepath, val_idx, g_val, c_val, rel_err, abs_err = max_rel_info
38+
diagnostic_msg += f"\n\nDiagnostics - Maximum relative error among FAILING variables:\n" \
39+
f" - File: {filepath}\n" \
40+
f" - Variable n°{val_idx+1}\n" \
41+
f" - Candidate: {c_val}\n" \
42+
f" - Golden: {g_val}\n" \
43+
f" - Relative Error: {rel_err:.2E}\n" \
44+
f" - Absolute Error: {abs_err:.2E}"
45+
46+
return diagnostic_msg
47+
48+
2149
# pylint: disable=too-many-return-statements
2250
def compare(candidate: Pack, golden: Pack, tol: Tolerance) -> typing.Tuple[Error, str]:
2351
# Keep track of the average error
@@ -48,28 +76,7 @@ def compare(candidate: Pack, golden: Pack, tol: Tolerance) -> typing.Tuple[Error
4876
def raise_err_with_failing_diagnostics(msg: str):
4977
# Find maximum errors among FAILING variables only
5078
max_abs_info, max_rel_info = find_maximum_errors_among_failing(candidate, golden, tol)
51-
52-
diagnostic_msg = ""
53-
if max_abs_info:
54-
max_abs_filepath, max_abs_valIndex, max_abs_gVal, max_abs_cVal, max_abs_error, max_abs_rel_error = max_abs_info
55-
rel_error_str = f"{max_abs_rel_error:.2E}" if not math.isnan(max_abs_rel_error) else "NaN"
56-
diagnostic_msg += f"\n\nDiagnostics - Maximum absolute error among FAILING variables:\n" \
57-
f" - File: {max_abs_filepath}\n" \
58-
f" - Variable n°{max_abs_valIndex+1}\n" \
59-
f" - Candidate: {max_abs_cVal}\n" \
60-
f" - Golden: {max_abs_gVal}\n" \
61-
f" - Absolute Error: {max_abs_error:.2E}\n" \
62-
f" - Relative Error: {rel_error_str}"
63-
64-
if max_rel_info:
65-
max_rel_filepath, max_rel_valIndex, max_rel_gVal, max_rel_cVal, max_rel_error, max_rel_abs_error = max_rel_info
66-
diagnostic_msg += f"\n\nDiagnostics - Maximum relative error among FAILING variables:\n" \
67-
f" - File: {max_rel_filepath}\n" \
68-
f" - Variable n°{max_rel_valIndex+1}\n" \
69-
f" - Candidate: {max_rel_cVal}\n" \
70-
f" - Golden: {max_rel_gVal}\n" \
71-
f" - Relative Error: {max_rel_error:.2E}\n" \
72-
f" - Absolute Error: {max_rel_abs_error:.2E}"
79+
diagnostic_msg = _format_error_diagnostics(max_abs_info, max_rel_info)
7380

7481
return None, f"""\
7582
Variable n°{valIndex+1} (1-indexed) in {gFilepath} {msg}:
@@ -131,4 +138,5 @@ def find_maximum_errors_among_failing(candidate: Pack, golden: Pack, tol: Tolera
131138
max_rel_error = error.relative
132139
max_rel_info = (gFilepath, valIndex, gVal, cVal, error.relative, error.absolute)
133140

134-
return max_abs_info, max_rel_info
141+
return max_abs_info, max_rel_info
142+

0 commit comments

Comments
 (0)