Statistiques
| Branche: | Tag: | Révision :

dockonsurf / tests / test_dos_input.py @ 9fd1daa6

Historique | Voir | Annoter | Télécharger (5,58 ko)

1 4607d5ea Carles
import sys
2 4607d5ea Carles
import unittest
3 95dc2c8e Carles
sys.path.extend(['../', '../modules', '../examples'])
4 95dc2c8e Carles
5 4607d5ea Carles
from dos_input import *
6 4607d5ea Carles
7 4607d5ea Carles
8 4607d5ea Carles
class TestStr2Lst(unittest.TestCase):
9 4607d5ea Carles
    def test_norm_behav(self):
10 4607d5ea Carles
        self.assertEqual(str2lst('45'), [45])
11 4607d5ea Carles
        self.assertEqual(str2lst('(78, 9)'), [[78, 9]])
12 4607d5ea Carles
        self.assertEqual(str2lst('128,(135 138;141) 87 {45 68}'),
13 4607d5ea Carles
                         [128, 87, [135, 138, 141], [45, 68]])
14 4607d5ea Carles
15 4607d5ea Carles
    def test_exceptions(self):
16 4607d5ea Carles
        self.assertRaises(AttributeError, str2lst, 6)
17 4607d5ea Carles
        self.assertRaises(ValueError, str2lst, 'hola')
18 4607d5ea Carles
        self.assertRaises(ValueError, str2lst, '3 ((6 7) 8) 4')
19 4607d5ea Carles
20 4607d5ea Carles
21 4607d5ea Carles
class TestGoodInput(unittest.TestCase):
22 4607d5ea Carles
    read_input('good.inp')
23 4607d5ea Carles
24 4607d5ea Carles
    def test_all_good(self):
25 9fd1daa6 Carles
        exp_dict = {'project_name': 'example',
26 9fd1daa6 Carles
                    'isolated': True,
27 4607d5ea Carles
                    'screening': True,
28 4607d5ea Carles
                    'refinement': True,
29 4607d5ea Carles
                    'code': 'cp2k',
30 4607d5ea Carles
                    'batch_q_sys': 'sge',
31 9fd1daa6 Carles
                    'subm_script': 'cp2k.sub',
32 4607d5ea Carles
                    'relaunch_err': 'geo_not_conv',
33 4607d5ea Carles
                    'max_qw': 5,
34 4607d5ea Carles
                    'special_atoms': [('Fe1', 'Fe'), ('Fe2', 'Fe'),
35 4607d5ea Carles
                                      ('O1', 'O')],
36 4607d5ea Carles
                    'isol_inp_file': 'isolated.inp',
37 95dc2c8e Carles
                    'molec_file': 'acetic.xyz',
38 4607d5ea Carles
                    'cluster_magns': ['energy', 'moi'],
39 4607d5ea Carles
                    'num_conformers': 100,
40 b1f6e69d Carles
                    'min_confs': False,
41 4607d5ea Carles
                    'screen_inp_file': 'screen.inp',
42 4607d5ea Carles
                    'sites': [128, [135, 138, 141]],
43 4607d5ea Carles
                    'molec_ads_ctrs': [178, [185, 187]],
44 4607d5ea Carles
                    'try_disso': True,
45 4607d5ea Carles
                    'sample_points_per_angle': 4,
46 4607d5ea Carles
                    'collision_threshold': 0.9,
47 4607d5ea Carles
                    'collision_bottom_z': 5.2,
48 4607d5ea Carles
                    'refine_inp_file': 'refine.inp',
49 4607d5ea Carles
                    'energy_cutoff': 1.0
50 4607d5ea Carles
                    }
51 4607d5ea Carles
        self.assertEqual(read_input('good.inp'), exp_dict)
52 4607d5ea Carles
53 9fd1daa6 Carles
    # TODO add single tests for subm_script and project_name
54 9fd1daa6 Carles
55 4607d5ea Carles
    def test_run_type(self):
