<?xml version="1.0" encoding="utf-8"?><testsuites name="pytest tests"><testsuite name="pytest" errors="0" failures="3" skipped="0" tests="18" time="48671.774" timestamp="2026-10-20T20:36:35.664029-04:00" hostname="cvpost128"><testcase classname="tests.regression.fast.alma_sd_fast_test" name="test_uid___A002_X85c183_X36f_SPW15_23__PPR__regression" file="tests/regression/fast/alma_sd_fast_test.py" line="24" time="1643.484" /><testcase classname="tests.regression.fast.nobeyama_sd_fast_test" name="test_mg2_20170525142607_180419__PPR__regression" file="tests/regression/fast/nobeyama_sd_fast_test.py" line="23" time="4034.590" /><testcase classname="tests.regression.fast.alma_if_fast_test" name="test_uid___A002_Xc46ab2_X15ae_repSPW_spw16_17_small__PPR__regression" file="tests/regression/fast/alma_if_fast_test.py" line="9" time="4410.547" /><testcase classname="tests.regression.fast.vla_fast_test" name="test_13A_537__calibration__PPR__regression" file="tests/regression/fast/vla_fast_test.py" line="27" time="6635.059" /><testcase classname="tests.regression.fast.nobeyama_sd_fast_test" name="test_mg2_20170525142607_180419__procedure_hsdn_calimage__regression" file="tests/regression/fast/nobeyama_sd_fast_test.py" line="6" time="5292.483" /><testcase classname="tests.regression.fast.alma_if_fast_test" name="test_uid___A002_Xc46ab2_X15ae__selfcal_restore_procedure_hifa_image__regression" file="tests/regression/fast/alma_if_fast_test.py" line="77" time="6984.898" /><testcase classname="tests.regression.fast.vla_fast_test" name="test_13A_537__restore__PPR__regression" file="tests/regression/fast/vla_fast_test.py" line="46" time="552.414" /><testcase classname="tests.regression.fast.vla_fast_test" name="test_13A_537__procedure_hifv__regression" file="tests/regression/fast/vla_fast_test.py" line="8" time="6418.275" /><testcase classname="tests.regression.fast.alma_if_fast_test" name="test_E2E6_1_00010_S__uid___A002_Xd0a588_X2239__procedure_hifa_image__regression" file="tests/regression/fast/alma_if_fast_test.py" line="145" time="16921.417"><failure message="@pytest.mark.twelve&#10;    def test_E2E6_1_00010_S__uid___A002_Xd0a588_X2239__procedure_hifa_image__regression():&#10;        &quot;&quot;&quot;Run ALMA cal+image regression on a 12m moderate-size test dataset in ASDM.&#10;    &#10;        Recipe name:                procedure_hifa_calimage&#10;        Dataset:                    E2E6.1.00010.S: uid___A002_Xd0a588_X2239&#10;        &quot;&quot;&quot;&#10;        ref_directory = 'pl-regressiontest/E2E6.1.00010.S'&#10;    &#10;        pt = PipelineTester(&#10;            visname=['uid___A002_Xd0a588_X2239'],&#10;            recipe='procedure_hifa_calimage.xml',&#10;            input_dir=ref_directory,&#10;            expectedoutput_dir=ref_directory,&#10;        )&#10;    &#10;&gt;       pt.run()&#10;&#10;tests/regression/fast/alma_if_fast_test.py:162: &#10;_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ &#10;tests/testing_utils.py:381: in run&#10;    self.__compare_results(new_file, default_relative_tolerance)&#10;_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ &#10;&#10;self = &lt;tests.testing_utils.PipelineTester object at 0x7f9c291ac4a0&gt;&#10;new_file = 'uid___A002_Xd0a588_X2239.NEW.results.txt'&#10;relative_tolerance = 1e-07&#10;&#10;    def __compare_results(self, new_file: str, relative_tolerance: float) -&gt; None:&#10;        &quot;&quot;&quot;&#10;        Compare results between new one loaded from file and old one.&#10;    &#10;        Args:&#10;            new_file : file path of new results&#10;            relative_tolerance : relative tolerance of output value&#10;        &quot;&quot;&quot;&#10;        with open(self.expectedoutput_file) as expected_fd, open(new_file) as new_fd:&#10;            expected_results = expected_fd.readlines()&#10;            new_results = new_fd.readlines()&#10;            errors = []&#10;            worst_diff = (0, 0)&#10;            worst_percent_diff = (0, 0)&#10;            for old, new in zip(expected_results, new_results):&#10;                try:&#10;                    oldkey, oldval, tol = self.__sanitize_results_string(old)&#10;                    newkey, newval, _ = self.__sanitize_results_string(new)&#10;                except ValueError as e:&#10;                    errorstr = &quot;The results: {0} could not be parsed. Error: {1}&quot;.format(new, str(e))&#10;                    errors.append(errorstr)&#10;                    continue&#10;    &#10;                assert oldkey == newkey, f&quot;Expected key {oldkey} does not match new key {newkey}.&quot;&#10;                tolerance = tol if tol else relative_tolerance&#10;                if newval is not None:&#10;                    LOG.info('Comparing %s to %s with a rel. tolerance of %s', oldval, newval, tolerance)&#10;                    if oldval != pytest.approx(newval, rel=tolerance):&#10;                        diff = oldval-newval&#10;                        percent_diff = (oldval-newval)/oldval * 100 if oldval != 0 else 100&#10;                        if abs(diff) &gt; abs(worst_diff[0]):&#10;                            worst_diff = diff, oldkey&#10;                        if abs(percent_diff) &gt; abs(worst_percent_diff[0]):&#10;                            worst_percent_diff = percent_diff, oldkey&#10;                        errorstr = f&quot;{oldkey}\n\tvalues differ by &gt; a relative difference of {tolerance}\n\texpected: {oldval}\n\tnew:      {newval}\n\tdiff: {diff}\n\tpercent_diff: {percent_diff}%&quot;&#10;                        errors.append(errorstr)&#10;                elif oldval is not None:&#10;                    # If only the new value is None, fail&#10;                    errorstr = f&quot;{oldkey}\n\tvalue is None\n\texpected: {oldval}\n\tnew:      {newval}&quot;&#10;                    errors.append(errorstr)&#10;                else:&#10;                    # If old and new values are both None, this is expected, so pass&#10;                    LOG.info('Comparing %s and %s... both values are None.', oldval, newval)&#10;    &#10;            [LOG.warning(x) for x in errors]&#10;            n_errors = len(errors)&#10;            if n_errors &gt; 0:&#10;                summary_str = f&quot;Worst absolute diff, {worst_diff[1]}: {worst_diff[0]}\nWorst percentage diff, {worst_percent_diff[1]}: {worst_percent_diff[0]}%&quot;&#10;                errors.append(summary_str)&#10;&gt;               pytest.fail(&quot;Failed to match {0} result value{1} within tolerance{1} :\n{2}&quot;.format(&#10;                    n_errors, '' if n_errors == 1 else 's', '\n'.join(errors)), pytrace=True)&#10;E               Failed: Failed to match 6 result values within tolerances :&#10;E               s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_0.spw_14.qa.metric.score_gfluxscale_amp_time_variation&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 1.9390070410307714&#10;E               &#09;new:      1.9390077167919766&#10;E               &#09;diff: -6.757612052155082e-07&#10;E               &#09;percent_diff: -3.4850889703643116e-05%&#10;E               s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_1.spw_14.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.5017564867171079&#10;E               &#09;new:      0.5017594399826114&#10;E               &#09;diff: -2.9532655034802957e-06&#10;E               &#09;percent_diff: -0.0005885854157667038%&#10;E               s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_2.spw_14.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.16244485548598875&#10;E               &#09;new:      0.1624421145945484&#10;E               &#09;diff: 2.740891440339288e-06&#10;E               &#09;percent_diff: 0.0016872750030398449%&#10;E               s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.qa.metric.score_derived_fluxes_snr&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 184.08359129153104&#10;E               &#09;new:      184.08400077411397&#10;E               &#09;diff: -0.0004094825829383808&#10;E               &#09;percent_diff: -0.00022244382569106227%&#10;E               s21.hif_applycal.uid___A002_Xd0a588_X2239.spw_14.qa.metric.gt90deg_offset_phase_vs_freqintercept&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: -95.10462209180606&#10;E               &#09;new:      -95.10436168021985&#10;E               &#09;diff: -0.00026041158621126215&#10;E               &#09;percent_diff: 0.00027381590976712205%&#10;E               s21.hif_applycal.uid___A002_Xd0a588_X2239.spw_14.qa.metric.phase_vs_freqintercept&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: -60.75311758869651&#10;E               &#09;new:      -60.753007921244205&#10;E               &#09;diff: -0.00010966745230689412&#10;E               &#09;percent_diff: 0.00018051329159657548%&#10;E               Worst absolute diff, s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.qa.metric.score_derived_fluxes_snr: -0.0004094825829383808&#10;E               Worst percentage diff, s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_2.spw_14.I: 0.0016872750030398449%&#10;&#10;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,
        )
    
