'Verify all values in the instance.
Parameters
option : str
Output verification option.  Must be one of ``"fix"``,
``"silentfix"``, ``"ignore"``, ``"warn"``, or
``"exception"``.  May also be any combination of ``"fix"`` or
``"silentfix"`` with ``"+ignore"``, ``+warn``, or ``+exception"
(e.g. ``"fix+warn"``).  See :ref:`verify` for more info.'

def verify(self, option=u'warn'):

    opt = option.lower()
    if (opt not in VERIFY_OPTIONS):
        raise ValueError(u'Option    {!r}    not    recognized.'.format(option))
    if (opt == u'ignore'):
        return
    errs = self._verify(opt)
    if (u'+' in opt):
        (fix_opt, report_opt) = opt.split(u'+')
    elif (opt in [u'fix', u'silentfix']):
        (fix_opt, report_opt) = (opt, u'exception')
    else:
        (fix_opt, report_opt) = (None, opt)
    if ((fix_opt == u'silentfix') and (report_opt == u'ignore')):
        return
    if (fix_opt == u'silentfix'):
        line_filter = (lambda x: (not x[0]))
    elif ((fix_opt == u'fix') and (report_opt == u'ignore')):
        line_filter = operator.itemgetter(0)
    else:
        line_filter = None
    unfixable = False
    messages = []
    for (fixable, message) in errs.iter_lines(filter=line_filter):
        if (fixable is not None):
            unfixable = (not fixable)
        messages.append(message)
    if messages:
        messages.insert(0, u'Verification    reported    errors:')
        messages.append(u'Note:    astropy.io.fits    uses    zero-based    indexing.\n')
        if ((fix_opt == u'silentfix') and (not unfixable)):
            return
        elif ((report_opt == u'warn') or ((fix_opt == u'fix') and (not unfixable))):
            for line in messages:
                warnings.warn(line, VerifyWarning)
        else:
            raise VerifyError((u'\n' + u'\n'.join(messages)))