56 4607d5ea Carles
        self.assertEqual(get_run_type(), (True, True, True))
57 4607d5ea Carles
58 4607d5ea Carles
    def test_code(self):
59 4607d5ea Carles
        self.assertEqual(get_code(), 'cp2k')
60 4607d5ea Carles
61 4607d5ea Carles
    def test_batch_q_sys(self):
62 4607d5ea Carles
        self.assertEqual(get_batch_q_sys(), 'sge')
63 4607d5ea Carles
64 4607d5ea Carles
    def test_relaunch_err(self):
65 4607d5ea Carles
        self.assertEqual(get_relaunch_err(), 'geo_not_conv')
66 4607d5ea Carles
67 4607d5ea Carles
    def test_max_qw(self):
68 4607d5ea Carles
        self.assertEqual(get_max_qw(), 5)
69 4607d5ea Carles
70 4607d5ea Carles
    def test_special_atoms(self):
71 4607d5ea Carles
        self.assertEqual(get_special_atoms(), [('Fe1', 'Fe'), ('Fe2', 'Fe'),
72 4607d5ea Carles
                                               ('O1', 'O')])
73 4607d5ea Carles
74 4607d5ea Carles
    def test_isol_inp_file(self):
75 4607d5ea Carles
        self.assertEqual(get_isol_inp_file(), 'isolated.inp')
76 4607d5ea Carles
77 95dc2c8e Carles
    def test_molec_file(self):
78 95dc2c8e Carles
        print(os.getcwd())
79 95dc2c8e Carles
        self.assertEqual(get_molec_file(), 'acetic.xyz')
80 95dc2c8e Carles
81 4607d5ea Carles
    def test_cluster_magns(self):
82 4607d5ea Carles
        self.assertEqual(get_cluster_magns(), ['energy', 'moi'])
83 4607d5ea Carles
84 4607d5ea Carles
    def test_num_conformers(self):
85 4607d5ea Carles
        self.assertEqual(get_num_conformers(), 100)
86 4607d5ea Carles
87 b1f6e69d Carles
    def test_min_confs(self):
88 b1f6e69d Carles
        self.assertEqual(get_min_confs(), False)
89 b1f6e69d Carles
90 4607d5ea Carles
    def test_screen_inp_file(self):
91 4607d5ea Carles
        self.assertEqual(get_screen_inp_file(), 'screen.inp')
92 4607d5ea Carles
93 4607d5ea Carles
    def test_sites(self):
94 4607d5ea Carles
        self.assertEqual(get_sites(), [128, [135, 138, 141]])
95 4607d5ea Carles
96 4607d5ea Carles
    def test_molec_ads_ctrs(self):
97 4607d5ea Carles
        self.assertEqual(get_molec_ads_ctrs(), [178, [185, 187]])
98 4607d5ea Carles
99 4607d5ea Carles
    def test_try_disso(self):
100 4607d5ea Carles
        self.assertEqual(get_try_disso(), True)
101 4607d5ea Carles
102 4607d5ea Carles
    def test_pts_per_angle(self):
103 4607d5ea Carles
        self.assertEqual(get_pts_per_angle(), 4)
104 4607d5ea Carles
105 4607d5ea Carles
    def test_coll_thrsld(self):
106 4607d5ea Carles
        self.assertEqual(get_coll_thrsld(), 0.9)
107 4607d5ea Carles
108 4607d5ea Carles
    def test_coll_bottom_z(self):
109 4607d5ea Carles
        self.assertEqual(get_coll_bottom_z(), 5.2)
110 4607d5ea Carles
111 4607d5ea Carles
    def test_refine_inp_file(self):
112 4607d5ea Carles
        self.assertEqual(get_refine_inp_file(), 'refine.inp')
113 4607d5ea Carles
114 4607d5ea Carles
    def test_energy_cutoff(self):
115 4607d5ea Carles
        self.assertEqual(get_energy_cutoff(), 1.0)
