mailr20594 - /trunk/test_suite/system_tests/palmer.py


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

Header


Content

Posted by edward on August 14, 2013 - 19:52:
Author: bugman
Date: Wed Aug 14 19:52:39 2013
New Revision: 20594

URL: http://svn.gna.org/viewcvs/relax?rev=20594&view=rev
Log:
Added support for the Mac OS X Modelfree4 binary results to the Palmer.* 
system tests.

The Mac OS X Modelfree 4.20 binary produces different results than the Linux 
binaries, mainly due to
a compilation problem.  In the Linux binaries, the results are written out to 
4 decimal places.  In
the Mac binaries, the results are instead written out to 4 significant 
figures.  Therefore the
number of decimal places are much less than the Linux results.


Modified:
    trunk/test_suite/system_tests/palmer.py

Modified: trunk/test_suite/system_tests/palmer.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/test_suite/system_tests/palmer.py?rev=20594&r1=20593&r2=20594&view=diff
==============================================================================
--- trunk/test_suite/system_tests/palmer.py (original)
+++ trunk/test_suite/system_tests/palmer.py Wed Aug 14 19:52:39 2013
@@ -77,23 +77,29 @@
         # Determine if the Gnu gcc or Portland C compiler version is being 
used.
         spin = return_spin(':0@N', pipe='m2')
         if spin.te == 1.951*1e-12:
-            compiler = 'gcc'    # Gnu gcc modelfree4 version.
+            binary = 'linux-i386-gcc'   # Linux Gnu gcc modelfree4 version.
         else:
