Build: #108 failed
Job: Test ManyLinux 2.28 Python 3.12 failed
e2e6 1 00010 s uid a002 xd0a588 x2239 procedure hifa image regression: Test case result
The below summarizes the result of the test " e2e6 1 00010 s uid a002 xd0a588 x2239 procedure hifa image regression" in build 108 of PIPESPECS - Test Pipeline main with Casa master - Test ManyLinux 2.28 Python 3.12.
- Description
- e2e6 1 00010 s uid a002 xd0a588 x2239 procedure hifa image regression
- Test class
- tests.regression.fast.alma_if_fast_test
- Method
- test_E2E6_1_00010_S__uid___A002_Xd0a588_X2239__procedure_hifa_image__regression
- Duration
- 162 mins
- Status
- Failed (Existing Failure)
Error Log
@pytest.mark.twelve
def test_E2E6_1_00010_S__uid___A002_Xd0a588_X2239__procedure_hifa_image__regression():
"""Run ALMA cal+image regression on a 12m moderate-size test dataset in ASDM.
Recipe name: procedure_hifa_calimage
Dataset: E2E6.1.00010.S: uid___A002_Xd0a588_X2239
"""
ref_directory = 'pl-regressiontest/E2E6.1.00010.S'
pt = PipelineTester(
visname=['uid___A002_Xd0a588_X2239'],
recipe='procedure_hifa_calimage.xml',
input_dir=ref_directory,
expectedoutput_dir=ref_directory,
)
> pt.run()
tests/regression/fast/alma_if_fast_test.py:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/testing_utils.py:381: in run
self.__compare_results(new_file, default_relative_tolerance)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <tests.testing_utils.PipelineTester object at 0x7f3c1068ecf0>
new_file = 'uid___A002_Xd0a588_X2239.NEW.results.txt'
relative_tolerance = 1e-07
def __compare_results(self, new_file: str, relative_tolerance: float) -> None:
"""
Compare results between new one loaded from file and old one.
Args:
new_file : file path of new results
relative_tolerance : relative tolerance of output value
"""
with open(self.expectedoutput_file) as expected_fd, open(new_file) as new_fd:
expected_results = expected_fd.readlines()
new_results = new_fd.readlines()
errors = []
worst_diff = (0, 0)
worst_percent_diff = (0, 0)
for old, new in zip(expected_results, new_results):
try:
oldkey, oldval, tol = self.__sanitize_results_string(old)
newkey, newval, _ = self.__sanitize_results_string(new)
except ValueError as e:
errorstr = "The results: {0} could not be parsed. Error: {1}".format(new, str(e))
errors.append(errorstr)
continue
assert oldkey == newkey, f"Expected key {oldkey} does not match new key {newkey}."
tolerance = tol if tol else relative_tolerance
if newval is not None:
LOG.info('Comparing %s to %s with a rel. tolerance of %s', oldval, newval, tolerance)
if oldval != pytest.approx(newval, rel=tolerance):
diff = oldval-newval
percent_diff = (oldval-newval)/oldval * 100 if oldval != 0 else 100
if abs(diff) > abs(worst_diff[0]):
worst_diff = diff, oldkey
if abs(percent_diff) > abs(worst_percent_diff[0]):
worst_percent_diff = percent_diff, oldkey
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}%"
errors.append(errorstr)
elif oldval is not None:
# If only the new value is None, fail
errorstr = f"{oldkey}\n\tvalue is None\n\texpected: {oldval}\n\tnew: {newval}"
errors.append(errorstr)
else:
# If old and new values are both None, this is expected, so pass
LOG.info('Comparing %s and %s... both values are None.', oldval, newval)
[LOG.warning(x) for x in errors]
n_errors = len(errors)
if n_errors > 0:
summary_str = f"Worst absolute diff, {worst_diff[1]}: {worst_diff[0]}\nWorst percentage diff, {worst_percent_diff[1]}: {worst_percent_diff[0]}%"
errors.append(summary_str)
> pytest.fail("Failed to match {0} result value{1} within tolerance{1} :\n{2}".format(
n_errors, '' if n_errors == 1 else 's', '\n'.join(errors)), pytrace=True)
E Failed: Failed to match 3 result values within tolerances :
E s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_0.spw_14.qa.metric.score_gfluxscale_amp_time_variation
E values differ by > a relative difference of 1e-07
E expected: 1.9390034714729183
E new: 1.9390070410307714
E diff: -3.569557853078109e-06
E percent_diff: -0.00018409239104489992%
E s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_2.spw_14.I
E values differ by > a relative difference of 1e-07
E expected: 0.16244481701133018
E new: 0.16244485548598875
E diff: -3.847465857020893e-08
E percent_diff: -2.3684756016269453e-05%
E s21.hif_applycal.uid___A002_Xd0a588_X2239.spw_14.qa.metric.gt90deg_offset_phase_vs_freqintercept
E values differ by > a relative difference of 1e-07
E expected: -95.10457414073348
E new: -95.10462209180606
E diff: 4.7951072588148236e-05
E percent_diff: -5.041931265807614e-05%
E Worst absolute diff, s21.hif_applycal.uid___A002_Xd0a588_X2239.spw_14.qa.metric.gt90deg_offset_phase_vs_freqintercept: 4.7951072588148236e-05
E Worst percentage diff, s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_0.spw_14.qa.metric.score_gfluxscale_amp_time_variation: -0.00018409239104489992%
tests/testing_utils.py:440: Failed
@pytest.mark.twelve
def test_E2E6_1_00010_S__uid___A002_Xd0a588_X2239__procedure_hifa_image__regression():
"""Run ALMA cal+image regression on a 12m moderate-size test dataset in ASDM.
Recipe name: procedure_hifa_calimage
Dataset: E2E6.1.00010.S: uid___A002_Xd0a588_X2239
"""
ref_directory = 'pl-regressiontest/E2E6.1.00010.S'
pt = PipelineTester(
visname=['uid___A002_Xd0a588_X2239'],
recipe='procedure_hifa_calimage.xml',
input_dir=ref_directory,
expectedoutput_dir=ref_directory,
)
> pt.run()
tests/regression/fast/alma_if_fast_test.py:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/testing_utils.py:381: in run
self.__compare_results(new_file, default_relative_tolerance)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <tests.testing_utils.PipelineTester object at 0x7f3c1068ecf0>
new_file = 'uid___A002_Xd0a588_X2239.NEW.results.txt'
relative_tolerance = 1e-07
def __compare_results(self, new_file: str, relative_tolerance: float) -> None:
"""
Compare results between new one loaded from file and old one.
Args:
new_file : file path of new results
relative_tolerance : relative tolerance of output value
"""
with open(self.expectedoutput_file) as expected_fd, open(new_file) as new_fd:
expected_results = expected_fd.readlines()
new_results = new_fd.readlines()
errors = []
worst_diff = (0, 0)
worst_percent_diff = (0, 0)
for old, new in zip(expected_results, new_results):
try:
oldkey, oldval, tol = self.__sanitize_results_string(old)
newkey, newval, _ = self.__sanitize_results_string(new)
except ValueError as e:
errorstr = "The results: {0} could not be parsed. Error: {1}".format(new, str(e))
errors.append(errorstr)
continue
assert oldkey == newkey, f"Expected key {oldkey} does not match new key {newkey}."
tolerance = tol if tol else relative_tolerance
if newval is not None:
LOG.info('Comparing %s to %s with a rel. tolerance of %s', oldval, newval, tolerance)
if oldval != pytest.approx(newval, rel=tolerance):
diff = oldval-newval
percent_diff = (oldval-newval)/oldval * 100 if oldval != 0 else 100
if abs(diff) > abs(worst_diff[0]):
worst_diff = diff, oldkey
if abs(percent_diff) > abs(worst_percent_diff[0]):
worst_percent_diff = percent_diff, oldkey
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}%"
errors.append(errorstr)
elif oldval is not None:
# If only the new value is None, fail
errorstr = f"{oldkey}\n\tvalue is None\n\texpected: {oldval}\n\tnew: {newval}"
errors.append(errorstr)
else:
# If old and new values are both None, this is expected, so pass
LOG.info('Comparing %s and %s... both values are None.', oldval, newval)
[LOG.warning(x) for x in errors]
n_errors = len(errors)
if n_errors > 0:
summary_str = f"Worst absolute diff, {worst_diff[1]}: {worst_diff[0]}\nWorst percentage diff, {worst_percent_diff[1]}: {worst_percent_diff[0]}%"
errors.append(summary_str)
> pytest.fail("Failed to match {0} result value{1} within tolerance{1} :\n{2}".format(
n_errors, '' if n_errors == 1 else 's', '\n'.join(errors)), pytrace=True)
E Failed: Failed to match 3 result values within tolerances :
E s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_0.spw_14.qa.metric.score_gfluxscale_amp_time_variation
E values differ by > a relative difference of 1e-07
E expected: 1.9390034714729183
E new: 1.9390070410307714
E diff: -3.569557853078109e-06
E percent_diff: -0.00018409239104489992%
E s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_2.spw_14.I
E values differ by > a relative difference of 1e-07
E expected: 0.16244481701133018
E new: 0.16244485548598875
E diff: -3.847465857020893e-08
E percent_diff: -2.3684756016269453e-05%
E s21.hif_applycal.uid___A002_Xd0a588_X2239.spw_14.qa.metric.gt90deg_offset_phase_vs_freqintercept
E values differ by > a relative difference of 1e-07
E expected: -95.10457414073348
E new: -95.10462209180606
E diff: 4.7951072588148236e-05
E percent_diff: -5.041931265807614e-05%
E Worst absolute diff, s21.hif_applycal.uid___A002_Xd0a588_X2239.spw_14.qa.metric.gt90deg_offset_phase_vs_freqintercept: 4.7951072588148236e-05
E Worst percentage diff, s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_0.spw_14.qa.metric.score_gfluxscale_amp_time_variation: -0.00018409239104489992%
tests/testing_utils.py:440: Failed