mailr9531 - in /1.3/test_suite/system_tests: __init__.py align_tensor.py


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

Header


Content

Posted by edward on September 18, 2009 - 18:19:
Author: bugman
Date: Fri Sep 18 18:19:26 2009
New Revision: 9531

URL: http://svn.gna.org/viewcvs/relax?rev=9531&view=rev
Log:
Created a module for alignment tensor related system tests.

Only the single test test_to_and_from_xml() has been created so far.  This 
checks the dumping and
reloading of alignment tensors into an XML file.


Added:
    1.3/test_suite/system_tests/align_tensor.py
      - copied, changed from r9526, 
1.3/test_suite/system_tests/diffusion_tensor.py
Modified:
    1.3/test_suite/system_tests/__init__.py

Modified: 1.3/test_suite/system_tests/__init__.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/test_suite/system_tests/__init__.py?rev=9531&r1=9530&r2=9531&view=diff
==============================================================================
--- 1.3/test_suite/system_tests/__init__.py (original)
+++ 1.3/test_suite/system_tests/__init__.py Fri Sep 18 18:19:26 2009
@@ -31,6 +31,7 @@
 from test_suite.relax_test_runner import RelaxTestRunner
 
 # relax system/functional test module imports.
+from align_tensor import Align_tensor
 from angles import Angles
 from consistency_tests import Ct
 from dasha import Dasha
@@ -56,7 +57,8 @@
 from unit_vectors import Unit_vectors
 
 
