From b84c18296345244087f9997b44bf6b6a66fd5420 Mon Sep 17 00:00:00 2001 From: Martin Reinecke <martin@mpa-garching.mpg.de> Date: Thu, 21 Jun 2018 10:16:48 +0200 Subject: [PATCH] improve energy tests --- nifty5/extra/energy_tests.py | 4 +++- test/test_energies/test_map.py | 6 +++--- test/test_energies/test_power.py | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/nifty5/extra/energy_tests.py b/nifty5/extra/energy_tests.py index 693d1ba40..d926d10a3 100644 --- a/nifty5/extra/energy_tests.py +++ b/nifty5/extra/energy_tests.py @@ -54,7 +54,9 @@ def check_value_gradient_consistency(E, tol=1e-6, ntries=100): for i in range(50): Emid = E.at(E.position + 0.5*dir) dirder = Emid.gradient.vdot(dir)/dirnorm - if abs((E2.value-val)/dirnorm-dirder) < tol: + t1 = (E2.value-val)/dirnorm + xtol = tol*max(abs(t1), abs(dirder)) + if abs(t1-dirder) < xtol: break dir *= 0.5 dirnorm *= 0.5 diff --git a/test/test_energies/test_map.py b/test/test_energies/test_map.py index 7c7e5f520..c2a8939be 100644 --- a/test/test_energies/test_map.py +++ b/test/test_energies/test_map.py @@ -61,7 +61,7 @@ class Energy_Tests(unittest.TestCase): energy = ift.library.WienerFilterEnergy( position=s0, d=d, R=R, N=N, S=S, iteration_controller=IC) ift.extra.check_value_gradient_curvature_consistency( - energy, tol=1e-4, ntries=10) + energy, tol=1e-6, ntries=10) @expand(product([ift.GLSpace(15), ift.RGSpace(64, distances=.789), @@ -95,7 +95,7 @@ class Energy_Tests(unittest.TestCase): N=N, S=S) if isinstance(nonlinearity, ift.library.Linear): ift.extra.check_value_gradient_curvature_consistency( - energy, tol=1e-4, ntries=10) + energy, tol=1e-6, ntries=10) else: ift.extra.check_value_gradient_consistency( - energy, tol=1e-4, ntries=10) + energy, tol=1e-6, ntries=10) diff --git a/test/test_energies/test_power.py b/test/test_energies/test_power.py index 99669117f..4430a2a96 100644 --- a/test/test_energies/test_power.py +++ b/test/test_energies/test_power.py @@ -81,4 +81,4 @@ class Energy_Tests(unittest.TestCase): ht=ht, N=N, samples=10) - ift.extra.check_value_gradient_consistency(energy, tol=1e-5, ntries=10) + ift.extra.check_value_gradient_consistency(energy, tol=1e-6, ntries=10) -- GitLab