-            compiler = 'pgf'    # Portland C compiler modelfree4 version.
+            binary = 'linux-i386-pgf'   # Linux Portland C compiler 
modelfree4 version.
+        spin = return_spin(':-2@N', pipe='m1')
+        if spin.chi2 == 36.62:
+            binary = 'mac-i386'         # Mac OS X intel binary.
+        if not binary:
+            raise RelaxError("The Modelfree4 binary cannot be identified, 
therefore the parameters cannot be meaningfully checked.")
+        print("\nDetected the '%s' Modelfree4 binary." % binary)
 
         # Checks for model m1, m2, and m3 mfout file reading.
         models = ['m1', 'm2', 'm3']
         params = [['s2'], ['s2', 'te'], ['s2', 'rex']]
         spin_names = [':-2@N', ':-1@N', ':0@N']
-        if compiler == 'gcc':
-            s2 = [[0.869, 0.732, None], [0.869, 0.730, None], [0.715, 0.643, 
None]]
-            te = [[None, None, None], [0.0, 1.951, None], [None, None, 
None]]    # Gnu gcc modelfree4 version.
-            rex = [[None, None, None], [None, None, None], [4.308, 4.278, 
None]]
+        s2 = [[0.869, 0.732, None], [0.869, 0.730, None], [0.715, 0.643, 
None]]
+        if binary == 'linux-i386-gcc':
+            te = [[None, None, None], [0.0, 1.951, None], [None, None, None]]
         else:
-            s2 = [[0.869, 0.732, None], [0.869, 0.730, None], [0.715, 0.643, 
None]]
-            te = [[None, None, None], [0.0, 1.952, None], [None, None, 
None]]    # Portland C compiler modelfree4 version.
-            rex = [[None, None, None], [None, None, None], [4.308, 4.278, 
None]]
+            te = [[None, None, None], [0.0, 1.952, None], [None, None, None]]
+        rex = [[None, None, None], [None, None, None], [4.308, 4.278, None]]
         chi2 = [[36.6223, 20.3954, None], [36.6223, 20.3299, None], [1.9763, 
0.6307, None]]
+        if binary == 'mac-i386':
+            chi2 = [[36.62, 20.40, None], [36.62, 20.33, None], [1.976, 
0.6307, None]]
         for model_index in range(3):
             print("Model " + repr(models[model_index]))
             for spin_index in range(3):
@@ -130,6 +136,8 @@
         te = [None, None]
         rex = [0.005, 0.404]
         chi2 = [1.7966, 0.7389]
+        if binary == 'mac-i386':
+            chi2 = [1.796, 0.7392]
         for spin_index in range(3):
             # Get the spin.
             spin = return_spin(spin_names[spin_index], pipe='aic')
@@ -147,19 +155,23 @@
             # Checks.
             self.assertEqual(spin.model, models[spin_index])
             self.assertEqual(spin.params, params[spin_index])
-            self.assertEqual(spin.s2, s2[spin_index])
+            self.assertAlmostEqual(spin.s2, s2[spin_index])
             self.assertEqual(spin.s2f, None)
             self.assertEqual(spin.s2s, None)
-            self.assertEqual(spin.te, te[spin_index])
+            self.assertAlmostEqual(spin.te, te[spin_index])
             self.assertEqual(spin.tf, None)
             self.assertEqual(spin.ts, None)
-            self.assertEqual(spin.rex, rex[spin_index])
+            self.assertAlmostEqual(spin.rex, rex[spin_index])
             self.assertEqual(spin.chi2, chi2[spin_index])
 
         # Final global values.
         final_pipe = pipes.get_pipe('aic')
-        self.assertEqual(final_pipe.chi2, 2.5356)
-        self.assertEqual(final_pipe.diff_tensor.tm, 12.045)
+        if binary == 'mac-i386':
+            self.assertAlmostEqual(final_pipe.chi2, 2.5355)
+            self.assertAlmostEqual(final_pipe.diff_tensor.tm, 12.051)
+        else:
+            self.assertAlmostEqual(final_pipe.chi2, 2.5356)
+            self.assertAlmostEqual(final_pipe.diff_tensor.tm, 12.045)
 
 
     def test_palmer_omp(self):
@@ -179,15 +191,19 @@
         if spin.s2 == 0.855:
             raise RelaxError("You are using an old, buggy Modelfree4 
version!  You must upgrade to version 4.20 or later.")
 
-        # Determine if the Gnu gcc or Portland C compiler version is being 
used.
+        # Determine the Modelfree4 binary type used.
         spin = return_spin(':9@N', pipe='aic')
+        binary = None
         if spin.te * 1e12 == 52.195:
-            compiler = 'gcc'    # Gnu gcc modelfree4 version.
+            binary = 'linux-i386-gcc'   # Linux Gnu gcc modelfree4 version.
         elif spin.te * 1e12 == 52.197:
-            compiler = 'pgf'    # Portland C compiler modelfree4 version.
-        else:
+            binary = 'linux-i386-pgf'   # Linux Portland C compiler 
modelfree4 version.
+        spin = return_spin(':9@N', pipe='m1')
+        if spin.chi2 == 143.7:
+            binary = 'mac-i386'         # Mac OS X intel binary.
+        if not binary:
             raise RelaxError("The Modelfree4 binary cannot be identified, 
therefore the parameters cannot be meaningfully checked.")
-        print("\nDetected the '%s' compiled binary." % compiler)
+        print("\nDetected the '%s' Modelfree4 binary." % binary)
 
         # Model m1, m2, and m3 mfout file data.
         models = ['m1', 'm2', 'm3']
@@ -195,8 +211,12 @@
         spin_names = [':9@N', ':10@N', ':11@N']
         s2 = [[0.822, 0.799, 0.823], [0.788, 0.777, 0.812], [0.822, 0.799, 
0.823]]
         te = [[None, None, None], [61.506, 36.087, 20.039], [None, None, 
None]]
+        if binary == 'mac-i386':
+            te = [[None, None, None], [61.504, 36.087, 20.039], [None, None, 
None]]
         rex = [[None, None, None], [None, None, None], [0.0, 0.0, 0.0]]
         chi2 = [[143.6773, 105.1767, 61.6684], [40.9055, 57.1562, 48.4927], 
[143.6773, 105.1767, 61.6684]]
+        if binary == 'mac-i386':
+            chi2 = [[143.7, 105.2, 61.67], [40.91, 57.16, 48.49], [143.7, 
105.2, 61.67]]
 
         # Checks for model m1, m2, and m3 mfout file reading.
         for model_index in range(3):
@@ -206,20 +226,20 @@
 
                 # Get the spin.
                 spin = return_spin(spin_names[spin_index], 
pipe=models[model_index])
+                print spin
 
                 # Conversions.
-                if te[model_index][spin_index]:
-                    te[model_index][spin_index] = 
te[model_index][spin_index] * 1e-12
                 if rex[model_index][spin_index]:
                     rex[model_index][spin_index] = 
rex[model_index][spin_index] / (2.0 * pi * 
cdp.spectrometer_frq[cdp.ri_ids[0]])**2
 
                 # Checks.
                 self.assertEqual(spin.model, models[model_index])
                 self.assertEqual(spin.params, params[model_index])
-                self.assertEqual(spin.s2, s2[model_index][spin_index])
+                self.assertAlmostEqual(spin.s2, s2[model_index][spin_index])
                 self.assertEqual(spin.s2f, None)
                 self.assertEqual(spin.s2s, None)
-                self.assertEqual(spin.te, te[model_index][spin_index])
+                if te[model_index][spin_index]:
+                    self.assertAlmostEqual(spin.te * 1e12, 
te[model_index][spin_index])
                 self.assertEqual(spin.tf, None)
                 self.assertEqual(spin.ts, None)
                 self.assertEqual(spin.rex, rex[model_index][spin_index])
@@ -229,11 +249,15 @@
         models = ['m2', 'm2', 'm2']
         params = [['s2', 'te'], ['s2', 'te'], ['s2', 'te']]
         s2 = [0.755, 0.761, 0.787]
-        if compiler == 'gcc':
+        if binary == 'linux-i386-gcc':
             te = [52.195, 29.356, 12.678]
-        else:
+        elif binary == 'linux-i386-pgf':
             te = [52.197, 29.361, 12.677]
+        elif binary == 'mac-i386':
+            te = [52.197, 29.357, 12.676]
         chi2 = [7.254, 8.0437, 0.5327]
+        if binary == 'mac-i386':
+            chi2 = [7.254, 8.044, 0.5327]
 
         # Checks for the final mfout file reading.
         for spin_index in range(3):
@@ -243,7 +267,7 @@
             # Checks.
             self.assertEqual(spin.model, models[spin_index])
             self.assertEqual(spin.params, params[spin_index])
-            self.assertEqual(spin.s2, s2[spin_index])
+            self.assertAlmostEqual(spin.s2, s2[spin_index])
             self.assertEqual(spin.s2f, None)
             self.assertEqual(spin.s2s, None)
             if te[spin_index]:
@@ -251,19 +275,23 @@
             self.assertEqual(spin.tf, None)
             self.assertEqual(spin.ts, None)
             self.assertEqual(spin.rex, None)
-            self.assertEqual(spin.chi2, chi2[spin_index])
+            self.assertAlmostEqual(spin.chi2, chi2[spin_index])
 
         # Final global values.
         final_pipe = pipes.get_pipe('aic')
-        if compiler == 'gcc':
-            self.assertEqual(final_pipe.chi2, 15.8304)
-            self.assertEqual(final_pipe.diff_tensor.tm, 8.443)
-            self.assertEqual(final_pipe.diff_tensor.Dratio, 1.053)
-            self.assertEqual(final_pipe.diff_tensor.theta * 360 / 2.0 / pi, 
68.592)
-            self.assertEqual(final_pipe.diff_tensor.phi * 360 / 2.0 / pi, 
73.756)
-        else:
-            self.assertEqual(final_pipe.chi2, 15.8304)
-            self.assertEqual(final_pipe.diff_tensor.tm, 8.443)
-            self.assertEqual(final_pipe.diff_tensor.Dratio, 1.053)
-            self.assertEqual(final_pipe.diff_tensor.theta * 360 / 2.0 / pi, 
68.864)
-            self.assertEqual(final_pipe.diff_tensor.phi * 360 / 2.0 / pi, 
73.913)
+        self.assertEqual(final_pipe.chi2, 15.8304)
+        if binary == 'linux-i386-gcc':
+            self.assertAlmostEqual(final_pipe.diff_tensor.tm, 8.443)
+            self.assertAlmostEqual(final_pipe.diff_tensor.Dratio, 1.053)
+            self.assertAlmostEqual(final_pipe.diff_tensor.theta * 360 / 2.0 
/ pi, 68.592)
+            self.assertAlmostEqual(final_pipe.diff_tensor.phi * 360 / 2.0 / 
pi, 73.756)
+        elif binary == 'linux-i386-pgf':
+            self.assertAlmostEqual(final_pipe.diff_tensor.tm, 8.443)
+            self.assertAlmostEqual(final_pipe.diff_tensor.Dratio, 1.053)
+            self.assertAlmostEqual(final_pipe.diff_tensor.theta * 360 / 2.0 
/ pi, 68.864)
+            self.assertAlmostEqual(final_pipe.diff_tensor.phi * 360 / 2.0 / 
pi, 73.913)
+        elif binary == 'mac-i386':
+            self.assertAlmostEqual(final_pipe.diff_tensor.tm, 8.459)
+            self.assertAlmostEqual(final_pipe.diff_tensor.Dratio, 1.049)
+            self.assertAlmostEqual(final_pipe.diff_tensor.theta * 360 / 2.0 
/ pi, 64.611)
+            self.assertAlmostEqual(final_pipe.diff_tensor.phi * 360 / 2.0 / 
pi, 79.281)




Related Messages


Powered by MHonArc, Updated Wed Aug 14 20:00:01 2013