That's ok, the patch doesn't increase the speed that much. It was only a suggestion anyway.
Regards, Edward On 28 May 2014 17:43, Troels Emtekær Linnet <[email protected]> wrote: > Hi Ed. > > In the last patch you send, you suggested to remove all tests of: > if not isfinite(sum(R2eff)): > R2eff = array([1e100]*num_points) > > The unit test case I implemented, shows that the minimisation can come > into situations, where > you produce nan or inf values. > > And that will make the minimisation goes to a halt. > > This is a strong argument to keep this check. > if not isfinite(sum(R2eff)): > R2eff = array([1e100]*num_points) > > Best > Troels > > > > 2014-05-28 17:29 GMT+02:00 Edward d'Auvergne <[email protected]>: >> 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 _______________________________________________ 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