&gt;       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 = &lt;tests.testing_utils.PipelineTester object at 0x7f9c291ac4a0&gt;
new_file = 'uid___A002_Xd0a588_X2239.NEW.results.txt'
relative_tolerance = 1e-07

    def __compare_results(self, new_file: str, relative_tolerance: float) -&gt; 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) &gt; abs(worst_diff[0]):
                            worst_diff = diff, oldkey
                        if abs(percent_diff) &gt; abs(worst_percent_diff[0]):
                            worst_percent_diff = percent_diff, oldkey
                        errorstr = f"{oldkey}\n\tvalues differ by &gt; 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 &gt; 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)
&gt;               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 6 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 &gt; a relative difference of 1e-07
E               	expected: 1.9390070410307714
E               	new:      1.9390077167919766
E               	diff: -6.757612052155082e-07
E               	percent_diff: -3.4850889703643116e-05%
E               s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_1.spw_14.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.5017564867171079
E               	new:      0.5017594399826114
E               	diff: -2.9532655034802957e-06
E               	percent_diff: -0.0005885854157667038%
E               s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_2.spw_14.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.16244485548598875
E               	new:      0.1624421145945484
E               	diff: 2.740891440339288e-06
E               	percent_diff: 0.0016872750030398449%
E               s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.qa.metric.score_derived_fluxes_snr
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 184.08359129153104
E               	new:      184.08400077411397
E               	diff: -0.0004094825829383808
E               	percent_diff: -0.00022244382569106227%
E               s21.hif_applycal.uid___A002_Xd0a588_X2239.spw_14.qa.metric.gt90deg_offset_phase_vs_freqintercept
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: -95.10462209180606
E               	new:      -95.10436168021985
E               	diff: -0.00026041158621126215
E               	percent_diff: 0.00027381590976712205%
E               s21.hif_applycal.uid___A002_Xd0a588_X2239.spw_14.qa.metric.phase_vs_freqintercept
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: -60.75311758869651
E               	new:      -60.753007921244205
E               	diff: -0.00010966745230689412
E               	percent_diff: 0.00018051329159657548%
E               Worst absolute diff, s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.qa.metric.score_derived_fluxes_snr: -0.0004094825829383808
E               Worst percentage diff, s17.hifa_gfluxscale.uid___A002_Xd0a588_X2239.field_2.spw_14.I: 0.0016872750030398449%

