Author: bugman
Date: Tue Aug 26 11:35:25 2014
New Revision: 25272
URL: http://svn.gna.org/viewcvs/relax?rev=25272&view=rev
Log:
Created 2 unit tests for the target_functions.relax_fit relax C module.
These check the func() and dfunc() Python methods exposed by the module.
Added:
trunk/test_suite/unit_tests/_target_functions/test_relax_fit.py
Modified:
trunk/test_suite/unit_tests/_target_functions/__init__.py
Modified: trunk/test_suite/unit_tests/_target_functions/__init__.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/test_suite/unit_tests/_target_functions/__init__.py?rev=25272&r1=25271&r2=25272&view=diff
==============================================================================
--- trunk/test_suite/unit_tests/_target_functions/__init__.py (original)
+++ trunk/test_suite/unit_tests/_target_functions/__init__.py Tue Aug 26
11:35:25 2014
@@ -1,6 +1,6 @@
###############################################################################
# #
-# Copyright (C) 2006 Edward d'Auvergne #
+# Copyright (C) 2006-2014 Edward d'Auvergne #
# #
# This file is part of the program relax (http://www.nmr-relax.com). #
# #
@@ -21,5 +21,5 @@
__all__ = [
- ''
+ 'test_relax_fit'
]
Added: 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=25272&view=auto
==============================================================================
--- trunk/test_suite/unit_tests/_target_functions/test_relax_fit.py (added)
+++ trunk/test_suite/unit_tests/_target_functions/test_relax_fit.py Tue Aug
26 11:35:25 2014
@@ -0,0 +1,78 @@
+###############################################################################
+# #
+# Copyright (C) 2014 Edward d'Auvergne #
+# #
+# This file is part of the program relax (http://www.nmr-relax.com). #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+# Python module imports.
+from numpy import array, float64, zeros
+from unittest import TestCase
+
+# relax module imports.
+from target_functions.relax_fit import setup, func, dfunc
+
+
+class Test_relax_fit(TestCase):
+ """Unit tests for the target_functions.relax_fit relax C module."""
+
+ def setUp(self):
+ """Create a number of objects for the calculation and testing of the
relaxation curve-fitting equations."""
+
+ # The parameter values at the minimum.
+ self.I0 = 1000
+ self.R = 1
+ self.params = [self.R, self.I0]
+
+ # The time points.
+ relax_times = [0, 1, 2, 3, 4]
+
+ # The intensities for the above I0 and R.
+ I = [1000.0, 367.879441171, 135.335283237, 49.7870683679,
18.3156388887]
+
+ # The intensity errors.
+ errors = [10, 10, 10, 10, 10]
+
+ # The parameter scaling.
+ scaling_list = [1, 1]
+
+ # 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)
+
+
+ def test_func(self):
+ """Unit test for the value returned by the func() function at the
minimum."""
+
+ # Get the chi-squared value.
+ val = func(self.params)
+
+ # Assert that the value must be 0.0.
+ self.assertAlmostEqual(val, 0.0)
+
+
+ def test_dfunc(self):
+ """Unit test for the gradient returned by the dfunc() function at the
minimum."""
+
+ # Get the chi-squared gradient.
+ grad = dfunc(self.params)
+
+ # Printout.
+ print("The gradient at the minimum is:\n%s" % grad)
+
+ # Assert that the elements must be 0.0.
+ self.assertAlmostEqual(grad[0], 0.0, 6)
+ self.assertAlmostEqual(grad[1], 0.0, 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