Author: bugman Date: Mon Jan 7 17:31:22 2008 New Revision: 4438 URL: http://svn.gna.org/viewcvs/relax?rev=4438&view=rev Log: Added a system/functional test for the N-state model. This tests a very simple model, yet the test will include all elements of a normal analysis. Modified: branches/N_state_model/test_suite/system_tests/n_state_model.py Modified: branches/N_state_model/test_suite/system_tests/n_state_model.py URL: http://svn.gna.org/viewcvs/relax/branches/N_state_model/test_suite/system_tests/n_state_model.py?rev=4438&r1=4437&r2=4438&view=diff ============================================================================== --- branches/N_state_model/test_suite/system_tests/n_state_model.py (original) +++ branches/N_state_model/test_suite/system_tests/n_state_model.py Mon Jan 7 17:31:22 2008 @@ -21,6 +21,7 @@ ############################################################################### # Python module imports. +from math import sqrt from unittest import TestCase # relax module imports. @@ -37,3 +38,59 @@ + def test_5_conf_xz(self): + """A 5-state model in the xz-plane (no pivotting of alpha). + + The 5 states correspond to the Euler angles (z-y-z notation): + State 1: {0, pi/4, 0} + State 2: {0, pi/8, 0} + State 3: {0, 0, 0} + State 4: {0, -pi/8, 0} + State 5: {0, -pi/4, 0} + """ + + # Create the data pipe. + self.relax.interpreter._Pipe.create('C domain', 'N-state') + + # Load the C-terminal alignment tensors.. + self.relax.interpreter._Align_tensor.init(tensor='chi1', params=(-1/2., -1/2., 0., 0., 0.)) + self.relax.interpreter._Align_tensor.init(tensor='chi2', params=(-1/8., -7/8., 0., 0., 0.)) + self.relax.interpreter._Align_tensor.init(tensor='chi3', params=(-1/8., 1/16., 0., 0., -15/16.)) + self.relax.interpreter._Align_tensor.init(tensor='chi4', params=(7/16., -7/8., 0., 9/16., 0.)) + self.relax.interpreter._Align_tensor.init(tensor='chi5', params=(-1/2., -1/2., 3/8., 0., 0.)) + + # Calculate the singular values. + self.relax.interpreter._Align_tensor.svd(basis_set=0) + self.relax.interpreter._Align_tensor.svd(basis_set=1) + + # Calculate the angles between the matrices. + self.relax.interpreter._Align_tensor.matrix_angles(basis_set=0) + self.relax.interpreter._Align_tensor.matrix_angles(basis_set=1) + + + # Create the data pipe. + self.relax.interpreter._Pipe.create('N domain', 'N-state') + + # Load the N-terminal alignment tensors. + self.relax.interpreter._Align_tensor.init(tensor='chi1', params=(1/4., -1/2., 0., 3/4., 0.)) + self.relax.interpreter._Align_tensor.init(tensor='chi2', params=(7/16., -7/8., 0., 9/16., 0.)) + self.relax.interpreter._Align_tensor.init(tensor='chi3', params=(-1/32., 1/16., -15/(16*sqrt(2)), 3/32., -15/(16*sqrt(2)))) + self.relax.interpreter._Align_tensor.init(tensor='chi4', params=(1., -7/8., 0., 0., 0.)) + self.relax.interpreter._Align_tensor.init(tensor='chi5', params=(1/4., -1/2., 3/(8*sqrt(2)), 3/4., -3/(8*sqrt(2)))) + + # Calculate the singular values. + self.relax.interpreter._Align_tensor.svd(basis_set=0) + self.relax.interpreter._Align_tensor.svd(basis_set=1) + + # Calculate the angles between the matrices. + self.relax.interpreter._Align_tensor.matrix_angles(basis_set=0) + self.relax.interpreter._Align_tensor.matrix_angles(basis_set=1) + + # Grid search. + self.relax.interpreter._Grid_search(inc=11) + + # Minimise. + self.relax.interpreter._Minimise('simplex') + + # Finish. + self.relax.interpreter._Results.write(file='devnull', force=1)