tests/testing_utils.py:440: Failed</failure></testcase><testcase classname="tests.regression.fast.alma_if_fast_test" name="test_uid___A002_Xef72bb_X9d29__renorm_restore_procedure_hifa_image__regression" file="tests/regression/fast/alma_if_fast_test.py" line="28" time="18346.604" /><testcase classname="tests.regression.fast.alma_if_fast_test" name="test_uid___A002_Xc845c0_X7366__cycle5_restore_procedure_hifa_image__regression" file="tests/regression/fast/alma_if_fast_test.py" line="52" time="25541.531" /><testcase classname="tests.regression.fast.alma_if_fast_test" name="test_csv_3899_eb2_small__procedure_hifa_calimage__regression" file="tests/regression/fast/alma_if_fast_test.py" line="164" time="14387.936" /><testcase classname="tests.regression.fast.alma_if_fast_test" name="test_uid___A002_Xee1eb6_Xc58d__procedure_hifa_calsurvey__regression" file="tests/regression/fast/alma_if_fast_test.py" line="183" time="33623.764"><failure message="@pytest.mark.twelve&#10;    def test_uid___A002_Xee1eb6_Xc58d__procedure_hifa_calsurvey__regression():&#10;        &quot;&quot;&quot;Run ALMA cal+survey regression on a calibration survey test dataset.&#10;    &#10;        Recipe name:                procedure_hifa_calsurvey&#10;        Dataset:                    uid___A002_Xee1eb6_Xc58d&#10;        &quot;&quot;&quot;&#10;        ref_directory = 'pl-regressiontest/uid___A002_Xee1eb6_Xc58d_calsurvey'&#10;    &#10;        pt = PipelineTester(&#10;            visname=['uid___A002_Xee1eb6_Xc58d'],&#10;            recipe='procedure_hifa_calsurvey.xml',&#10;            input_dir=ref_directory,&#10;            expectedoutput_dir=ref_directory,&#10;        )&#10;    &#10;&gt;       pt.run()&#10;&#10;tests/regression/fast/alma_if_fast_test.py:200: &#10;_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ &#10;tests/testing_utils.py:381: in run&#10;    self.__compare_results(new_file, default_relative_tolerance)&#10;_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ &#10;&#10;self = &lt;tests.testing_utils.PipelineTester object at 0x7fcbd69b0380&gt;&#10;new_file = 'uid___A002_Xee1eb6_Xc58d.NEW.results.txt'&#10;relative_tolerance = 1e-07&#10;&#10;    def __compare_results(self, new_file: str, relative_tolerance: float) -&gt; None:&#10;        &quot;&quot;&quot;&#10;        Compare results between new one loaded from file and old one.&#10;    &#10;        Args:&#10;            new_file : file path of new results&#10;            relative_tolerance : relative tolerance of output value&#10;        &quot;&quot;&quot;&#10;        with open(self.expectedoutput_file) as expected_fd, open(new_file) as new_fd:&#10;            expected_results = expected_fd.readlines()&#10;            new_results = new_fd.readlines()&#10;            errors = []&#10;            worst_diff = (0, 0)&#10;            worst_percent_diff = (0, 0)&#10;            for old, new in zip(expected_results, new_results):&#10;                try:&#10;                    oldkey, oldval, tol = self.__sanitize_results_string(old)&#10;                    newkey, newval, _ = self.__sanitize_results_string(new)&#10;                except ValueError as e:&#10;                    errorstr = &quot;The results: {0} could not be parsed. Error: {1}&quot;.format(new, str(e))&#10;                    errors.append(errorstr)&#10;                    continue&#10;    &#10;                assert oldkey == newkey, f&quot;Expected key {oldkey} does not match new key {newkey}.&quot;&#10;                tolerance = tol if tol else relative_tolerance&#10;                if newval is not None:&#10;                    LOG.info('Comparing %s to %s with a rel. tolerance of %s', oldval, newval, tolerance)&#10;                    if oldval != pytest.approx(newval, rel=tolerance):&#10;                        diff = oldval-newval&#10;                        percent_diff = (oldval-newval)/oldval * 100 if oldval != 0 else 100&#10;                        if abs(diff) &gt; abs(worst_diff[0]):&#10;                            worst_diff = diff, oldkey&#10;                        if abs(percent_diff) &gt; abs(worst_percent_diff[0]):&#10;                            worst_percent_diff = percent_diff, oldkey&#10;                        errorstr = f&quot;{oldkey}\n\tvalues differ by &gt; a relative difference of {tolerance}\n\texpected: {oldval}\n\tnew:      {newval}\n\tdiff: {diff}\n\tpercent_diff: {percent_diff}%&quot;&#10;                        errors.append(errorstr)&#10;                elif oldval is not None:&#10;                    # If only the new value is None, fail&#10;                    errorstr = f&quot;{oldkey}\n\tvalue is None\n\texpected: {oldval}\n\tnew:      {newval}&quot;&#10;                    errors.append(errorstr)&#10;                else:&#10;                    # If old and new values are both None, this is expected, so pass&#10;                    LOG.info('Comparing %s and %s... both values are None.', oldval, newval)&#10;    &#10;            [LOG.warning(x) for x in errors]&#10;            n_errors = len(errors)&#10;            if n_errors &gt; 0:&#10;                summary_str = f&quot;Worst absolute diff, {worst_diff[1]}: {worst_diff[0]}\nWorst percentage diff, {worst_percent_diff[1]}: {worst_percent_diff[0]}%&quot;&#10;                errors.append(summary_str)&#10;&gt;               pytest.fail(&quot;Failed to match {0} result value{1} within tolerance{1} :\n{2}&quot;.format(&#10;                    n_errors, '' if n_errors == 1 else 's', '\n'.join(errors)), pytrace=True)&#10;E               Failed: Failed to match 24 result values within tolerances :&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_0.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 6.43684975993458&#10;E               &#09;new:      6.436848875389339&#10;E               &#09;diff: 8.845452406092136e-07&#10;E               &#09;percent_diff: 1.3741896635757482e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_0.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9953313961364421&#10;E               &#09;new:      0.9953312593590304&#10;E               &#09;diff: 1.3677741161899348e-07&#10;E               &#09;percent_diff: 1.374189663361566e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_11.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 1.3163406759943754&#10;E               &#09;new:      1.3163409971063522&#10;E               &#09;diff: -3.211119767865256e-07&#10;E               &#09;percent_diff: -2.439429113165972e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_11.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9990967728871843&#10;E               &#09;new:      0.9990970166097599&#10;E               &#09;diff: -2.43722575565819e-07&#10;E               &#09;percent_diff: -2.4394291141739037e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_12.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 2.0904035735200677&#10;E               &#09;new:      2.090402854949724&#10;E               &#09;diff: 7.185703436718427e-07&#10;E               &#09;percent_diff: 3.4374718488537085e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_12.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9980266603871862&#10;E               &#09;new:      0.9980263173183314&#10;E               &#09;diff: 3.4306885488000205e-07&#10;E               &#09;percent_diff: 3.437471848165939e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_13.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 3.8784434661073814&#10;E               &#09;new:      3.878444610019205&#10;E               &#09;diff: -1.1439118234868317e-06&#10;E               &#09;percent_diff: -2.9494095594873386e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_13.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9938201645088008&#10;E               &#09;new:      0.9938204576270702&#10;E               &#09;diff: -2.931182693233225e-07&#10;E               &#09;percent_diff: -2.9494095591046623e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_16.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 1.2906203396900693&#10;E               &#09;new:      1.2906201504155397&#10;E               &#09;diff: 1.8927452960504354e-07&#10;E               &#09;percent_diff: 1.4665391810770324e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_16.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.98873804093041&#10;E               &#09;new:      0.9887378959281024&#10;E               &#09;diff: 1.450023076055018e-07&#10;E               &#09;percent_diff: 1.4665391802772507e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_17.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 3.1207121225170846&#10;E               &#09;new:      3.1207129025083584&#10;E               &#09;diff: -7.799912737915804e-07&#10;E               &#09;percent_diff: -2.4994015569832822e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_17.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 1.0086589464965487&#10;E               &#09;new:      1.008659198600923&#10;E               &#09;diff: -2.521043742653717e-07&#10;E               &#09;percent_diff: -2.4994015582871183e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_18.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.7527119295410829&#10;E               &#09;new:      0.7527121046559739&#10;E               &#09;diff: -1.7511489103227973e-07&#10;E               &#09;percent_diff: -2.3264529783531483e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_18.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9828239359200758&#10;E               &#09;new:      0.9828241645694431&#10;E               &#09;diff: -2.2864936732869268e-07&#10;E               &#09;percent_diff: -2.3264529787284978e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_2.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 1.618410391590432&#10;E               &#09;new:      1.61841002510508&#10;E               &#09;diff: 3.664853520657374e-07&#10;E               &#09;percent_diff: 2.264477254780771e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_2.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9892074575478698&#10;E               &#09;new:      0.989207233544091&#10;E               &#09;diff: 2.240037787482052e-07&#10;E               &#09;percent_diff: 2.2644772543818514e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_3.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 1.021946498634394&#10;E               &#09;new:      1.0219468079803513&#10;E               &#09;diff: -3.0934595729448233e-07&#10;E               &#09;percent_diff: -3.0270269305472935e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_3.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9884073036939544&#10;E               &#09;new:      0.988407602887507&#10;E               &#09;diff: -2.9919355259977465e-07&#10;E               &#09;percent_diff: -3.0270269299063728e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_4.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 1.9982802740350474&#10;E               &#09;new:      1.998279869420348&#10;E               &#09;diff: 4.046146993008648e-07&#10;E               &#09;percent_diff: 2.0248145595904948e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_4.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9913095430688047&#10;E               &#09;new:      0.9913093423470051&#10;E               &#09;diff: 2.0072179962582481e-07&#10;E               &#09;percent_diff: 2.0248145599854588e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_8.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 1.2841153440085296&#10;E               &#09;new:      1.2841155200899643&#10;E               &#09;diff: -1.7608143476621763e-07&#10;E               &#09;percent_diff: -1.3712275582390987e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_8.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9993316695720197&#10;E               &#09;new:      0.9993318066031321&#10;E               &#09;diff: -1.3703111245710886e-07&#10;E               &#09;percent_diff: -1.3712275576715656e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_9.spw_16.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 1.9139242142944206&#10;E               &#09;new:      1.9139240026602145&#10;E               &#09;diff: 2.1163420615977202e-07&#10;E               &#09;percent_diff: 1.1057606386875262e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_9.spw_16.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9913370742983115&#10;E               &#09;new:      0.9913369646801599&#10;E               &#09;diff: 1.0961815166687927e-07&#10;E               &#09;percent_diff: 1.1057606389276748e-05%&#10;E               Worst absolute diff, s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_13.spw_16.I: -1.1439118234868317e-06&#10;E               Worst percentage diff, s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_12.spw_16.I: 3.4374718488537085e-05%&#10;&#10;tests/testing_utils.py:440: Failed">@pytest.mark.twelve
    def test_uid___A002_Xee1eb6_Xc58d__procedure_hifa_calsurvey__regression():
        """Run ALMA cal+survey regression on a calibration survey test dataset.
    
        Recipe name:                procedure_hifa_calsurvey
        Dataset:                    uid___A002_Xee1eb6_Xc58d
        """
        ref_directory = 'pl-regressiontest/uid___A002_Xee1eb6_Xc58d_calsurvey'
    
        pt = PipelineTester(
            visname=['uid___A002_Xee1eb6_Xc58d'],
            recipe='procedure_hifa_calsurvey.xml',
            input_dir=ref_directory,
            expectedoutput_dir=ref_directory,
        )
    
