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,  <[email protected]> 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
> [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

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

This is the relax-devel 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-devel

Reply via email to