I am currently working on some tests. And fore some algorithms I compare the result to a known (analytical or via another algorithm) solution.

Now when trying to optimise for example speed of an algorithm, it might suffer a little bit from exactness. So then such a test might fail.

Is there a good way to know *by how much* it fails?

## Example

Imagine that `a`

and `b`

are results of alogrhtms computing the same and that the tests are within a test set of maybe 50 tests.

```
julia> a = 0.0
0.0
julia> b = 1e-7
1.0e-7
julia> @test isapprox(a,b; atol=1e-7)
Test Passed
julia> @test isapprox(a,b; atol=1e-8)
Test Failed at REPL[14]:1
Expression: isapprox(a, b; atol = 1.0e-8)
Evaluated: isapprox(0.0, 1.0e-7; atol = 1.0e-8)
ERROR: There was an error during testing
```

In such a scenario It would be great to have something like a reason what the actual value was. A precise example is what we did on our package with `is_point`

Basic functions · ManifoldsBase.jl which can be set to throw a domain error that provides the reason why something is not a point.

Then for example

```
julia> using Manifolds, Test
julia> @test is_point(Sphere(2), [1.0001, 0.0, 0.0], true) #this point is not of norm 1
Error During Test at REPL[18]:1
Test threw exception
Expression: is_point(Sphere(2), [1.0001, 0.0, 0.0], true)
DomainError with 1.0001:
The point [1.0001, 0.0, 0.0] does not lie on the Sphere(2, ℝ) since its norm is not 1.
Stacktrace:
[...]
ERROR: There was an error during testing
julia> @test is_point(Sphere(2), [1.0, 0.0, 0.0], true) #this point is of norm 1 so the test is fine
Test Passed
```

where I do not necessarily need the (here omitted) Stacktrace but I find the information provided in the error message very helpful to debug tests – that is knowing *why* or *how much* it failed.

Would something like that be possible here as well? Probably only by implementing an own `isapprox`

?

*edit:* of course instead of an error also some information printed would also be fine with me, as long as one can get more information about why a test failed (that is e.g. by how much).