&gt;       pt.run()

tests/regression/fast/alma_if_fast_test.py:200: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/testing_utils.py:381: in run
    self.__compare_results(new_file, default_relative_tolerance)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = &lt;tests.testing_utils.PipelineTester object at 0x7fcbd69b0380&gt;
new_file = 'uid___A002_Xee1eb6_Xc58d.NEW.results.txt'
relative_tolerance = 1e-07

    def __compare_results(self, new_file: str, relative_tolerance: float) -&gt; 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) &gt; abs(worst_diff[0]):
                            worst_diff = diff, oldkey
                        if abs(percent_diff) &gt; abs(worst_percent_diff[0]):
                            worst_percent_diff = percent_diff, oldkey
                        errorstr = f"{oldkey}\n\tvalues differ by &gt; 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 &gt; 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)
&gt;               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 24 result values within tolerances :
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_0.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 6.43684975993458
E               	new:      6.436848875389339
E               	diff: 8.845452406092136e-07
E               	percent_diff: 1.3741896635757482e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_0.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9953313961364421
E               	new:      0.9953312593590304
E               	diff: 1.3677741161899348e-07
E               	percent_diff: 1.374189663361566e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_11.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 1.3163406759943754
E               	new:      1.3163409971063522
E               	diff: -3.211119767865256e-07
E               	percent_diff: -2.439429113165972e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_11.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9990967728871843
E               	new:      0.9990970166097599
E               	diff: -2.43722575565819e-07
E               	percent_diff: -2.4394291141739037e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_12.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 2.0904035735200677
E               	new:      2.090402854949724
E               	diff: 7.185703436718427e-07
E               	percent_diff: 3.4374718488537085e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_12.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9980266603871862
E               	new:      0.9980263173183314
E               	diff: 3.4306885488000205e-07
E               	percent_diff: 3.437471848165939e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_13.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 3.8784434661073814
E               	new:      3.878444610019205
E               	diff: -1.1439118234868317e-06
E               	percent_diff: -2.9494095594873386e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_13.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9938201645088008
E               	new:      0.9938204576270702
E               	diff: -2.931182693233225e-07
E               	percent_diff: -2.9494095591046623e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_16.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 1.2906203396900693
E               	new:      1.2906201504155397
E               	diff: 1.8927452960504354e-07
E               	percent_diff: 1.4665391810770324e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_16.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.98873804093041
E               	new:      0.9887378959281024
E               	diff: 1.450023076055018e-07
E               	percent_diff: 1.4665391802772507e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_17.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 3.1207121225170846
E               	new:      3.1207129025083584
E               	diff: -7.799912737915804e-07
E               	percent_diff: -2.4994015569832822e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_17.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 1.0086589464965487
E               	new:      1.008659198600923
E               	diff: -2.521043742653717e-07
E               	percent_diff: -2.4994015582871183e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_18.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.7527119295410829
E               	new:      0.7527121046559739
E               	diff: -1.7511489103227973e-07
E               	percent_diff: -2.3264529783531483e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_18.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9828239359200758
E               	new:      0.9828241645694431
E               	diff: -2.2864936732869268e-07
E               	percent_diff: -2.3264529787284978e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_2.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 1.618410391590432
E               	new:      1.61841002510508
E               	diff: 3.664853520657374e-07
E               	percent_diff: 2.264477254780771e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_2.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9892074575478698
E               	new:      0.989207233544091
E               	diff: 2.240037787482052e-07
E               	percent_diff: 2.2644772543818514e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_3.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 1.021946498634394
E               	new:      1.0219468079803513
E               	diff: -3.0934595729448233e-07
E               	percent_diff: -3.0270269305472935e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_3.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9884073036939544
E               	new:      0.988407602887507
E               	diff: -2.9919355259977465e-07
E               	percent_diff: -3.0270269299063728e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_4.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 1.9982802740350474
E               	new:      1.998279869420348
E               	diff: 4.046146993008648e-07
E               	percent_diff: 2.0248145595904948e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_4.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9913095430688047
E               	new:      0.9913093423470051
E               	diff: 2.0072179962582481e-07
E               	percent_diff: 2.0248145599854588e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_8.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 1.2841153440085296
E               	new:      1.2841155200899643
E               	diff: -1.7608143476621763e-07
E               	percent_diff: -1.3712275582390987e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_8.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9993316695720197
E               	new:      0.9993318066031321
E               	diff: -1.3703111245710886e-07
E               	percent_diff: -1.3712275576715656e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_9.spw_16.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 1.9139242142944206
E               	new:      1.9139240026602145
E               	diff: 2.1163420615977202e-07
E               	percent_diff: 1.1057606386875262e-05%
E               s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_9.spw_16.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9913370742983115
E               	new:      0.9913369646801599
E               	diff: 1.0961815166687927e-07
E               	percent_diff: 1.1057606389276748e-05%
E               Worst absolute diff, s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_13.spw_16.I: -1.1439118234868317e-06
E               Worst percentage diff, s16.hifa_gfluxscale.uid___A002_Xee1eb6_Xc58d.field_12.spw_16.I: 3.4374718488537085e-05%

