Randomised Testing

Helpers for randomized testing.

diofant.utilities.randtest.random_complex_number(a=2, b=-1, c=3, d=1, rational=True)[source]

Return a random complex number.

To reduce chance of hitting branch cuts or anything, we guarantee b <= Im z <= d, a <= Re z <= c

diofant.utilities.randtest.verify_derivative_numerically(f, z, tol=1e-06, a=2, b=-1, c=3, d=1)[source]

Test numerically that the symbolically computed derivative of f with respect to z is correct.

This routine does not test whether there are Floats present with precision higher than 15 digits so if there are, your results may not be what you expect due to round-off errors.

Examples

>>> verify_derivative_numerically(sin(x), x)
true
diofant.utilities.randtest.verify_numerically(f, g, z=None, tol=1e-06, a=2, b=-1, c=3, d=1)[source]

Test numerically that f and g agree when evaluated in the argument z.

If z is None, all symbols will be tested. This routine does not test whether there are Floats present with precision higher than 15 digits so if there are, your results may not be what you expect due to round- off errors.

Examples

>>> verify_numerically(sin(x)**2 + cos(x)**2, 1, x)
true