1   
  2   
  3   
  4   
  5   
  6   
  7   
  8   
  9   
 10   
 11   
 12   
 13   
 14   
 15   
 16   
 17   
 18   
 19   
 20   
 21   
 22   
 23  from os import sep 
 24  from re import search 
 25  from tempfile import mktemp 
 26   
 27   
 28  from status import Status; status = Status() 
 29  from test_suite.system_tests.base_classes import SystemTestCase 
 30   
 31   
 32 -class Grace(SystemTestCase): 
  33      """Class for testing the creation of grace plots.""" 
 34   
 36          """Common set up for these system tests.""" 
 37   
 38           
 39          self.tmpfile = mktemp() 
  40   
 41   
 43          """Test the plotting of the 15N data from the CaM-KKalpha save state.""" 
 44   
 45           
 46          self.interpreter.state.load('state_cam_kkalpha', dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'saved_states') 
 47   
 48           
 49          self.interpreter.grace.write('res_num', 's2', file=self.tmpfile, spin_id='@N', dir=None) 
 50   
 51           
 52          file = open(self.tmpfile) 
 53          lines = file.readlines() 
 54          file.close() 
 55   
 56           
 57          spin = [] 
 58          value = [] 
 59          error = [] 
 60   
 61           
 62          in_data = False 
 63          for i in range(len(lines)): 
 64               
 65              if search('G0.S0', lines[i]): 
 66                  in_data=True 
 67                  continue 
 68   
 69               
 70              if not in_data: 
 71                  continue 
 72   
 73               
 74              if search('^@', lines[i]): 
 75                  continue 
 76   
 77               
 78              if search('^&', lines[i]): 
 79                  break 
 80   
 81               
 82              row = lines[i].split() 
 83   
 84               
 85              spin.append(float(row[0])) 
 86              value.append(float(row[1])) 
 87              error.append(float(row[2])) 
 88   
 89           
 90          real_data = [ 
 91              [2,  0.693, 0.005], 
 92              [3,  0.400, 0.000], 
 93              [4,  0.882, 0.008], 
 94              [5,  0.901, 0.001], 
 95              [6,  0.953, 0.014], 
 96              [7,  0.905, 0.000], 
 97              [8,  0.939, 0.007], 
 98              [9,  0.948, 0.003], 
 99              [10, 0.957, 0.004] 
100          ] 
101   
102           
103          self.assertEqual(len(real_data), len(spin)) 
104   
105           
106          for i in range(len(real_data)): 
107              self.assertEqual(float(real_data[i][0]), spin[i]) 
108              self.assertAlmostEqual(real_data[i][1], value[i]) 
109              self.assertAlmostEqual(real_data[i][2], error[i]) 
  110