tests/testing_utils.py:440: Failed</failure></testcase><testcase classname="tests.regression.fast.vla_fast_test" name="test_13A_537__restore__cont_cube_selfcal__regression" file="tests/regression/fast/vla_fast_test.py" line="73" time="36517.443" /><testcase classname="tests.regression.fast.vlass_fast_test" name="test_TSKY0001__vlass_quicklook_regression" file="tests/regression/fast/vlass_fast_test.py" line="6" time="1176.108" /><testcase classname="tests.regression.fast.alma_sd_fast_test" name="test_uid___A002_X85c183_X36f__procedure_hsd_calimage__regression" file="tests/regression/fast/alma_sd_fast_test.py" line="6" time="6459.057" /><testcase classname="tests.regression.fast.alma_if_fast_test" name="test_2022_1_00207_S__uid___A001_X2d20_X373d__PPR__regression" file="tests/regression/fast/alma_if_fast_test.py" line="101" time="45662.099" /><testcase classname="tests.regression.fast.alma_if_fast_test" name="test_2023_1_00228_S__uid___A002_X1199f9e_X7c24__procedure_hifa_calimage_diffgain__regression" file="tests/regression/fast/alma_if_fast_test.py" line="124" time="48654.318"><failure message="@pytest.mark.seven&#10;    @pytest.mark.mpi&#10;    def test_2023_1_00228_S__uid___A002_X1199f9e_X7c24__procedure_hifa_calimage_diffgain__regression():&#10;        &quot;&quot;&quot;Run ALMA cal+image regression on a 7m B2B dataset with differential gain calibration.&#10;    &#10;        Recipe name:                procedure_hifa_calimage_diffgain&#10;        Dataset:                    2023.1.00228.S: uid___A002_X1199f9e_X7c24&#10;        &quot;&quot;&quot;&#10;        ref_directory = 'pl-regressiontest/2023.1.00228.S'&#10;    &#10;        pt = PipelineTester(&#10;            visname=['uid___A002_X1199f9e_X7c24'],&#10;            recipe='procedure_hifa_calimage_diffgain.xml',&#10;            input_dir=ref_directory,&#10;            expectedoutput_dir=ref_directory,&#10;        )&#10;    &#10;&gt;       pt.run()&#10;&#10;tests/regression/fast/alma_if_fast_test.py:142: &#10;_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ &#10;tests/testing_utils.py:381: in run&#10;    self.__compare_results(new_file, default_relative_tolerance)&#10;_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ &#10;&#10;self = &lt;tests.testing_utils.PipelineTester object at 0x7f98cec24c50&gt;&#10;new_file = 'uid___A002_X1199f9e_X7c24.NEW.results.txt'&#10;relative_tolerance = 1e-07&#10;&#10;    def __compare_results(self, new_file: str, relative_tolerance: float) -&gt; None:&#10;        &quot;&quot;&quot;&#10;        Compare results between new one loaded from file and old one.&#10;    &#10;        Args:&#10;            new_file : file path of new results&#10;            relative_tolerance : relative tolerance of output value&#10;        &quot;&quot;&quot;&#10;        with open(self.expectedoutput_file) as expected_fd, open(new_file) as new_fd:&#10;            expected_results = expected_fd.readlines()&#10;            new_results = new_fd.readlines()&#10;            errors = []&#10;            worst_diff = (0, 0)&#10;            worst_percent_diff = (0, 0)&#10;            for old, new in zip(expected_results, new_results):&#10;                try:&#10;                    oldkey, oldval, tol = self.__sanitize_results_string(old)&#10;                    newkey, newval, _ = self.__sanitize_results_string(new)&#10;                except ValueError as e:&#10;                    errorstr = &quot;The results: {0} could not be parsed. Error: {1}&quot;.format(new, str(e))&#10;                    errors.append(errorstr)&#10;                    continue&#10;    &#10;                assert oldkey == newkey, f&quot;Expected key {oldkey} does not match new key {newkey}.&quot;&#10;                tolerance = tol if tol else relative_tolerance&#10;                if newval is not None:&#10;                    LOG.info('Comparing %s to %s with a rel. tolerance of %s', oldval, newval, tolerance)&#10;                    if oldval != pytest.approx(newval, rel=tolerance):&#10;                        diff = oldval-newval&#10;                        percent_diff = (oldval-newval)/oldval * 100 if oldval != 0 else 100&#10;                        if abs(diff) &gt; abs(worst_diff[0]):&#10;                            worst_diff = diff, oldkey&#10;                        if abs(percent_diff) &gt; abs(worst_percent_diff[0]):&#10;                            worst_percent_diff = percent_diff, oldkey&#10;                        errorstr = f&quot;{oldkey}\n\tvalues differ by &gt; a relative difference of {tolerance}\n\texpected: {oldval}\n\tnew:      {newval}\n\tdiff: {diff}\n\tpercent_diff: {percent_diff}%&quot;&#10;                        errors.append(errorstr)&#10;                elif oldval is not None:&#10;                    # If only the new value is None, fail&#10;                    errorstr = f&quot;{oldkey}\n\tvalue is None\n\texpected: {oldval}\n\tnew:      {newval}&quot;&#10;                    errors.append(errorstr)&#10;                else:&#10;                    # If old and new values are both None, this is expected, so pass&#10;                    LOG.info('Comparing %s and %s... both values are None.', oldval, newval)&#10;    &#10;            [LOG.warning(x) for x in errors]&#10;            n_errors = len(errors)&#10;            if n_errors &gt; 0:&#10;                summary_str = f&quot;Worst absolute diff, {worst_diff[1]}: {worst_diff[0]}\nWorst percentage diff, {worst_percent_diff[1]}: {worst_percent_diff[0]}%&quot;&#10;                errors.append(summary_str)&#10;&gt;               pytest.fail(&quot;Failed to match {0} result value{1} within tolerance{1} :\n{2}&quot;.format(&#10;                    n_errors, '' if n_errors == 1 else 's', '\n'.join(errors)), pytrace=True)&#10;E               Failed: Failed to match 13 result values within tolerances :&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_29.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.8378082712078273&#10;E               &#09;new:      0.8378077335399046&#10;E               &#09;diff: 5.376679227397929e-07&#10;E               &#09;percent_diff: 6.417553290141947e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_29.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.8081204912780358&#10;E               &#09;new:      0.808119972662404&#10;E               &#09;diff: 5.186156317726898e-07&#10;E               &#09;percent_diff: 6.417553290258777e-05%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_33.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.8460116243974625&#10;E               &#09;new:      0.8460103046383503&#10;E               &#09;diff: 1.319759112217156e-06&#10;E               &#09;percent_diff: 0.00015599775158610862%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_33.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.8173528334400738&#10;E               &#09;new:      0.8173515583880312&#10;E               &#09;diff: 1.2750520426152434e-06&#10;E               &#09;percent_diff: 0.0001559977515767341%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_41.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.7885692224368216&#10;E               &#09;new:      0.7885703778722577&#10;E               &#09;diff: -1.1554354361065222e-06&#10;E               &#09;percent_diff: -0.00014652301956903893%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_41.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.7642712175824183&#10;E               &#09;new:      0.764272337415684&#10;E               &#09;diff: -1.119833265672554e-06&#10;E               &#09;percent_diff: -0.00014652301956560233%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_29.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.12352226017389038&#10;E               &#09;new:      0.12352412354044164&#10;E               &#09;diff: -1.86336655125241e-06&#10;E               &#09;percent_diff: -0.0015085269235109741%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_29.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.5679953042438604&#10;E               &#09;new:      0.5680038726059492&#10;E               &#09;diff: -8.568362088845483e-06&#10;E               &#09;percent_diff: -0.0015085269235195619%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_33.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.21527453621962267&#10;E               &#09;new:      0.2152731154481138&#10;E               &#09;diff: 1.4207715088587758e-06&#10;E               &#09;percent_diff: 0.0006599812192415119%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_33.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9918525112637544&#10;E               &#09;new:      0.9918459652234575&#10;E               &#09;diff: 6.5460402969286235e-06&#10;E               &#09;percent_diff: 0.0006599812192427765%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_41.I&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.20283735907845116&#10;E               &#09;new:      0.20284323676879906&#10;E               &#09;diff: -5.877690347905196e-06&#10;E               &#09;percent_diff: -0.0028977355920079243%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_41.qa.metric.score_gfluxscale_k_spw&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.9381597108479458&#10;E               &#09;new:      0.9381868962357969&#10;E               &#09;diff: -2.718538785106972e-05&#10;E               &#09;percent_diff: -0.0028977355920026125%&#10;E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.qa.score.score_derived_fluxes_snr&#10;E               &#09;values differ by &gt; a relative difference of 1e-07&#10;E               &#09;expected: 0.8782559648560236&#10;E               &#09;new:      0.8782558045461518&#10;E               &#09;diff: 1.6030987182169554e-07&#10;E               &#09;percent_diff: 1.825320615362696e-05%&#10;E               Worst absolute diff, s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_41.qa.metric.score_gfluxscale_k_spw: -2.718538785106972e-05&#10;E               Worst percentage diff, s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_41.I: -0.0028977355920079243%&#10;&#10;tests/testing_utils.py:440: Failed">@pytest.mark.seven
    @pytest.mark.mpi
    def test_2023_1_00228_S__uid___A002_X1199f9e_X7c24__procedure_hifa_calimage_diffgain__regression():
        """Run ALMA cal+image regression on a 7m B2B dataset with differential gain calibration.
    
        Recipe name:                procedure_hifa_calimage_diffgain
        Dataset:                    2023.1.00228.S: uid___A002_X1199f9e_X7c24
        """
        ref_directory = 'pl-regressiontest/2023.1.00228.S'
    
        pt = PipelineTester(
            visname=['uid___A002_X1199f9e_X7c24'],
            recipe='procedure_hifa_calimage_diffgain.xml',
            input_dir=ref_directory,
            expectedoutput_dir=ref_directory,
        )
    