116 4607d5ea Carles
117 4607d5ea Carles
118 4607d5ea Carles
class TestBadInput(unittest.TestCase):
119 4607d5ea Carles
    dos_inp.read('wrong.inp')
120 4607d5ea Carles
121 4607d5ea Carles
    def test_run_type(self):
122 4607d5ea Carles
        self.assertRaises(ValueError, get_run_type)
123 4607d5ea Carles
124 4607d5ea Carles
    def test_code(self):
125 4607d5ea Carles
        self.assertRaises(ValueError, get_code)
126 4607d5ea Carles
127 4607d5ea Carles
    def test_batch_q_sys(self):
128 4607d5ea Carles
        self.assertRaises(ValueError, get_batch_q_sys)
129 4607d5ea Carles
130 4607d5ea Carles
    def test_relaunch_err(self):
131 4607d5ea Carles
        self.assertRaises(ValueError, get_relaunch_err)
132 4607d5ea Carles
133 4607d5ea Carles
    def test_max_qw(self):
134 4607d5ea Carles
        self.assertRaises(ValueError, get_max_qw)
135 4607d5ea Carles
136 4607d5ea Carles
    def test_special_atoms(self):
137 4607d5ea Carles
        self.assertRaises(ValueError, get_special_atoms)
138 4607d5ea Carles
139 4607d5ea Carles
    def test_isol_inp_file(self):
140 4607d5ea Carles
        self.assertRaises(FileNotFoundError, get_isol_inp_file)
141 4607d5ea Carles
142 4607d5ea Carles
    def test_cluster_magns(self):
143 4607d5ea Carles
        self.assertRaises(ValueError, get_cluster_magns)
144 4607d5ea Carles
145 4607d5ea Carles
    def test_num_conformers(self):
146 4607d5ea Carles
        self.assertRaises(ValueError, get_num_conformers)
147 4607d5ea Carles
148 b1f6e69d Carles
    def test_min_confs(self):
149 b1f6e69d Carles
        self.assertRaises(ValueError, get_min_confs)
150 b1f6e69d Carles
151 4607d5ea Carles
    def test_screen_inp_file(self):
152 4607d5ea Carles
        self.assertRaises(FileNotFoundError, get_screen_inp_file)
153 4607d5ea Carles
154 4607d5ea Carles
    def test_sites(self):
155 4607d5ea Carles
        self.assertRaises(ValueError, get_sites)
156 4607d5ea Carles
157 4607d5ea Carles
    def test_molec_ads_ctrs(self):
158 4607d5ea Carles
        self.assertRaises(ValueError, get_molec_ads_ctrs)
159 4607d5ea Carles
160 4607d5ea Carles
    def test_try_disso(self):
161 4607d5ea Carles
        self.assertRaises(ValueError, get_try_disso)
162 4607d5ea Carles
163 4607d5ea Carles
    def test_pts_per_angle(self):
164 4607d5ea Carles
        self.assertRaises(ValueError, get_pts_per_angle)
165 4607d5ea Carles
166 4607d5ea Carles
    def test_coll_thrsld(self):
167 4607d5ea Carles
        self.assertRaises(ValueError, get_coll_thrsld)
168 4607d5ea Carles
169 4607d5ea Carles
    def test_coll_bottom_z(self):
170 4607d5ea Carles
        self.assertRaises(ValueError, get_coll_bottom_z)
171 4607d5ea Carles
172 4607d5ea Carles
    def test_refine_inp_file(self):
173 4607d5ea Carles
        self.assertRaises(FileNotFoundError, get_refine_inp_file)
174 4607d5ea Carles
175 4607d5ea Carles
    def test_energy_cutoff(self):
176 4607d5ea Carles
        self.assertRaises(ValueError, get_energy_cutoff)
177 4607d5ea Carles
178 4607d5ea Carles
179 4607d5ea Carles
if __name__ == '__main__':
180 4607d5ea Carles
    unittest.main()