1   
 2   
 3   
 4   
 5   
 6   
 7   
 8   
 9   
10   
11   
12   
13   
14   
15   
16   
17   
18   
19   
20   
21   
22   
23  from lib.structure.internal import object 
24  from test_suite.unit_tests.base_classes import UnitTestCase 
25   
26   
28      """Unit tests for the lib.structure.internal.object internal structural object module.""" 
29   
31          """Test for automated atom sequence sorting of the add_atom() method.""" 
32   
33           
34          struct = object.Internal() 
35   
36           
37          struct.add_atom(atom_name='A', res_name='UNK', res_num=1, mol_name='X', pos=[1., 0., -1.], element='S', sort=True) 
38          struct.add_atom(atom_name='A', res_name='UNK', res_num=1, mol_name='Y', pos=[0., 0., 0.], element='S', sort=True) 
39          struct.add_atom(atom_name='A', res_name='UNK', res_num=1, mol_name='Z', pos=[-1., 0., 1.], element='S', sort=True) 
40          struct.add_atom(atom_name='A', res_name='UNK', res_num=3, mol_name='X', pos=[1., 2., -1.], element='S', sort=True) 
41          struct.add_atom(atom_name='A', res_name='UNK', res_num=3, mol_name='Y', pos=[0., 2., 0.], element='S', sort=True) 
42          struct.add_atom(atom_name='A', res_name='UNK', res_num=3, mol_name='Z', pos=[-1., 2., 1.], element='S', sort=True) 
43          struct.connect_atom(mol_name='X', index1=0, index2=1) 
44          struct.connect_atom(mol_name='Y', index1=0, index2=1) 
45          struct.connect_atom(mol_name='Z', index1=0, index2=1) 
46          struct.add_atom(atom_name='A', res_name='UNK', res_num=2, mol_name='X', pos=[1., 20., -1.], element='S', sort=True) 
47          struct.add_atom(atom_name='A', res_name='UNK', res_num=2, mol_name='Y', pos=[0., 20., 0.], element='S', sort=True) 
48          struct.add_atom(atom_name='A', res_name='UNK', res_num=2, mol_name='Z', pos=[-1., 20., 1.], element='S', sort=True) 
49   
50           
51          data = [[ 
52              ['A', 'UNK', 1, [1., 0., -1.], 'S', [2]], 
53              ['A', 'UNK', 2, [1., 20., -1.], 'S', []], 
54              ['A', 'UNK', 3, [1., 2., -1.], 'S', [0]] 
55          ], [ 
56              ['A', 'UNK', 1, [0., 0., 0.], 'S', [2]], 
57              ['A', 'UNK', 2, [0., 20., 0.], 'S', []], 
58              ['A', 'UNK', 3, [0., 2., 0.], 'S', [0]] 
59          ], [ 
60              ['A', 'UNK', 1, [-1., 0., 1.], 'S', [2]], 
61              ['A', 'UNK', 2, [-1., 20., 1.], 'S', []], 
62              ['A', 'UNK', 3, [-1., 2., 1.], 'S', [0]] 
63          ]] 
64          mol_names = ['X', 'Y', 'Z'] 
65   
66           
67          self.assertEqual(len(struct.structural_data), 1) 
68          for i in range(len(struct.structural_data[0].mol)): 
69               
70              mol = struct.structural_data[0].mol[i] 
71   
72               
73              self.assertEqual(mol.mol_name, mol_names[i]) 
74   
75               
76              for j in range(len(mol.atom_name)): 
77                  self.assertEqual(mol.atom_name[j], data[i][j][0]) 
78                  self.assertEqual(mol.res_name[j], data[i][j][1]) 
79                  self.assertEqual(mol.res_num[j], data[i][j][2]) 
80                  self.assertEqual(mol.x[j], data[i][j][3][0]) 
81                  self.assertEqual(mol.y[j], data[i][j][3][1]) 
82                  self.assertEqual(mol.z[j], data[i][j][3][2]) 
83                  self.assertEqual(mol.element[j], data[i][j][4]) 
84                  self.assertEqual(mol.bonded[j], data[i][j][5]) 
  85