&gt;       pt.run()

tests/regression/fast/alma_if_fast_test.py:142: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/testing_utils.py:381: in run
    self.__compare_results(new_file, default_relative_tolerance)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = &lt;tests.testing_utils.PipelineTester object at 0x7f98cec24c50&gt;
new_file = 'uid___A002_X1199f9e_X7c24.NEW.results.txt'
relative_tolerance = 1e-07

    def __compare_results(self, new_file: str, relative_tolerance: float) -&gt; 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) &gt; abs(worst_diff[0]):
                            worst_diff = diff, oldkey
                        if abs(percent_diff) &gt; abs(worst_percent_diff[0]):
                            worst_percent_diff = percent_diff, oldkey
                        errorstr = f"{oldkey}\n\tvalues differ by &gt; 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 &gt; 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)
&gt;               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 13 result values within tolerances :
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_29.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.8378082712078273
E               	new:      0.8378077335399046
E               	diff: 5.376679227397929e-07
E               	percent_diff: 6.417553290141947e-05%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_29.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.8081204912780358
E               	new:      0.808119972662404
E               	diff: 5.186156317726898e-07
E               	percent_diff: 6.417553290258777e-05%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_33.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.8460116243974625
E               	new:      0.8460103046383503
E               	diff: 1.319759112217156e-06
E               	percent_diff: 0.00015599775158610862%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_33.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.8173528334400738
E               	new:      0.8173515583880312
E               	diff: 1.2750520426152434e-06
E               	percent_diff: 0.0001559977515767341%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_41.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.7885692224368216
E               	new:      0.7885703778722577
E               	diff: -1.1554354361065222e-06
E               	percent_diff: -0.00014652301956903893%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_1.spw_41.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.7642712175824183
E               	new:      0.764272337415684
E               	diff: -1.119833265672554e-06
E               	percent_diff: -0.00014652301956560233%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_29.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.12352226017389038
E               	new:      0.12352412354044164
E               	diff: -1.86336655125241e-06
E               	percent_diff: -0.0015085269235109741%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_29.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.5679953042438604
E               	new:      0.5680038726059492
E               	diff: -8.568362088845483e-06
E               	percent_diff: -0.0015085269235195619%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_33.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.21527453621962267
E               	new:      0.2152731154481138
E               	diff: 1.4207715088587758e-06
E               	percent_diff: 0.0006599812192415119%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_33.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9918525112637544
E               	new:      0.9918459652234575
E               	diff: 6.5460402969286235e-06
E               	percent_diff: 0.0006599812192427765%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_41.I
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.20283735907845116
E               	new:      0.20284323676879906
E               	diff: -5.877690347905196e-06
E               	percent_diff: -0.0028977355920079243%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_41.qa.metric.score_gfluxscale_k_spw
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.9381597108479458
E               	new:      0.9381868962357969
E               	diff: -2.718538785106972e-05
E               	percent_diff: -0.0028977355920026125%
E               s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.qa.score.score_derived_fluxes_snr
E               	values differ by &gt; a relative difference of 1e-07
E               	expected: 0.8782559648560236
E               	new:      0.8782558045461518
E               	diff: 1.6030987182169554e-07
E               	percent_diff: 1.825320615362696e-05%
E               Worst absolute diff, s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_41.qa.metric.score_gfluxscale_k_spw: -2.718538785106972e-05
E               Worst percentage diff, s16.hifa_gfluxscale.uid___A002_X1199f9e_X7c24.field_4.spw_41.I: -0.0028977355920079243%

tests/testing_utils.py:440: Failed</failure></testcase></testsuite></testsuites>