mailRe: r23531 - /branches/disp_speed/test_suite/unit_tests/_lib/_dispersion/test_b14.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on May 28, 2014 - 17:30:
Hi Troels,

These two new tests are problematic in that they are no longer unit
tests.  Unit tests for the lib.dispersion modules should only check
the lib.dispersion module functions.  But here this is also checking
the specific analysis parameter object API.  They are also problematic
in that the lower grid search values in test_b14_no_rex9() will not
correspond to no exchange as kex = 1.0.  What is the aim of the tests?
 The aim of the grid search is to search over regions where exchange
is present, as searching where there is no exchange is a waste of grid
points - optimisation will quickly send the parameter to zero exchange
values if there is no exchange.

Regards,

Edward


On 28 May 2014 16:49,  <tlinnet@xxxxxxxxxxxxx> wrote:
Author: tlinnet
Date: Wed May 28 16:49:08 2014
New Revision: 23531

URL: http://svn.gna.org/viewcvs/relax?rev=23531&view=rev
Log:
Added 9th and 10th unit test case for model B14.

These tests are setup, to check how the function behaves under conditions 
of the grid-seach.

Two tests are setup, which either use the default lower or upper bound of 
the parameters for the grid search.

The return of the values are not checked, but the behaving of the function 
can be found when adding the --numpy-raise to run relax.

This is related to: task #7793: (https://gna.org/task/?7793) Speed-up of 
dispersion models.

These tests are implemented to show bug cases related to:
Bug #22032: (bug #22032: Minimisation explodes when using Grid_INC=None) 
Minimisation explodes when using Grid_INC=None

The function can return nan or inf values, which are not handled by the 
minimisation algorithm, causing it to stop.
There needs to be mechanism to catch these cases.

Modified:
    branches/disp_speed/test_suite/unit_tests/_lib/_dispersion/test_b14.py

Modified: 
branches/disp_speed/test_suite/unit_tests/_lib/_dispersion/test_b14.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/disp_speed/test_suite/unit_tests/_lib/_dispersion/test_b14.py?rev=23531&r1=23530&r2=23531&view=diff
==============================================================================
--- branches/disp_speed/test_suite/unit_tests/_lib/_dispersion/test_b14.py  
    (original)
+++ branches/disp_speed/test_suite/unit_tests/_lib/_dispersion/test_b14.py  
    Wed May 28 16:49:08 2014
@@ -25,6 +25,7 @@

 # relax module imports.
 from lib.dispersion.b14 import r2eff_B14
+from specific_analyses.relax_disp.parameter_object import Relax_disp_params


 class Test_b14(TestCase):
@@ -51,6 +52,9 @@
         # The spin Larmor frequencies.
         self.sfrq = 200. * 1E6

+        # This is to test the default grid values.
+        self.test_val = True
+

     def calc_r2eff(self):
         """Calculate and check the R2eff values."""
@@ -62,8 +66,9 @@
         R2eff = r2eff_B14(r20a=self.r20a, r20b=self.r20b, pA=self.pA, 
pB=pB, dw=dw_frq, kex=self.kex, k_AB=k_AB, k_BA=k_BA, ncyc=self.ncyc, 
inv_tcpmg=self.inv_relax_times, tcp=self.tau_cpmg, 
num_points=self.num_points)

         # Check all R2eff values.
-        for i in range(self.num_points):
-            self.assertAlmostEqual(R2eff[i], self.r20a)
+        if self.test_val:
+            for i in range(self.num_points):
+                self.assertAlmostEqual(R2eff[i], self.r20a)


     def param_conversion(self, pA=None, kex=None, dw=None, sfrq=None):
@@ -180,3 +185,38 @@

         # Calculate and check the R2eff values.
         self.calc_r2eff()
+
+
+    def test_b14_no_rex9(self):
+        """Test the r2eff_b14() function for the default lower grid 
values.  This is to catch un-discovered numpy-raises in calculations. """
+
+        PARAMS = Relax_disp_params()
+
+        # Parameter reset.
+        self.r20a = PARAMS.grid_lower('r2a')
+        self.r20b = PARAMS.grid_lower('r2b')
+        self.pA =  PARAMS.grid_lower('pA')
+        self.kex = PARAMS.grid_lower('kex')
+
+        self.test_val = False
+
+        # Calculate and check the R2eff values.
+        self.calc_r2eff()
+
+
+    def test_b14_no_rex10(self):
+        """Test the r2eff_b14() function for the default lower grid 
values.  This is to catch un-discovered numpy-raises in calculations. """
+
+        PARAMS = Relax_disp_params()
+
+        # Parameter reset.
+        self.r20a = PARAMS.grid_upper('r2a')
+        self.r20b = PARAMS.grid_upper('r2b')
+        self.dw = PARAMS.grid_upper('dw')
+        self.pA =  PARAMS.grid_upper('pA')
+        self.kex = PARAMS.grid_upper('kex')
+
+        self.test_val = False
+
+        # Calculate and check the R2eff values.
+        self.calc_r2eff()


_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-commits mailing list
relax-commits@xxxxxxx

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



Related Messages


Powered by MHonArc, Updated Wed May 28 20:40:16 2014