File: test_startmodel.py

package info (click to toggle)
python-ihm 2.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,368 kB
  • sloc: python: 30,422; ansic: 5,990; sh: 24; makefile: 20
file content (77 lines) | stat: -rw-r--r-- 2,624 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import utils
import os
import unittest

TOPDIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
utils.set_search_paths(TOPDIR)
import ihm.startmodel


class Tests(unittest.TestCase):

    def test_template(self):
        """Test Template class"""
        class MockObject:
            pass
        dataset = MockObject()
        p = ihm.startmodel.Template(
            dataset=dataset, asym_id='G', seq_id_range=(1, 90),
            template_seq_id_range=(30, 90), sequence_identity=42.)
        self.assertEqual(p.asym_id, 'G')

    def test_pdb_helix(self):
        """Test PDBHelix class"""
        p = ihm.startmodel.PDBHelix(
            "HELIX   10  10 ASP A  607  GLU A  624  1"
            "                                  18   ")
        self.assertEqual(p.helix_id, '10')
        self.assertEqual(p.start_asym, 'A')
        self.assertEqual(p.start_resnum, 607)
        self.assertEqual(p.end_asym, 'A')
        self.assertEqual(p.end_resnum, 624)
        self.assertEqual(p.helix_class, 1)
        self.assertEqual(p.length, 18)

    def test_starting_model(self):
        """Test StartingModel class, no templates"""
        e1 = ihm.Entity('AAAA')
        asym = ihm.AsymUnit(e1)
        s = ihm.startmodel.StartingModel(asym, 'mock_dataset', 'A', offset=10)
        self.assertEqual(s.get_atoms(), [])
        self.assertEqual(s.get_seq_dif(), [])

    def test_seq_dif(self):
        """Test SeqDif class"""
        sd = ihm.startmodel.SeqDif(db_seq_id=10, seq_id=20, db_comp_id='PHE')
        self.assertEqual(sd.db_seq_id, 10)

    def test_mse_seq_dif(self):
        """Test MSESeqDif class"""
        sd = ihm.startmodel.MSESeqDif(db_seq_id=10, seq_id=20)
        self.assertEqual(sd.db_comp_id, 'MSE')
        self.assertEqual(sd.details,
                         'Conversion of modified residue MSE to MET')

    def test_add_atom(self):
        """Test StartingModel.add_atom()"""
        atoms = ['atom1', 'atom2']
        e1 = ihm.Entity('AAAA')
        asym = ihm.AsymUnit(e1)
        s = ihm.startmodel.StartingModel(asym, 'mock_dataset', 'A', offset=10)
        s.add_atom(atoms[0])
        s.add_atom(atoms[1])
        self.assertEqual(s._atoms, atoms)

    def test_add_seq_dif(self):
        """Test StartingModel.add_seq_dif()"""
        seq_difs = ['sd1', 'sd2']
        e1 = ihm.Entity('AAAA')
        asym = ihm.AsymUnit(e1)
        s = ihm.startmodel.StartingModel(asym, 'mock_dataset', 'A', offset=10)
        s.add_seq_dif(seq_difs[0])
        s.add_seq_dif(seq_difs[1])
        self.assertEqual(s._seq_difs, seq_difs)


if __name__ == '__main__':
    unittest.main()