Author: bugman Date: Thu Jan 3 18:19:58 2008 New Revision: 4291 URL: http://svn.gna.org/viewcvs/relax?rev=4291&view=rev Log: Bug fix for the jw mapping parameter setting function specific_fns.jw_mapping.set(). The J(w) parameters do not have default values and now a new RelaxError, RelaxParamSetError, is raised if these params are set. All the relevent unit tests have been updated for this change. Modified: 1.3/relax_errors.py 1.3/specific_fns/jw_mapping.py 1.3/test_suite/unit_tests/value_testing_base.py Modified: 1.3/relax_errors.py URL: http://svn.gna.org/viewcvs/relax/1.3/relax_errors.py?rev=4291&r1=4290&r2=4291&view=diff ============================================================================== --- 1.3/relax_errors.py (original) +++ 1.3/relax_errors.py Thu Jan 3 18:19:58 2008 @@ -611,6 +611,16 @@ # Data type errors. ################### +# Parameter cannot be set. +class RelaxParamSetError(BaseError): + def __init__(self, name, param_type=None): + if param_type != None: + self.text = "The " + name + " parameter, " + `param_type` + ", cannot be set." + else: + self.text = "The " + name + " parameter cannot be set." + if Debug: + self.save_state() + # Value already exists. class RelaxValueError(BaseError): def __init__(self, data_type, pipe): Modified: 1.3/specific_fns/jw_mapping.py URL: http://svn.gna.org/viewcvs/relax/1.3/specific_fns/jw_mapping.py?rev=4291&r1=4290&r2=4291&view=diff ============================================================================== --- 1.3/specific_fns/jw_mapping.py (original) +++ 1.3/specific_fns/jw_mapping.py Thu Jan 3 18:19:58 2008 @@ -28,7 +28,7 @@ from data import Data as relax_data_store from base_class import Common_functions from maths_fns.jw_mapping import Mapping -from relax_errors import RelaxError, RelaxFuncSetupError, RelaxNoPipeError, RelaxNoSequenceError, RelaxNoValueError, RelaxNucleusError +from relax_errors import RelaxError, RelaxFuncSetupError, RelaxNoPipeError, RelaxNoSequenceError, RelaxNoValueError, RelaxNucleusError, RelaxParamSetError from physical_constants import N15_CSA, NH_BOND_LENGTH @@ -418,6 +418,10 @@ if value == None: value = self.default_value(object_name) + # No default value, hence the parameter cannot be set. + if value == None: + raise RelaxParamSetError, param + # Set the value. setattr(spin, object_name, float(value)) Modified: 1.3/test_suite/unit_tests/value_testing_base.py URL: http://svn.gna.org/viewcvs/relax/1.3/test_suite/unit_tests/value_testing_base.py?rev=4291&r1=4290&r2=4291&view=diff ============================================================================== --- 1.3/test_suite/unit_tests/value_testing_base.py (original) +++ 1.3/test_suite/unit_tests/value_testing_base.py Thu Jan 3 18:19:58 2008 @@ -26,7 +26,7 @@ # relax module imports. from data import Data as relax_data_store from generic_fns import diffusion_tensor -from relax_errors import RelaxError, RelaxUnknownParamCombError +from relax_errors import RelaxError, RelaxParamSetError, RelaxUnknownParamCombError @@ -1433,11 +1433,7 @@ cdp = relax_data_store[relax_data_store.current_pipe] # Set the parameter. - self.value_fns.set(param='j0') - - # Test the parameter. - self.assertEqual(cdp.mol[0].res[0].spin[0].j0, 4.5e-9) - self.assertEqual(cdp.mol[0].res[1].spin[0].j0, 4.5e-9) + self.assertRaises(RelaxParamSetError, self.value_fns.set, param='j0') def test_set_jw_defaults_jwx(self): @@ -1453,11 +1449,7 @@ cdp = relax_data_store[relax_data_store.current_pipe] # Set the parameter. - self.value_fns.set(param='jwx') - - # Test the parameter. - self.assertEqual(cdp.mol[0].res[0].spin[0].jwx, 2.3e-10) - self.assertEqual(cdp.mol[0].res[1].spin[0].jwx, 2.3e-10) + self.assertRaises(RelaxParamSetError, self.value_fns.set, param='jwx') def test_set_jw_defaults_jwh(self): @@ -1473,11 +1465,7 @@ cdp = relax_data_store[relax_data_store.current_pipe] # Set the parameter. - self.value_fns.set(param='J(wH)') - - # Test the parameter. - self.assertEqual(cdp.mol[0].res[0].spin[0].jwh, 1.7e-12) - self.assertEqual(cdp.mol[0].res[1].spin[0].jwh, 1.7e-12) + self.assertRaises(RelaxParamSetError, self.value_fns.set, param='J(wH)') def test_set_jw_defaults_r(self): @@ -1533,15 +1521,7 @@ cdp = relax_data_store[relax_data_store.current_pipe] # Set the parameter. - self.value_fns.set(param=['J(0)', 'jwx', 'J(wH)']) - - # Test the parameter. - self.assertEqual(cdp.mol[0].res[0].spin[0].j0, 6.4e-9) - self.assertEqual(cdp.mol[0].res[0].spin[0].jwx, 3.5e-10) - self.assertEqual(cdp.mol[0].res[0].spin[0].jwh, 2.3e-12) - self.assertEqual(cdp.mol[0].res[1].spin[0].j0, 6.4e-9) - self.assertEqual(cdp.mol[0].res[1].spin[0].jwx, 3.5e-10) - self.assertEqual(cdp.mol[0].res[1].spin[0].jwh, 2.3e-12) + self.assertRaises(RelaxParamSetError, self.value_fns.set, param=['J(0)', 'jwx', 'J(wH)']) def test_set_jw_single_spin_j0(self):