def compare_outputs(self, outputs, atol=<NUM_LIT:0>, rtol=<NUM_LIT>, raise_error=True,<EOL>ignore_keywords_overwrite=None):
all_okay = True<EOL>creature_report = '<STR_LIT>'<EOL>if ignore_keywords_overwrite is None:<EOL><INDENT>ignore_keywords = self.ignore_keywords<EOL><DEDENT>else:<EOL><INDENT>ignore_keywords = ignore_keywords_overwrite<EOL><DEDENT>for actual, desired in outputs:<EOL><INDENT>desired = get_bigdata('<STR_LIT>', self.env, self.detector,<EOL>'<STR_LIT>', desired)<EOL>fdiff = FITSDiff(actual, desired, rtol=rtol, atol=atol,<EOL>ignore_keywords=ignore_keywords)<EOL>creature_report += fdiff.report()<EOL>if not fdiff.identical and all_okay:<EOL><INDENT>all_okay = False<EOL><DEDENT><DEDENT>if not all_okay and raise_error:<EOL><INDENT>raise AssertionError(os.linesep + creature_report)<EOL><DEDENT>return creature_report<EOL>
Compare ACSTOOLS output with "truth" using ``fitsdiff``.

Parameters
----------
outputs : list of tuple
    A list of tuples, each containing filename (without path)
    of CALXXX output and truth, in that order. Example::

        [('output1.fits', 'truth1.fits'),
         ('output2.fits', 'truth2.fits'),
         ...]

atol, rtol : float
    Absolute and relative tolerance for data comparison.

raise_error : bool
    Raise ``AssertionError`` if difference is found.

ignore_keywords_overwrite : list of str or `None`
    If not `None`, these will overwrite
    ``self.ignore_keywords`` for the calling test.

Returns
-------
report : str
    Report from ``fitsdiff``.
    This is part of error message if ``raise_error=True``.