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