Author: bugman
Date: Tue Aug 26 12:10:46 2014
New Revision: 25276
URL: http://svn.gna.org/viewcvs/relax?rev=25276&view=rev
Log:
Created a unit test to check the dfunc() function of the relax_fit C module off
the minimum.
Modified:
trunk/test_suite/unit_tests/_target_functions/test_relax_fit.py
Modified: trunk/test_suite/unit_tests/_target_functions/test_relax_fit.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/test_suite/unit_tests/_target_functions/test_relax_fit.py?rev=25276&r1=25275&r2=25276&view=diff
==============================================================================
--- trunk/test_suite/unit_tests/_target_functions/test_relax_fit.py
(original)
+++ trunk/test_suite/unit_tests/_target_functions/test_relax_fit.py Tue Aug
26 12:10:46 2014
@@ -34,12 +34,12 @@
"""Create a number of objects for the calculation and testing of the
relaxation curve-fitting equations."""
# The parameter scaling.
- scaling_list = [1, 1000]
+ self.scaling_list = [1, 1000]
# The parameter values at the minimum.
self.I0 = 1000
self.R = 1
- self.params = [self.R/scaling_list[0], self.I0/scaling_list[1]]
+ self.params = [self.R/self.scaling_list[0],
self.I0/self.scaling_list[1]]
# The time points.
relax_times = [0, 1, 2, 3, 4]
@@ -51,7 +51,7 @@
errors = [10, 10, 10, 10, 10]
# Setup the C module.
- setup(num_params=2, num_times=len(relax_times), values=I, sd=errors,
relax_times=relax_times, scaling_matrix=scaling_list)
+ setup(num_params=2, num_times=len(relax_times), values=I, sd=errors,
relax_times=relax_times, scaling_matrix=self.scaling_list)
def test_func(self):
@@ -76,3 +76,25 @@
# Assert that the elements must be 0.0.
self.assertAlmostEqual(grad[0], 0.0, 6)
self.assertAlmostEqual(grad[1], 0.0, 6)
+
+
+ def test_dfunc_off_minimum(self):
+ """Unit test for the gradient returned by the dfunc() function at a
position away from the minimum.
+
+ This uses the data from
test_suite/shared_data/curve_fitting/numeric_gradient/integrate.log.
+ """
+
+ # The off-minimum parameter values.
+ I0 = 500
+ R = 2
+ params = [R/self.scaling_list[0], I0/self.scaling_list[1]]
+
+ # Get the chi-squared gradient.
+ grad = dfunc(params)
+
+ # Printout.
+ print("The gradient at %s is:\n%s" % (params, grad))
+
+ # Check that the gradient matches the numerically derived values.
+ self.assertAlmostEqual(grad[0], 722.67864120737488, 6)
+ self.assertAlmostEqual(grad[1], -11.564651301654292, 6)
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-commits mailing list
[email protected]
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits