From d81ff7006dd123f666dd9138cfdf3fd470d3f6b4 Mon Sep 17 00:00:00 2001 From: Giovanni La Mura <giovanni.lamura@inaf.it> Date: Tue, 12 Dec 2023 18:04:51 +0100 Subject: [PATCH] Enable comparison of OEDFB --- src/scripts/pycompare.py | 109 ++++++++++++++++++++++----------------- 1 file changed, 62 insertions(+), 47 deletions(-) diff --git a/src/scripts/pycompare.py b/src/scripts/pycompare.py index 04224c08..2ab77a14 100755 --- a/src/scripts/pycompare.py +++ b/src/scripts/pycompare.py @@ -130,57 +130,71 @@ def compare_lines(f_line, c_line, config, line_num=0, num_len=1, log_file=None): c_starts.append(ci.start()) c_ends.append(ci.end()) c_groups.append(ci.group()) - severities = mismatch_severities(f_groups, c_groups, config) - if log_file is not None: - num_format = " <div><pre><code>{0:0%dd}"%num_len - log_line = (num_format + ": ").format(line_num) - log_line = log_line + c_line[0:c_starts[0]] - for si in range(len(severities) - 1): - if (severities[si] == 1): noisy += 1 - elif (severities[si] == 2): warnings += 1 - elif (severities[si] == 3): errors += 1 + + if (len(f_groups) == len(c_groups)): + #INDENT + severities = mismatch_severities(f_groups, c_groups, config) if log_file is not None: - if (severities[si] == 0): - log_line = log_line + c_groups[si] + c_line[c_ends[si]:c_starts[si + 1]] - elif (severities[si] == 1): - log_line = ( - log_line + "</code><span style=\"font-weight: bold; color: rgb(0,255,0)\"><code>" - + c_groups[si] + "</code></span><code>" + c_line[c_ends[si]:c_starts[si + 1]] - ) - elif (severities[si] == 2): - log_line = ( - log_line + "</code><span style=\"font-weight: bold; color: rgb(0,0,255)\"><code>" - + c_groups[si] + "</code></span><code>" + c_line[c_ends[si]:c_starts[si + 1]] - ) - elif (severities[si] == 3): - log_line = ( - log_line + "</code><span style=\"font-weight: bold; color: rgb(255,0,0)\"><code>" - + c_groups[si] + "</code></span><code>" + c_line[c_ends[si]:c_starts[si + 1]] - ) - if (severities[-1] == 1): noisy += 1 - elif (severities[-1] == 2): warnings += 1 - elif (severities[-1] == 3): errors += 1 - if log_file is not None: - if (severities[-1] == 0): - log_line = ( - log_line + c_groups[-1] + c_line[c_ends[-1]:len(c_line) - 2] - ) - elif (severities[-1] == 1): - log_line = ( - log_line + "</code><span style=\"font-weight: bold; color: rgb(0,255,0)\"><code>" - + c_groups[-1] + "</code></span><code>" + c_line[c_ends[-1]:len(c_line) - 2] - ) - elif (severities[-1] == 2): - log_line = ( - log_line + "</code><span style=\"font-weight: bold; color: rgb(0,0,255)\"><code>" - + c_groups[-1] + "</code></span><code>" + c_line[c_ends[-1]:len(c_line) - 2] - ) - elif (severities[-1] == 3): + num_format = " <div><pre><code>{0:0%dd}"%num_len + log_line = (num_format + ": ").format(line_num) + log_line = log_line + c_line[0:c_starts[0]] + for si in range(len(severities) - 1): + if (severities[si] == 1): noisy += 1 + elif (severities[si] == 2): warnings += 1 + elif (severities[si] == 3): errors += 1 + if log_file is not None: + if (severities[si] == 0): + log_line = log_line + c_groups[si] + c_line[c_ends[si]:c_starts[si + 1]] + elif (severities[si] == 1): + log_line = ( + log_line + "</code><span style=\"font-weight: bold; color: rgb(0,255,0)\"><code>" + + c_groups[si] + "</code></span><code>" + c_line[c_ends[si]:c_starts[si + 1]] + ) + elif (severities[si] == 2): + log_line = ( + log_line + "</code><span style=\"font-weight: bold; color: rgb(0,0,255)\"><code>" + + c_groups[si] + "</code></span><code>" + c_line[c_ends[si]:c_starts[si + 1]] + ) + elif (severities[si] == 3): + log_line = ( + log_line + "</code><span style=\"font-weight: bold; color: rgb(255,0,0)\"><code>" + + c_groups[si] + "</code></span><code>" + c_line[c_ends[si]:c_starts[si + 1]] + ) + if (len(severities) > 1): + if (severities[-1] == 1): noisy += 1 + elif (severities[-1] == 2): warnings += 1 + elif (severities[-1] == 3): errors += 1 + if log_file is not None: + if (len(severities) > 1): + if (severities[-1] == 0): + log_line = ( + log_line + c_groups[-1] + c_line[c_ends[-1]:len(c_line) - 2] + ) + elif (severities[-1] == 1): + log_line = ( + log_line + "</code><span style=\"font-weight: bold; color: rgb(0,255,0)\"><code>" + + c_groups[-1] + "</code></span><code>" + c_line[c_ends[-1]:len(c_line) - 2] + ) + elif (severities[-1] == 2): + log_line = ( + log_line + "</code><span style=\"font-weight: bold; color: rgb(0,0,255)\"><code>" + + c_groups[-1] + "</code></span><code>" + c_line[c_ends[-1]:len(c_line) - 2] + ) + elif (severities[-1] == 3): + log_line = ( + log_line + "</code><span style=\"font-weight: bold; color: rgb(255,0,0)\"><code>" + + c_groups[-1] + "</code></span><code>" + c_line[c_ends[-1]:len(c_line) - 2] + ) + log_file.write(log_line + "</code></pre></div>\n") + #END INDENT + else: + if (log_file is not None): log_line = ( log_line + "</code><span style=\"font-weight: bold; color: rgb(255,0,0)\"><code>" - + c_groups[-1] + "</code></span><code>" + c_line[c_ends[-1]:len(c_line) - 2] + + c_line + "</code></span><code>" ) - log_file.write(log_line + "</code></pre></div>\n") + log_file.write(log_line + "</code></pre></div>\n") + errors += 1 return (errors, warnings, noisy) ## \brief Determine the severity of a numerical mismatch. @@ -203,6 +217,7 @@ def mismatch_severities(str_f_values, str_c_values, config): if (str_f_values[i] != str_c_values[i]): f_values = [float(str_f_values[j]) for j in range(len(str_f_values))] c_values = [float(str_c_values[j]) for j in range(len(str_c_values))] + if (len(f_values) != len(c_values)): return [] f_log_values = [0.0 for j in range(len(f_values))] c_log_values = [0.0 for j in range(len(c_values))] max_f_log = -1.0e12 -- GitLab