Author: tlinnet Date: Wed Aug 20 21:06:37 2014 New Revision: 25124 URL: http://svn.gna.org/viewcvs/relax?rev=25124&view=rev Log: Inserted systemtest Relax_disp.test_model_nesting_and_param() which will go through all models, and then through all it nested models, testing that all parameters have a conversion. Modified: trunk/test_suite/system_tests/relax_disp.py Modified: trunk/test_suite/system_tests/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/trunk/test_suite/system_tests/relax_disp.py?rev=25124&r1=25123&r2=25124&view=diff ============================================================================== --- trunk/test_suite/system_tests/relax_disp.py (original) +++ trunk/test_suite/system_tests/relax_disp.py Wed Aug 20 21:06:37 2014 @@ -37,7 +37,8 @@ from specific_analyses.relax_disp.checks import check_missing_r1 from specific_analyses.relax_disp.data import generate_r20_key, get_curve_type, has_r1rho_exp_type, loop_exp_frq, loop_exp_frq_offset_point, return_grace_file_name_ini, return_param_key_from_data from specific_analyses.relax_disp.data import INTERPOLATE_DISP, INTERPOLATE_OFFSET, X_AXIS_DISP, X_AXIS_W_EFF, X_AXIS_THETA, Y_AXIS_R2_R1RHO, Y_AXIS_R2_EFF -from specific_analyses.relax_disp.variables import EXP_TYPE_CPMG_DQ, EXP_TYPE_CPMG_MQ, EXP_TYPE_CPMG_PROTON_MQ, EXP_TYPE_CPMG_PROTON_SQ, EXP_TYPE_CPMG_SQ, EXP_TYPE_CPMG_ZQ, EXP_TYPE_R1RHO, MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94, MODEL_DPL94_FIT_R1, MODEL_IT99, MODEL_LIST_ANALYTIC_CPMG, MODEL_LIST_NUMERIC_CPMG, MODEL_LM63, MODEL_M61, MODEL_M61B, MODEL_MP05, MODEL_MP05_FIT_R1, MODEL_NOREX, MODEL_NOREX_R1RHO, MODEL_NOREX_R1RHO_FIT_R1, MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_STAR_FULL, MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_2SITE_FIT_R1, MODEL_NS_R1RHO_3SITE, MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_PARAMS, MODEL_R2EFF, MODEL_TP02, MODEL_TP02_FIT_R1, MODEL_TAP03, MODEL_TAP03_FIT_R1 +from specific_analyses.relax_disp.model import models_info, nesting_param +from specific_analyses.relax_disp.variables import EXP_TYPE_CPMG_DQ, EXP_TYPE_CPMG_MQ, EXP_TYPE_CPMG_PROTON_MQ, EXP_TYPE_CPMG_PROTON_SQ, EXP_TYPE_CPMG_SQ, EXP_TYPE_CPMG_ZQ, EXP_TYPE_R1RHO, MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94, MODEL_DPL94_FIT_R1, MODEL_IT99, MODEL_LIST_ANALYTIC_CPMG, MODEL_LIST_NUMERIC_CPMG, MODEL_LIST_FULL, MODEL_LM63, MODEL_M61, MODEL_M61B, MODEL_MP05, MODEL_MP05_FIT_R1, MODEL_NOREX, MODEL_NOREX_R1RHO, MODEL_NOREX_R1RHO_FIT_R1, MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_STAR_FULL, MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_2SITE_FIT_R1, MODEL_NS_R1RHO_3SITE, MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_PARAMS, MODEL_R2EFF, MODEL_TP02, MODEL_TP02_FIT_R1, MODEL_TAP03, MODEL_TAP03_FIT_R1 from specific_analyses.relax_disp.model import convert_no_rex_fit_r1 from status import Status; status = Status() from test_suite.system_tests.base_classes import SystemTestCase @@ -5033,6 +5034,47 @@ spin_index += 1 + def test_model_nesting_and_param(self): + """Test that all models which can nest, have all their parameters converted.""" + + # Get info for all models. + all_models_info = models_info(models=MODEL_LIST_FULL) + + # Loop over all models. + print("Printing the listed of nested models for each model.") + print("#########################################") + for model_info in all_models_info: + print("%s"%model_info.model), + print("<-"), + nest_list = model_info.nest_list + if nest_list == None: + nest_list = ["None"] + print(', '.join(map(str, nest_list))) + + # Skip if there is no model to nest from. + if nest_list == ["None"]: + continue + + # Assign params to variable. + model_params = model_info.params + + # Now loop over the nested models. + for nested_model in nest_list: + # Get the params for the nested model. + nested_model_params = MODEL_PARAMS[nested_model] + + # Get the dictionary of parameter conversion. + par_dic = nesting_param(model_params=model_params, nested_model_params=nested_model_params) + + # Test the number of elements in the dictionary. + self.assertEqual(len(par_dic), len(model_params)) + + # Loop over dictionary. + for param, param_conv in par_dic.iteritems(): + print("Model:'%s', Nested model:'%s', from parameter '%s' to '%s'." % (model_info.model, nested_model, param_conv, param)) + self.assertNotEqual(param_conv, None) + + def test_ns_mmq_3site(self): """Compare the 'NS MMQ 3-site' dispersion model to synthetic data from cpmg_fit."""