Author: bugman
Date: Wed Nov 19 18:40:28 2014
New Revision: 26635
URL: http://svn.gna.org/viewcvs/relax?rev=26635&view=rev
Log:
Created the Align_tensor.test_align_tensor_matrix_angles system test.
This is to check the angles calculated by the align_tensor.matrix_angles user
function. As there
are no external references, this essentially fixes the angles to the currently
calculated values to
catch any accidental changes in the future.
Modified:
trunk/test_suite/system_tests/align_tensor.py
Modified: trunk/test_suite/system_tests/align_tensor.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/test_suite/system_tests/align_tensor.py?rev=26635&r1=26634&r2=26635&view=diff
==============================================================================
--- trunk/test_suite/system_tests/align_tensor.py (original)
+++ trunk/test_suite/system_tests/align_tensor.py Wed Nov 19 18:40:28 2014
@@ -90,6 +90,126 @@
cdp.align_tensors[2].set(param='Axx', value=1)
+ def test_align_tensor_matrix_angles(self):
+ """Test the operation of the align_tensor.matrix_angles user function
for different basis sets.
+
+ This originates from the script in
test_suite/shared_data/align_data/basis_sets/.
+ """
+
+ # Random tensors of {Axx, Ayy, Axy, Axz, Ayz} generated using
random.uniform(0, 1e-4).
+ tensor1 = [5.4839183673166663e-05, 3.692459844061351e-05,
1.994164790083226e-05, 4.5945264935308495e-05, 1.0090119622465559e-05]
+ tensor2 = [1.5832157768761617e-05, -4.9797877146095514e-05,
-3.6007226809999e-05, -3.8175058915299295e-05, 5.3131759988544946e-05]
+ tensor3 = [3.892445496049645e-05, -1.7165585393754253e-05,
7.803231512226243e-05, -3.057296854986567e-05, 9.31348723610886e-05]
+ tensor4 = [4.6720247808382186e-05, -9.140580842599e-05,
-3.415945182796103e-05, -1.7753928806205142e-05, 5.20457038882803e-05]
+
+ # Create a N-state analysis data pipe.
+ self.interpreter.pipe.create('basis set comparison', 'N-state')
+
+ # Load the tensors.
+ self.interpreter.align_tensor.init(tensor='t1', align_id='t1',
params=tuple(tensor1))
+ self.interpreter.align_tensor.init(tensor='t2', align_id='t2',
params=tuple(tensor2))
+ self.interpreter.align_tensor.init(tensor='t3', align_id='t3',
params=tuple(tensor3))
+ self.interpreter.align_tensor.init(tensor='t4', align_id='t4',
params=tuple(tensor4))
+
+ # Display.
+ self.interpreter.align_tensor.display()
+
+ # The standard inter-matrix angles.
+ self.interpreter.align_tensor.matrix_angles(basis_set='matrix')
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 0],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 1],
2.075565413247085)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 2],
1.338099052806276)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 3],
1.931864731843497)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 0],
2.075565413247085)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 1],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 2],
1.238391416802885)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 3],
0.425283739619488)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 0],
1.338099052806276)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 1],
1.238391416802885)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 2],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 3],
1.269973710252322)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 0],
1.931864731843497)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 1],
0.425283739619488)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 2],
1.269973710252322)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 3],
0.000000014901161)
+
+ # The inter-tensor vector angles for the irreducible 5D basis set
{A-2, A-1, A0, A1, A2}.
+ self.interpreter.align_tensor.matrix_angles(basis_set='irreducible 5D')
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 0],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 1],
2.075565413247085)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 2],
1.338099052806276)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 3],
1.931864731843497)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 0],
2.075565413247085)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 1],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 2],
1.238391416802885)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 3],
0.425283739619488)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 0],
1.338099052806276)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 1],
1.238391416802885)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 2],
0.000000021073424)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 3],
1.269973710252322)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 0],
1.931864731843497)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 1],
0.425283739619488)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 2],
1.269973710252322)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 3],
0.000000021073424)
+
+ # The inter-tensor vector angles for the unitary 9D basis set {Sxx,
Sxy, Sxz, Syx, Syy, Syz, Szx, Szy, Szz}.
+ self.interpreter.align_tensor.matrix_angles(basis_set='unitary 9D')
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 0],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 1],
2.075565413247085)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 2],
1.338099052806276)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 3],
1.931864731843497)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 0],
2.075565413247085)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 1],
0.000000014901161)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 2],
1.238391416802885)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 3],
0.425283739619488)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 0],
1.338099052806276)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 1],
1.238391416802885)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 2],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 3],
1.269973710252322)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 0],
1.931864731843497)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 1],
0.425283739619488)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 2],
1.269973710252322)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 3],
0.000000014901161)
+
+ # The inter-tensor vector angles for the unitary 5D basis set {Sxx,
Syy, Sxy, Sxz, Syz}.
+ self.interpreter.align_tensor.matrix_angles(basis_set='unitary 5D')
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 0],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 1],
1.962377927826435)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 2],
1.334149185082829)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 3],
1.747728360218234)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 0],
1.962377927826435)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 1],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 2],
1.163535022090889)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 3],
0.449110033170688)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 0],
1.334149185082829)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 1],
1.163535022090889)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 2],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 3],
1.180324869602255)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 0],
1.747728360218234)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 1],
0.449110033170688)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 2],
1.180324869602255)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 3],
0.000000000000000)
+
+ # The inter-tensor vector angles for the geometric 5D basis set {Szz,
Sxxyy, Sxy, Sxz, Syz}.
+ self.interpreter.align_tensor.matrix_angles(basis_set='geometric 5D')
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 0],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 1],
1.924475705542377)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 2],
1.290778333130633)
+ self.assertAlmostEqual(cdp.align_tensors.angles[0, 3],
1.724794814547786)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 0],
1.924475705542377)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 1],
0.000000021073424)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 2],
1.128650397698967)
+ self.assertAlmostEqual(cdp.align_tensors.angles[1, 3],
0.418891267835127)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 0],
1.290778333130633)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 1],
1.128650397698967)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 2],
0.000000000000000)
+ self.assertAlmostEqual(cdp.align_tensors.angles[2, 3],
1.126308408980378)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 0],
1.724794814547786)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 1],
0.418891267835127)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 2],
1.126308408980378)
+ self.assertAlmostEqual(cdp.align_tensors.angles[3, 3],
0.000000014901161)
+
+
def test_copy(self):
"""Test the copying of alignment tensors (to catch U{bug
#20338<https://gna.org/bugs/?20338>}."""
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-commits mailing list
[email protected]
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits