Multivariate Pattern Analysis in Python

# mvpa2.testing.tools.assert_approx_equal

`mvpa2.testing.tools.``assert_approx_equal`(actual, desired, significant=7, err_msg='', verbose=True)

  Raise an assertion if two items are not equal up to significant digits.

  Note

  It is recommended to use one of `assert_allclose`, `assert_array_almost_equal_nulp` or `assert_array_max_ulp` instead of this function for more consistent floating point comparisons.

  Given two numbers, check that they are approximately equal. Approximately equal is defined as the number of significant digits that agree.

  Parameters:

  actual : scalar

  > The object to check.

  desired : scalar

  > The expected object.

  significant : int, optional

  > Desired precision, default is 7.

  err_msg : str, optional

  > The error message to be printed in case of failure.

  verbose : bool, optional

  > If True, the conflicting values are appended to the error message.

  Raises:

  AssertionError

  > If actual and desired are not equal up to specified precision.

  See also

  `assert_allclose`
    Compare two array_like objects for equality with desired relative and/or absolute precision.

  `assert_array_almost_equal_nulp`, `assert_array_max_ulp`, `assert_equal`

  Examples

      >>> np.testing.assert_approx_equal(0.12345677777777e-20, 0.1234567e-20)
      >>> np.testing.assert_approx_equal(0.12345670e-20, 0.12345671e-20,
                                         significant=8)
      >>> np.testing.assert_approx_equal(0.12345670e-20, 0.12345672e-20,
                                         significant=8)
      ...
      <type 'exceptions.AssertionError'>:
      Items are not equal to 8 significant digits:
       ACTUAL: 1.234567e-021
       DESIRED: 1.2345672000000001e-021

  the evaluated condition that raises the exception is

      >>> abs(0.12345670e-20/1e-21 - 0.12345672e-20/1e-21) >= 10**-(8-1)
      True