-__all__ = ['angles',
+__all__ = ['align_tensor',
+           'angles',
            'consistency_tests',
            'dasha'
            'diffusion_tensor',
@@ -99,6 +101,7 @@
 
         # Create an array of test suites (add your new TestCase classes 
here).
         suite_array = []
+        suite_array.append(TestLoader().loadTestsFromTestCase(Align_tensor))
         suite_array.append(TestLoader().loadTestsFromTestCase(Angles))
         suite_array.append(TestLoader().loadTestsFromTestCase(Ct))
         suite_array.append(TestLoader().loadTestsFromTestCase(Dasha))

Copied: 1.3/test_suite/system_tests/align_tensor.py (from r9526, 
1.3/test_suite/system_tests/diffusion_tensor.py)
URL: 
http://svn.gna.org/viewcvs/relax/1.3/test_suite/system_tests/align_tensor.py?p2=1.3/test_suite/system_tests/align_tensor.py&p1=1.3/test_suite/system_tests/diffusion_tensor.py&r1=9526&r2=9531&rev=9531&view=diff
==============================================================================
--- 1.3/test_suite/system_tests/diffusion_tensor.py (original)
+++ 1.3/test_suite/system_tests/align_tensor.py Fri Sep 18 18:19:26 2009
@@ -21,123 +21,69 @@
 
###############################################################################
 
 # Python module imports.
-from math import pi
-from os import remove, sep
+from os import remove
+from tempfile import mktemp
 from unittest import TestCase
-import sys
 
 # relax module imports.
 from data import Relax_data_store; ds = Relax_data_store()
-from data.diff_tensor import DiffTensorSimList
-from generic_fns.pipes import get_pipe
-from tempfile import mktemp
+from relax_io import delete
 
 
-class Diffusion_tensor(TestCase):
-    """Class for testing various aspects specific to the diffusion tensor."""
+class Align_tensor(TestCase):
+    """Class for testing various aspects specific to the alignment 
tensors."""
 
     def setUp(self):
-        """Function for initialising a spherical, spheroidal, and 
ellipsoidal diffusion tensor."""
+        """Function for initialising a few alignment tensors."""
 
-        # Create three data pipes for spherical, spheroidal, and ellipsoidal 
diffusion.
-        self.relax.interpreter._Pipe.create('sphere', 'mf')
-        self.relax.interpreter._Pipe.create('spheroid', 'mf')
-        self.relax.interpreter._Pipe.create('ellipsoid', 'mf')
+        # Create a data pipe.
+        self.relax.interpreter._Pipe.create('test', 'frame order')
 
-        # Sphere tensor initialization.
-        self.relax.interpreter._Pipe.switch('sphere')
-        
self.relax.interpreter._Structure.read_pdb(file='Ap4Aase_res1-12.pdb', 
dir=sys.path[-1] + sep+'test_suite'+sep+'shared_data'+sep+'structures', 
read_model=1)
-        self.relax.interpreter._Sequence.read(file='Ap4Aase.seq', 
dir=sys.path[-1] + sep+'test_suite'+sep+'shared_data'+sep)
-        self.relax.interpreter._Diffusion_tensor.init(10e-9, fixed=True)
-        self.tmpfile_sphere = mktemp()
+        # Temp file name.
+        self.tmpfile = mktemp()
 
-        # Spheroid tensor initialization.
-        self.relax.interpreter._Pipe.switch('spheroid')
-        
self.relax.interpreter._Structure.read_pdb(file='Ap4Aase_res1-12.pdb', 
dir=sys.path[-1] + sep+'test_suite'+sep+'shared_data'+sep+'structures', 
read_model=1)
-        self.relax.interpreter._Sequence.read(file='Ap4Aase.seq', 
dir=sys.path[-1] + sep+'test_suite'+sep+'shared_data'+sep)
-        self.relax.interpreter._Diffusion_tensor.init((5e-09, -10000000., 
1.6, 2.7), angle_units='rad', spheroid_type='oblate', fixed=True)
-        self.tmpfile_spheroid = mktemp()
+        # Tensor name lists.
+        full_list = ['0 full', '1 full', '2 full', '3 full', '4 full']
+        red_list = ['0 red', '1 red', '2 red', '3 red', '4 red']
 
-        # Ellipsoid tensor initialization.
-        self.relax.interpreter._Pipe.switch('ellipsoid')
-        
self.relax.interpreter._Structure.read_pdb(file='Ap4Aase_res1-12.pdb', 
dir=sys.path[-1] + sep+'test_suite'+sep+'shared_data'+sep+'structures', 
read_model=1)
-        self.relax.interpreter._Sequence.read(file='Ap4Aase.seq', 
dir=sys.path[-1] + sep+'test_suite'+sep+'shared_data'+sep)
-        self.relax.interpreter._Diffusion_tensor.init((9e-8, 5e6, 0.3, 
60+360, 290, 100), fixed=False)
-        self.tmpfile_ellipsoid = mktemp()
+        # Error.
+        error = 1.47411211147e-05
 
+        # Tensor lists.
+        self.tensors_full = [
+                (0.00014221982216882766, -0.00014454300156652134, 
-0.00070779621164871397, -0.00060161949408277324, 0.00020200800707295083),
+                (-0.00014307694949297205, -0.00039671919293883539, 
-0.00024724524395487659, 0.00031948292975139144, 0.00018868359624777637),
+                (-0.00022967898444150887, -0.00027171643813494106, 
-0.00021961563147411279, 0.00010337393266477703, 0.00029030226175831515),
+                (0.00043690692358615301, -0.00034379559287467062, 
-0.00019359695171683388, 0.00030194133983804048, -6.314162250164486e-05),
+                (-0.00026249527958822807, 0.00073561736796410628, 
6.3975419225898133e-05, 6.2788017118057252e-05, 0.00020119758245770023)
+        ]
+        self.tensors_red = [
+                (-0.0004037026160192775, 0.00023172423501111316, 
-0.00020915186581478394, -0.00028817367472760139, -8.7172337025481604e-05),
+                (0.0003767999506688964, -0.00021492227011444111, 
0.00019620694392616774, 0.00027163215478635274, 8.147201253457049e-05),
+                (0.00025970120925482461, -0.00014782823602910519, 
0.00013565269563569894, 0.00018741173517420359, 5.6252903270026344e-05),
+                (0.00014574884684542708, -8.3162940224598374e-05, 
7.4927100277784987e-05, 0.00010508245294401461, 3.1156238348722986e-05),
+                (-0.00011267453337899962, 6.412308037476237e-05, 
-5.7897942333203444e-05, -8.1865863377039068e-05, -2.5273427585025123e-05)
+        ]
 
-        # Some fake MC simulations (for the sphere).
-        self.relax.interpreter._Pipe.switch('sphere')
-        cdp.diff_tensor.tm_err = 10e-11
-        cdp.diff_tensor.tm_sim = DiffTensorSimList('tm', cdp.diff_tensor, 
elements=5)
-        tm_sim = [8.98e-8, 8.99e-8, 9.00e-7, 9.01e-8, 9.02e-8]
+        # Set up the tensors.
         for i in range(5):
-            cdp.diff_tensor.tm_sim[i] = tm_sim[i]
+            # Load the tensor.
+            self.relax.interpreter._Align_tensor.init(tensor=full_list[i], 
params=self.tensors_full[i], param_types=0)
+            self.relax.interpreter._Align_tensor.init(tensor=red_list[i], 
params=self.tensors_red[i], param_types=0)
+
+            # Errors.
+            self.relax.interpreter._Align_tensor.init(tensor=full_list[i], 
params=(error, error, error, error, error), param_types=0, errors=True)
+            self.relax.interpreter._Align_tensor.init(tensor=red_list[i], 
params=(error, error, error, error, error), param_types=0, errors=True)
+
+            # Domain.
+            
self.relax.interpreter._Align_tensor.set_domain(tensor=full_list[i], 
domain='full')
+            
self.relax.interpreter._Align_tensor.set_domain(tensor=red_list[i], 
domain='red')
+
+            # Tensor reductions.
+            
self.relax.interpreter._Align_tensor.reduction(full_tensor=full_list[i], 
red_tensor=red_list[i])
 
         # Reset some values.
-        cdp.diff_tensor.tm_sim[0] = 9.00e-8
-
-
-        # Some fake MC simulations (for the spheroid).
-        self.relax.interpreter._Pipe.switch('spheroid')
-
-        # Initialise the data structures.
-        cdp.diff_tensor.tm_sim = DiffTensorSimList('tm', cdp.diff_tensor, 
elements=5)
-        cdp.diff_tensor.Da_sim = DiffTensorSimList('Da', cdp.diff_tensor, 
elements=5)
-        cdp.diff_tensor.theta_sim = DiffTensorSimList('theta', 
cdp.diff_tensor, elements=5)
-        cdp.diff_tensor.phi_sim = DiffTensorSimList('phi', cdp.diff_tensor, 
elements=5)
-
-        # Set some errors.
-        cdp.diff_tensor.Da_err = 1000000
-        cdp.diff_tensor.theta_err = 0.01
-        cdp.diff_tensor.tm_err = 1e-11
-        cdp.diff_tensor.phi_err = 0.01
-
-        # The sim data.
-        Da_sim = [-12000000., -11000000., -10000000., -9000000., -8000000.]
-        theta_sim = [1.70, 1.65, 1.6, 1.55, 1.50]
-        tm_sim = [5.4e-09, 4.8e-09, 5e-09, 5.4e-09, 5.8e-09]
-        phi_sim = [2.5, 2.6, 2.7, 2.8, 100]
-        for i in range(5):
-            cdp.diff_tensor.Da_sim[i] = Da_sim[i]
-            cdp.diff_tensor.theta_sim[i] = theta_sim[i]
-            cdp.diff_tensor.tm_sim[i] = tm_sim[i]
-            cdp.diff_tensor.phi_sim[i] = phi_sim[i]
-
-        # Reset some values.
-        cdp.diff_tensor.tm_sim[0] = 4.4e-9
-        cdp.diff_tensor.phi_sim[4] = 2.9
-
-
-        # Some fake MC simulations (for the ellipsoid).
-        self.relax.interpreter._Pipe.switch('ellipsoid')
-
-        # Initialise the data structures.
-        cdp.diff_tensor.tm_sim = DiffTensorSimList('tm', cdp.diff_tensor, 
elements=5)
-        cdp.diff_tensor.Da_sim = DiffTensorSimList('Da', cdp.diff_tensor, 
elements=5)
-        cdp.diff_tensor.Dr_sim = DiffTensorSimList('Dr', cdp.diff_tensor, 
elements=5)
-        cdp.diff_tensor.alpha_sim = DiffTensorSimList('alpha', 
cdp.diff_tensor, elements=5)
-        cdp.diff_tensor.beta_sim = DiffTensorSimList('beta', 
cdp.diff_tensor, elements=5)
-        cdp.diff_tensor.gamma_sim = DiffTensorSimList('gamma', 
cdp.diff_tensor, elements=5)
-
-        # The sim data.
-        Dr_sim = [0.28, 0.29, 0.3, 0.31, 0.32]
-        tm_sim = [8.97e-8, 8.99e-8, 9.00e-8, 9.01e-8, 9.02e-8]
-        Da_sim = [5.02e6, 5.01e6, 5.00e6, 4.99e6, 4.98e6]
-        alpha_sim = [80.0/360*2*pi, 70.0/360*2*pi, 60.0/360*2*pi, 
50.0/360*2*pi, 40.0/360*2*pi]
-        beta_sim = [295.0/360*2*pi, 292.5/360*2*pi, 290.0/360*2*pi, 
289.5/360*2*pi, 288.0/360*2*pi]
-        gamma_sim = [102.0/360*2*pi, 101.0/360*2*pi, 0, 99.0/360*2*pi, 
98.0/360*2*pi]
-        for i in range(5):
-            cdp.diff_tensor.Dr_sim[i] = Dr_sim[i]
-            cdp.diff_tensor.tm_sim[i] = tm_sim[i]
-            cdp.diff_tensor.Da_sim[i] = Da_sim[i]
-            cdp.diff_tensor.alpha_sim[i] = alpha_sim[i]
-            cdp.diff_tensor.beta_sim[i] = beta_sim[i]
-            cdp.diff_tensor.gamma_sim[i] = gamma_sim[i]
-
-        # Reset some values.
-        cdp.diff_tensor.tm_sim[0] = 8.98e-8
-        cdp.diff_tensor.gamma_sim[2] = 100.0/360*2*pi
+        cdp.align_tensors[2].Axx = 1
 
 
     def tearDown(self):
@@ -147,157 +93,34 @@
         ds.__reset__()
 
         # Delete the temporary files.
-        try:
-            remove(self.tmpfile_sphere)
-            remove(self.tmpfile_spheroid)
-            remove(self.tmpfile_ellipsoid)
-        except OSError:
-            pass
+        delete(self.tmpfile, fail=False)
 
 
-    def test_copy(self):
-        """The user function diffusion_tensor.copy()."""
+    def test_to_and_from_xml(self):
+        """Test the conversion to and from XML."""
 
-        # Create three additional data pipes for copying the spherical, 
spheroidal, and ellipsoidal diffusion data.
-        self.relax.interpreter._Pipe.create('sphere2', 'mf')
-        self.relax.interpreter._Pipe.create('spheroid2', 'mf')
-        self.relax.interpreter._Pipe.create('ellipsoid2', 'mf')
+        # Save the data pipe.
+        self.relax.interpreter._Results.write(self.tmpfile, dir=None)
 
-        # Copy the data.
-        self.relax.interpreter._Diffusion_tensor.copy('sphere', 'sphere2')
-        self.relax.interpreter._Diffusion_tensor.copy('spheroid', 
'spheroid2')
-        self.relax.interpreter._Diffusion_tensor.copy('ellipsoid', 
'ellipsoid2')
+        # Create a new data pipe.
+        self.relax.interpreter._Pipe.create('new', 'frame order')
 
-        # Get the data pipes.
-        sphere_pipe = get_pipe('sphere')
-        sphere2_pipe = get_pipe('sphere2')
+        # Load the data.
+        self.relax.interpreter._Results.read(self.tmpfile, dir=None)
 
-        # Check that this is indeed a copy.
-        self.assertEqual(sphere2_pipe.diff_tensor.tm_sim[4], 9.02e-8)
-        self.assertEqual(sphere2_pipe.diff_tensor.Diso_sim[4], 1/(6*9.02e-8))
-        sphere_pipe.diff_tensor.tm_sim[4] = 8.88e-8
-        self.assertEqual(sphere_pipe.diff_tensor.tm_sim[4], 8.88e-8)
-        self.assertEqual(sphere_pipe.diff_tensor.Diso_sim[4], 1/(6*8.88e-8))
-        self.assertEqual(sphere2_pipe.diff_tensor.tm_sim[4], 9.02e-8)
-        self.assertEqual(sphere2_pipe.diff_tensor.Diso_sim[4], 1/(6*9.02e-8))
+        # Checks.
+        self.assertEqual(len(cdp.align_tensors), 5)
+        for i in range(5):
+            # Full tensors.
+            self.assertEqual(cdp.align_tensors[i*2].Axx, 
self.tensors_full[i][0])
+            self.assertEqual(cdp.align_tensors[i*2].Ayy, 
self.tensors_full[i][1])
+            self.assertEqual(cdp.align_tensors[i*2].Axy, 
self.tensors_full[i][2])
+            self.assertEqual(cdp.align_tensors[i*2].Axz, 
self.tensors_full[i][3])
+            self.assertEqual(cdp.align_tensors[i*2].Ayz, 
self.tensors_full[i][4])
 
-
-    def test_delete(self):
-        """The user function diffusion_tensor.delete()."""
-
-        # Delete the data.
-        self.relax.interpreter._Pipe.switch('sphere')
-        self.relax.interpreter._Diffusion_tensor.delete()
-        self.relax.interpreter._Pipe.switch('spheroid')
-        self.relax.interpreter._Diffusion_tensor.delete()
-        self.relax.interpreter._Pipe.switch('ellipsoid')
-        self.relax.interpreter._Diffusion_tensor.delete()
-
-
-    def test_display(self):
-        """The user function diffusion_tensor.display()."""
-
-        # Display the data.
-        self.relax.interpreter._Pipe.switch('sphere')
-        self.relax.interpreter._Diffusion_tensor.display()
-        self.relax.interpreter._Pipe.switch('spheroid')
-        self.relax.interpreter._Diffusion_tensor.display()
-        self.relax.interpreter._Pipe.switch('ellipsoid')
-        self.relax.interpreter._Diffusion_tensor.display()
-
-
-    def test_create_diff_tensor_pdb_sphere(self):
-        """Test the user function structure.create_diff_tensor_pdb() for the 
sphere."""
-
-        # First copy the data (a more vigorous copy test!).
-        self.relax.interpreter._Pipe.copy('sphere', 'sphere2')
-        self.relax.interpreter._Pipe.switch('sphere2')
-        self.relax.interpreter._Diffusion_tensor.delete()
-        self.relax.interpreter._Diffusion_tensor.copy('sphere', 'sphere2')
-
-        # Create the diffusion tensor objects.
-        
self.relax.interpreter._Structure.create_diff_tensor_pdb(file=self.tmpfile_sphere)
-
-        # Open the temp file.
-        file = open(self.tmpfile_sphere)
-        new_data = file.readlines()
-        file.close()
-
-        # Open the real file.
-        file = open(sys.path[-1] + 
sep+'test_suite'+sep+'shared_data'+sep+'structures'+sep+'diff_tensors'+sep+'sphere.pdb')
-        real_data = file.readlines()
-        file.close()
-
-        # Check the data.
-        self.assertEqual(len(real_data), len(new_data))
-        for i in range(len(real_data)):
-            # Print the PDB line, for debugging.
-            print((real_data[i][0:-1]))
-
-            # Check the line.
-            self.assertEqual(real_data[i], new_data[i])
-
-
-    def test_create_diff_tensor_pdb_spheroid(self):
-        """Test the user function structure.create_diff_tensor_pdb() for the 
spheroid."""
-
-        # First copy the data (a more vigorous copy test!).
-        self.relax.interpreter._Pipe.copy('spheroid', 'spheroid2')
-        self.relax.interpreter._Pipe.switch('spheroid2')
-        self.relax.interpreter._Diffusion_tensor.delete()
-        self.relax.interpreter._Diffusion_tensor.copy('spheroid', 
'spheroid2')
-
-        # Create the diffusion tensor objects.
-        
self.relax.interpreter._Structure.create_diff_tensor_pdb(file=self.tmpfile_spheroid)
-
-        # Open the temp file.
-        file = open(self.tmpfile_spheroid)
-        new_data = file.readlines()
-        file.close()
-
-        # Open the real file.
-        file = open(sys.path[-1] + 
sep+'test_suite'+sep+'shared_data'+sep+'structures'+sep+'diff_tensors'+sep+'spheroid.pdb')
-        real_data = file.readlines()
-        file.close()
-
-        # Check the data.
-        self.assertEqual(len(real_data), len(new_data))
-        for i in range(len(real_data)):
-            # Print the PDB line, for debugging.
-            print((real_data[i][0:-1]))
-
-            # Check the line.
-            self.assertEqual(real_data[i], new_data[i])
-
-
-    def test_create_diff_tensor_pdb_ellipsoid(self):
-        """Test the user function structure.create_diff_tensor_pdb() for the 
ellipsoid."""
-
-        # First copy the data (a more vigorous copy test!).
-        self.relax.interpreter._Pipe.copy('ellipsoid', 'ellipsoid2')
-        self.relax.interpreter._Pipe.switch('ellipsoid2')
-        self.relax.interpreter._Diffusion_tensor.delete()
-        self.relax.interpreter._Diffusion_tensor.copy('ellipsoid', 
'ellipsoid2')
-
-        # Create the diffusion tensor objects.
-        
self.relax.interpreter._Structure.create_diff_tensor_pdb(file=self.tmpfile_ellipsoid,
 scale=1e-05)
-
-        # Open the temp file.
-        file = open(self.tmpfile_ellipsoid)
-        new_data = file.readlines()
-        file.close()
-
-        # Open the real file.
-        file = open(sys.path[-1] + 
sep+'test_suite'+sep+'shared_data'+sep+'structures'+sep+'diff_tensors'+sep+'ellipsoid.pdb')
-        real_data = file.readlines()
-        file.close()
-
-        # Check the data.
-        self.assertEqual(len(real_data), len(new_data))
-        for i in range(len(real_data)):
-            # Print the PDB line, for debugging.
-            print((real_data[i][0:-1]))
-
-            # Check the line.
-            self.assertEqual(real_data[i], new_data[i])
-
+            # Reduced tensors.
+            self.assertEqual(cdp.align_tensors[i*2+1].Axx, 
self.tensors_red[i][0])
+            self.assertEqual(cdp.align_tensors[i*2+1].Ayy, 
self.tensors_red[i][1])
+            self.assertEqual(cdp.align_tensors[i*2+1].Axy, 
self.tensors_red[i][2])
+            self.assertEqual(cdp.align_tensors[i*2+1].Axz, 
self.tensors_red[i][3])
+            self.assertEqual(cdp.align_tensors[i*2+1].Ayz, 
self.tensors_red[i][4])




Related Messages


Powered by MHonArc, Updated Fri Sep 18 18:40:05 2009