mailr25053 - /trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_model.py


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

Header


Content

Posted by tlinnet on August 18, 2014 - 17:43:
Author: tlinnet
Date: Mon Aug 18 17:43:10 2014
New Revision: 25053

URL: http://svn.gna.org/viewcvs/relax?rev=25053&view=rev
Log:
Added unit tests regarding model.py and its functions.

Added:
    trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_model.py

Added: 
trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_model.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_model.py?rev=25053&view=auto
==============================================================================
--- trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_model.py  
  (added)
+++ trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_model.py  
  Mon Aug 18 17:43:10 2014
@@ -0,0 +1,282 @@
+###############################################################################
+#                                                                            
 #
+# Copyright (C) 2014 Troels E. Linnet                                        
 #
+#                                                                            
 #
+# This file is part of the program relax (http://www.nmr-relax.com).         
 #
+#                                                                            
 #
+# This program is free software: you can redistribute it and/or modify       
 #
+# it under the terms of the GNU General Public License as published by       
 #
+# the Free Software Foundation, either version 3 of the License, or          
 #
+# (at your option) any later version.                                        
 #
+#                                                                            
 #
+# This program is distributed in the hope that it will be useful,            
 #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of             
 #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              
 #
+# GNU General Public License for more details.                               
 #
+#                                                                            
 #
+# You should have received a copy of the GNU General Public License          
 #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.      
 #
+#                                                                            
 #
