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   
25   
26  from data_store import Relax_data_store; ds = Relax_data_store() 
27  from pipe_control.interatomic import return_interatom_list 
28  from status import Status; status = Status() 
29  from test_suite.system_tests.base_classes import SystemTestCase 
30   
31   
33      """Class for testing the angle calculation function.""" 
34   
36          """The user function angles().""" 
37   
38           
39          self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'angles.py') 
40   
41           
42          res_name = ['GLY', 'PRO', 'LEU', 'GLY', 'SER', 'MET', 'ASP', 'SER', 'PRO', 'PRO', 'GLU', 'GLY'] 
43          spin_num = [1, 10, 24, 43, 50, 61, 78, 90, 101, 115, 129, 144] 
44          spin_name = ['N']*12 
45          attached_atoms = [None, None, 'H', 'H', 'H', 'H', 'H', 'H', None, None, 'H', 'H'] 
46          xh_vects = [ 
47              None, 
48              None, 
49              [0.408991870425, -0.805744582632, 0.428370537602], 
50              [-0.114123686687, -0.989411605119, -0.0896686109685], 
51              [-0.0162975723187, -0.975817142584, 0.217980029763], 
52              [-0.255934111969, -0.960517663248, -0.109103386377], 
53              [0.922628022844, 0.38092966093, 0.0604162634271], 
54              [0.926402811426, 0.281593806116, 0.249965516299], 
55              None, 
56              None, 
57              [0.820296708196, 0.570330671495, -0.0428513205774], 
58              [-0.223383112106, -0.034680483158, -0.974113571055] 
59          ] 
60          alpha = [None, None, 2.8102691247870459, 2.6063738282640672, 2.9263088853837358, 2.5181004004450211, 1.3361463581932049, 1.5031623128368377, None, None, 1.0968465542222101, 1.1932423104331247] 
61   
62           
63          self.assertEqual(len(cdp.mol), 1) 
64          self.assertEqual(cdp.mol[0].name, 'Ap4Aase_res1-12_mol1') 
65          self.assertEqual(len(cdp.mol[0].res), 12) 
66   
67           
68          for i in range(12): 
69               
70              self.assertEqual(cdp.mol[0].res[i].num, i+1) 
71              self.assertEqual(cdp.mol[0].res[i].name, res_name[i]) 
72              self.assertEqual(cdp.mol[0].res[i].spin[0].num, spin_num[i]) 
73              self.assertEqual(cdp.mol[0].res[i].spin[0].name, spin_name[i]) 
74   
75               
76              interatoms = return_interatom_list(cdp.mol[0].res[i].spin[0]._spin_ids[0]) 
77   
78               
79              self.assert_(len(interatoms) <= 1) 
80   
81               
82              if not interatoms: 
83                   
84                  self.assertEqual(len(cdp.mol[0].res[i].spin), 1) 
85   
86               
87              else: 
88                   
89                  self.assertEqual(len(cdp.mol[0].res[i].spin), 2) 
90                  self.assertEqual(cdp.mol[0].res[i].spin[1].name, attached_atoms[i]) 
91   
92                   
93                  for j in range(3): 
94                      self.assertAlmostEqual(interatoms[0].vector[j], xh_vects[i][j]) 
95   
96                   
97                  self.assertAlmostEqual(interatoms[0].alpha, alpha[i]) 
  98