+###############################################################################
+
+# relax module imports.
+from specific_analyses.relax_disp.model import nesting_model, sort_models
+from specific_analyses.relax_disp.variables import MODEL_B14, 
MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94_FIT_R1, MODEL_IT99, 
MODEL_MMQ_CR72, MODEL_LM63, MODEL_LM63_3SITE, MODEL_MP05_FIT_R1, MODEL_NOREX, 
MODEL_NOREX_R1RHO_FIT_R1, MODEL_NS_CPMG_2SITE_3D, 
MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_EXPANDED, 
MODEL_NS_CPMG_2SITE_STAR, MODEL_NS_CPMG_2SITE_STAR_FULL, MODEL_NS_MMQ_2SITE, 
MODEL_NS_MMQ_3SITE, MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_R1RHO_2SITE, 
MODEL_NS_R1RHO_2SITE_FIT_R1, MODEL_NS_R1RHO_3SITE, 
MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_R2EFF, MODEL_TAP03_FIT_R1, 
MODEL_TP02_FIT_R1, MODEL_TSMFK01
+from test_suite.unit_tests.base_classes import UnitTestCase
+
+
+class Test_model(UnitTestCase):
+    """Unit tests for the functions of the 
specific_analyses.relax_disp.variables module."""
+
+
+    def test_nesting_model_cpmg(self):
+        """Unit test of function nesting_model, which determine which model 
to nest from, testing for CPMG experiments."""
+
+        ## Test numerical model return.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_CR72, 
MODEL_CR72_FULL, MODEL_IT99, MODEL_TSMFK01, MODEL_B14, MODEL_B14_FULL, 
MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_3D, 
MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_STAR, 
MODEL_NS_CPMG_2SITE_STAR_FULL]
+
+        # Define which current model is selected
+        model = MODEL_NS_CPMG_2SITE_STAR
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_NS_CPMG_2SITE_3D)
+
+        ## Test numerical full model return.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_CR72, 
MODEL_CR72_FULL, MODEL_IT99, MODEL_TSMFK01, MODEL_B14, MODEL_B14_FULL, 
MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_3D, 
MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_STAR, 
MODEL_NS_CPMG_2SITE_STAR_FULL]
+
+        # Define which current model is selected
+        model = MODEL_NS_CPMG_2SITE_STAR_FULL
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_NS_CPMG_2SITE_3D_FULL)
+
+        ## Test silico simple return from a full model request.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, 
MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_B14_FULL]
+
+        # Define which current model is selected
+        model = MODEL_B14_FULL
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_NS_CPMG_2SITE_EXPANDED)
+
+        ## Test LM63 model request.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_LM63, 
MODEL_LM63_3SITE]
+
+        # Define which current model is selected
+        model = MODEL_LM63_3SITE
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_LM63)
+
+        ## Test MODEL_CR72_FULL model request.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_CR72, 
MODEL_CR72_FULL, MODEL_B14, MODEL_B14_FULL]
+
+        # Define which current model is selected
+        model = MODEL_CR72_FULL
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_CR72)
+
+        ## Test MODEL_CR72_FULL model request, when models are ordered 
different.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_B14, MODEL_B14_FULL, 
MODEL_CR72, MODEL_CR72_FULL]
+
+        # Define which current model is selected
+        model = MODEL_CR72_FULL
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_B14_FULL)
+
+        ## Test MODEL_CR72 model request, when models are LM63.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_LM63, MODEL_CR72]
+
+        # Define which current model is selected
+        model = MODEL_CR72
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_LM63)
+
+        ## Test MODEL_IT99 model request, when models are CR72.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_CR72, MODEL_IT99]
+
+        # Define which current model is selected
+        model = MODEL_IT99
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_CR72)
+
+        ## Test MODEL_CR72 model request, when models are MODEL_IT99.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_IT99, MODEL_CR72]
+
+        # Define which current model is selected
+        model = MODEL_CR72
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_IT99)
+
+
+    def test_nesting_model_cpmg_mmq(self):
+        """Unit test of function nesting_model, which determine which model 
to nest from, testing for CPMG MMQ experiments."""
+
+        ## Test MODEL_MMQ_CR72 model request, when models are MODEL_CR72.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_CR72, MODEL_MMQ_CR72]
+
+        # Define which current model is selected
+        model = MODEL_MMQ_CR72
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_CR72)
+
+        ## Test MODEL_NS_MMQ_3SITE_LINEAR model request, when models are 
MODEL_NS_MMQ_2SITE.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_NS_MMQ_2SITE, 
MODEL_NS_MMQ_3SITE_LINEAR]
+
+        # Define which current model is selected
+        model = MODEL_NS_MMQ_3SITE_LINEAR
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_NS_MMQ_2SITE)
+
+        ## Test MODEL_NS_MMQ_3SITE model request, when models are 
MODEL_NS_MMQ_3SITE_LINEAR.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_NS_MMQ_3SITE_LINEAR, 
MODEL_NS_MMQ_3SITE]
+
+        # Define which current model is selected
+        model = MODEL_NS_MMQ_3SITE
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_NS_MMQ_3SITE_LINEAR)
+
+        ## Test MODEL_NS_MMQ_3SITE model request, when models are 
MODEL_NS_MMQ_2SITE.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_NS_MMQ_2SITE, 
MODEL_NS_MMQ_3SITE]
+
+        # Define which current model is selected
+        model = MODEL_NS_MMQ_3SITE
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_NS_MMQ_2SITE)
+
+
+    def test_nesting_model_r1rho_ns(self):
+        """Unit test of function nesting_model, which determine which model 
to nest from, testing for numerical R1rho experiments."""
+
+        ## Test MODEL_NS_R1RHO_3SITE_LINEAR model request, when models are 
MODEL_NS_R1RHO_2SITE.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_NS_R1RHO_2SITE, 
MODEL_NS_R1RHO_3SITE_LINEAR]
+
+        # Define which current model is selected
+        model = MODEL_NS_R1RHO_3SITE_LINEAR
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_NS_R1RHO_2SITE)
+
+        ## Test MODEL_NS_R1RHO_3SITE model request, when models are 
MODEL_NS_R1RHO_3SITE_LINEAR.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, 
MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_NS_R1RHO_3SITE]
+
+        # Define which current model is selected
+        model = MODEL_NS_R1RHO_3SITE
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_NS_R1RHO_3SITE_LINEAR)
+
+        ## Test MODEL_NS_R1RHO_3SITE model request, when models are 
MODEL_NS_R1RHO_2SITE.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_NS_R1RHO_2SITE, 
MODEL_NS_R1RHO_3SITE]
+
+        # Define which current model is selected
+        model = MODEL_NS_R1RHO_3SITE
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_NS_R1RHO_2SITE)
+
+
+    def test_nesting_model_r1rho(self):
+        """Unit test of function nesting_model, which determine which model 
to nest from, testing for R1rho experiments."""
+
+        ## Test MODEL_MP05_FIT_R1 model request, when models are all R1rho 
models with fitted R1.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO_FIT_R1, 
MODEL_DPL94_FIT_R1, MODEL_TP02_FIT_R1, MODEL_TAP03_FIT_R1, MODEL_MP05_FIT_R1, 
MODEL_NS_R1RHO_2SITE_FIT_R1]
+
+        # Define which current model is selected
+        model = MODEL_MP05_FIT_R1
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_TAP03_FIT_R1)
+
+        ## Test MODEL_TP02_FIT_R1 model request, when models are all R1rho 
models with fitted R1, and MODEL_NS_R1RHO_2SITE_FIT_R1 was fitted first.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO_FIT_R1, MODEL_R2EFF, 
MODEL_NOREX_R1RHO_FIT_R1, MODEL_NS_R1RHO_2SITE_FIT_R1, MODEL_TP02_FIT_R1]
+
+        # Define which current model is selected
+        model = MODEL_TP02_FIT_R1
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_NS_R1RHO_2SITE_FIT_R1)
+
+        ## Test MODEL_DPL94_FIT_R1 model request, when models are all R1rho 
models with fitted R1, and MODEL_NS_R1RHO_2SITE_FIT_R1 was fitted first.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO_FIT_R1, 
MODEL_NS_R1RHO_2SITE_FIT_R1, MODEL_DPL94_FIT_R1]
+
+        # Define which current model is selected
+        model = MODEL_DPL94_FIT_R1
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_NS_R1RHO_2SITE_FIT_R1)
+
+        ## Test MODEL_TP02_FIT_R1 model request, when model are all R1rho 
models with fitted R1, and MODEL_DPL94_FIT_R1 was fitted first.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO_FIT_R1, 
MODEL_DPL94_FIT_R1, MODEL_TP02_FIT_R1]
+
+        # Define which current model is selected
+        model = MODEL_TP02_FIT_R1
+
+        # Test the return.
+        self.assertEqual(nesting_model(self_models=self_models, 
model=model)[1].model, MODEL_DPL94_FIT_R1)
+
+
+    def test_sort_models(self):
+        """Unit test of function sort_models, which determine how to sort 
models for auto analyses."""
+
+        ## Test sort of models, when models are all R1rho models with fitted 
R1.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO_FIT_R1, 
MODEL_DPL94_FIT_R1, MODEL_TP02_FIT_R1, MODEL_TAP03_FIT_R1, MODEL_MP05_FIT_R1, 
MODEL_NS_R1RHO_2SITE_FIT_R1]
+        expected_result = [MODEL_R2EFF, MODEL_NOREX_R1RHO_FIT_R1, 
MODEL_MP05_FIT_R1, MODEL_TAP03_FIT_R1, MODEL_TP02_FIT_R1, MODEL_DPL94_FIT_R1, 
MODEL_NS_R1RHO_2SITE_FIT_R1]
+
+        # Test the return.
+        self.assertEqual(sort_models(models=self_models), expected_result)
+
+        ## Test sort of models, when models are all CPMG models.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_CR72, 
MODEL_CR72_FULL, MODEL_IT99, MODEL_TSMFK01, MODEL_B14, MODEL_B14_FULL, 
MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_3D, 
MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_STAR, 
MODEL_NS_CPMG_2SITE_STAR_FULL]
+        expected_result = [MODEL_R2EFF, MODEL_NOREX, 
MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_B14, MODEL_B14_FULL, MODEL_TSMFK01, 
MODEL_IT99, MODEL_CR72, MODEL_CR72_FULL, MODEL_NS_CPMG_2SITE_3D, 
MODEL_NS_CPMG_2SITE_STAR, MODEL_NS_CPMG_2SITE_3D_FULL, 
MODEL_NS_CPMG_2SITE_STAR_FULL]
+
+        # Test the return.
+        self.assertEqual(sort_models(models=self_models), expected_result)
+
+        ## Test sort of models, when models are all CPMG MMQ models.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_NS_MMQ_3SITE, 
MODEL_NS_MMQ_2SITE, MODEL_MMQ_CR72, MODEL_NS_MMQ_3SITE_LINEAR]
+        expected_result = [MODEL_R2EFF, MODEL_NOREX, MODEL_MMQ_CR72, 
MODEL_NS_MMQ_2SITE, MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_MMQ_3SITE]
+
+        # Test the return.
+        self.assertEqual(sort_models(models=self_models), expected_result)
+
+        ## Test sort of models, when models are mix of CPMG and CPMG MMQ 
models.
+        # Define all the models tested in the analysis.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_NS_MMQ_3SITE, 
MODEL_NS_MMQ_2SITE, MODEL_MMQ_CR72, MODEL_CR72, MODEL_B14, 
MODEL_NS_MMQ_3SITE_LINEAR]
+        expected_result = [MODEL_R2EFF, MODEL_NOREX, MODEL_B14, MODEL_CR72, 
MODEL_MMQ_CR72, MODEL_NS_MMQ_2SITE, MODEL_NS_MMQ_3SITE_LINEAR, 
MODEL_NS_MMQ_3SITE]
+
+        ## Test the return.
+        self.assertEqual(sort_models(models=self_models), expected_result)
+




Related Messages


Powered by MHonArc, Updated Mon Aug 18 18:00:02 2014