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

dockonsurf / tests / test_dos_input.py @ 0dfa15ff

Historique | Voir | Annoter | Télécharger (6,84 ko)

1 4607d5ea Carles
import sys
2 4607d5ea Carles
import unittest
3 95dc2c8e Carles
4 65039b51 Carles
from modules.dos_input import *
5 65039b51 Carles
6 65039b51 Carles
sys.path.extend(['../', '../modules', '../examples'])
7 4607d5ea Carles
8 4607d5ea Carles
9 4607d5ea Carles
class TestStr2Lst(unittest.TestCase):
10 4607d5ea Carles
    def test_norm_behav(self):
11 4607d5ea Carles
        self.assertEqual(str2lst('45'), [45])
12 4607d5ea Carles
        self.assertEqual(str2lst('(78, 9)'), [[78, 9]])
13 4607d5ea Carles
        self.assertEqual(str2lst('128,(135 138;141) 87 {45 68}'),
14 4607d5ea Carles
                         [128, 87, [135, 138, 141], [45, 68]])
15 4533134f Carles Marti
        self.assertEqual(str2lst('3 4.5', float), [3.0, 4.5])
16 4607d5ea Carles
17 4607d5ea Carles
    def test_exceptions(self):
18 4607d5ea Carles
        self.assertRaises(AttributeError, str2lst, 6)
19 4607d5ea Carles
        self.assertRaises(ValueError, str2lst, 'hola')
20 4607d5ea Carles
        self.assertRaises(ValueError, str2lst, '3 ((6 7) 8) 4')
21 4533134f Carles Marti
        self.assertRaises(ValueError, str2lst, '3 4.5')
22 4607d5ea Carles
23 4607d5ea Carles
24 03fab2dd Carles
class TestCheckInpFile(unittest.TestCase):
25 03fab2dd Carles
    def test_good(self):
26 03fab2dd Carles
        self.assertEqual(check_inp_file('cp2k.inp', 'cp2k'), None)
27 03fab2dd Carles
28 03fab2dd Carles
    def test_bad(self):
29 03fab2dd Carles
        self.assertRaises(UnboundLocalError, check_inp_file, 'cp2k.sub', 'cp2k')
30 03fab2dd Carles
31 03fab2dd Carles
32 4607d5ea Carles
class TestGoodInput(unittest.TestCase):
33 4607d5ea Carles
    read_input('good.inp')
34 4607d5ea Carles
35 4607d5ea Carles
    def test_all_good(self):
36 9fd1daa6 Carles
        exp_dict = {'project_name': 'example',
37 9fd1daa6 Carles
                    'isolated': True,
38 4607d5ea Carles
                    'screening': True,
39 4607d5ea Carles
                    'refinement': True,
40 4607d5ea Carles
                    'code': 'cp2k',
41 4607d5ea Carles
                    'batch_q_sys': 'sge',
42 9fd1daa6 Carles
                    'subm_script': 'cp2k.sub',
43 4607d5ea Carles
                    'relaunch_err': 'geo_not_conv',
44 4607d5ea Carles
                    'max_qw': 5,
45 4607d5ea Carles
                    'special_atoms': [('Fe1', 'Fe'), ('Fe2', 'Fe'),
46 4607d5ea Carles
                                      ('O1', 'O')],
47 03fab2dd Carles
                    'isol_inp_file': 'cp2k.inp',
48 95dc2c8e Carles
                    'molec_file': 'acetic.xyz',
49 4607d5ea Carles
                    'cluster_magns': ['energy', 'moi'],
50 4607d5ea Carles
                    'num_conformers': 100,
51 b1f6e69d Carles
                    'min_confs': False,
52 4607d5ea Carles
                    'screen_inp_file': 'screen.inp',
53 c845c6f2 Carles Marti
                    'surf_file': 'hematite.xyz',
54 4607d5ea Carles
                    'sites': [128, [135, 138, 141]],
55 4607d5ea Carles
                    'molec_ads_ctrs': [178, [185, 187]],
56 c845c6f2 Carles Marti
                    'molec_neigh_ctrs': [145, 45],
57 c845c6f2 Carles Marti
                    'surf_norm_vect': [1.0, 0.0, 0.0],
58 4607d5ea Carles
                    'try_disso': True,
59 4607d5ea Carles
                    'sample_points_per_angle': 4,
60 4607d5ea Carles
                    'collision_threshold': 0.9,
61 0dfa15ff Carles Marti
                    'collision_bottom': 5.2,
62 4607d5ea Carles
                    'refine_inp_file': 'refine.inp',
63 4607d5ea Carles
                    'energy_cutoff': 1.0
64 4607d5ea Carles
                    }
65 4607d5ea Carles
        self.assertEqual(read_input('good.inp'), exp_dict)
66 4607d5ea Carles
67 4607d5ea Carles
    def test_run_type(self):
68 4607d5ea Carles
        self.assertEqual(get_run_type(), (True, True, True))
69 4607d5ea Carles
70 4607d5ea Carles
    def test_code(self):
71 4607d5ea Carles
        self.assertEqual(get_code(), 'cp2k')
72 4607d5ea Carles
73 4607d5ea Carles
    def test_batch_q_sys(self):
74 4607d5ea Carles
        self.assertEqual(get_batch_q_sys(), 'sge')
75 4607d5ea Carles
76 65039b51 Carles
    def test_subm_script(self):
77 65039b51 Carles
        self.assertEqual(get_subm_script(), 'cp2k.sub')
78 65039b51 Carles
79 65039b51 Carles
    def test_project_name(self):
80 65039b51 Carles
        self.assertEqual(get_project_name(), 'example')
81 65039b51 Carles
82 4607d5ea Carles
    def test_relaunch_err(self):
83 4607d5ea Carles
        self.assertEqual(get_relaunch_err(), 'geo_not_conv')
84 4607d5ea Carles
85 4607d5ea Carles
    def test_max_qw(self):
86 4607d5ea Carles
        self.assertEqual(get_max_qw(), 5)
87 4607d5ea Carles
88 4607d5ea Carles
    def test_special_atoms(self):
89 4607d5ea Carles
        self.assertEqual(get_special_atoms(), [('Fe1', 'Fe'), ('Fe2', 'Fe'),
90 4607d5ea Carles
                                               ('O1', 'O')])
91 4607d5ea Carles
92 4607d5ea Carles
    def test_isol_inp_file(self):
93 65039b51 Carles
        self.assertEqual(get_isol_inp_file(), 'cp2k.inp')
94 4607d5ea Carles
95 95dc2c8e Carles
    def test_molec_file(self):
96 95dc2c8e Carles
        print(os.getcwd())
97 95dc2c8e Carles
        self.assertEqual(get_molec_file(), 'acetic.xyz')
98 95dc2c8e Carles
99 4607d5ea Carles
    def test_cluster_magns(self):
100 4607d5ea Carles
        self.assertEqual(get_cluster_magns(), ['energy', 'moi'])
101 4607d5ea Carles
102 4607d5ea Carles
    def test_num_conformers(self):
103 4607d5ea Carles
        self.assertEqual(get_num_conformers(), 100)
104 4607d5ea Carles
105 b1f6e69d Carles
    def test_min_confs(self):
106 b1f6e69d Carles
        self.assertEqual(get_min_confs(), False)
107 b1f6e69d Carles
108 4607d5ea Carles
    def test_screen_inp_file(self):
109 4607d5ea Carles
        self.assertEqual(get_screen_inp_file(), 'screen.inp')
110 4607d5ea Carles
111 c845c6f2 Carles Marti
    def test_surf_file(self):
112 c845c6f2 Carles Marti
        self.assertEqual(get_surf_file(), 'hematite.xyz')
113 c845c6f2 Carles Marti
114 4607d5ea Carles
    def test_sites(self):
115 4607d5ea Carles
        self.assertEqual(get_sites(), [128, [135, 138, 141]])
116 4607d5ea Carles
117 4607d5ea Carles
    def test_molec_ads_ctrs(self):
118 4607d5ea Carles
        self.assertEqual(get_molec_ads_ctrs(), [178, [185, 187]])
119 4607d5ea Carles
120 c845c6f2 Carles Marti
    def test_molec_neigh_ctrs(self):
121 c845c6f2 Carles Marti
        self.assertEqual(get_molec_neigh_ctrs(), [145, 45])
122 c845c6f2 Carles Marti
123 c845c6f2 Carles Marti
    def test_surf_norm_vect(self):
124 c845c6f2 Carles Marti
        self.assertEqual(get_surf_norm_vect(), [1.0, 0.0, 0.0])
125 c845c6f2 Carles Marti
126 4607d5ea Carles
    def test_try_disso(self):
127 4607d5ea Carles
        self.assertEqual(get_try_disso(), True)
128 4607d5ea Carles
129 4607d5ea Carles
    def test_pts_per_angle(self):
130 4607d5ea Carles
        self.assertEqual(get_pts_per_angle(), 4)
131 4607d5ea Carles
132 4607d5ea Carles
    def test_coll_thrsld(self):
133 4607d5ea Carles
        self.assertEqual(get_coll_thrsld(), 0.9)
134 4607d5ea Carles
135 0dfa15ff Carles Marti
    def test_coll_bottom(self):
136 0dfa15ff Carles Marti
        self.assertEqual(get_coll_bottom(), 5.2)
137 4607d5ea Carles
138 4607d5ea Carles
    def test_refine_inp_file(self):
139 4607d5ea Carles
        self.assertEqual(get_refine_inp_file(), 'refine.inp')
140 4607d5ea Carles
141 4607d5ea Carles
    def test_energy_cutoff(self):
142 4607d5ea Carles
        self.assertEqual(get_energy_cutoff(), 1.0)
143 4607d5ea Carles
144 4607d5ea Carles
145 4607d5ea Carles
class TestBadInput(unittest.TestCase):
146 4607d5ea Carles
    dos_inp.read('wrong.inp')
147 4607d5ea Carles
148 4607d5ea Carles
    def test_run_type(self):
149 4607d5ea Carles
        self.assertRaises(ValueError, get_run_type)
150 4607d5ea Carles
151 4607d5ea Carles
    def test_code(self):
152 4607d5ea Carles
        self.assertRaises(ValueError, get_code)
153 4607d5ea Carles
154 4607d5ea Carles
    def test_batch_q_sys(self):
155 4607d5ea Carles
        self.assertRaises(ValueError, get_batch_q_sys)
156 4607d5ea Carles
157 65039b51 Carles
    def test_subm_script(self):
158 65039b51 Carles
        self.assertRaises(FileNotFoundError, get_subm_script)
159 65039b51 Carles
160 4607d5ea Carles
    def test_relaunch_err(self):
161 4607d5ea Carles
        self.assertRaises(ValueError, get_relaunch_err)
162 4607d5ea Carles
163 4607d5ea Carles
    def test_max_qw(self):
164 4607d5ea Carles
        self.assertRaises(ValueError, get_max_qw)
165 4607d5ea Carles
166 4607d5ea Carles
    def test_special_atoms(self):
167 4607d5ea Carles
        self.assertRaises(ValueError, get_special_atoms)
168 4607d5ea Carles
169 4607d5ea Carles
    def test_isol_inp_file(self):
170 4607d5ea Carles
        self.assertRaises(FileNotFoundError, get_isol_inp_file)
171 4607d5ea Carles
172 4607d5ea Carles
    def test_cluster_magns(self):
173 4607d5ea Carles
        self.assertRaises(ValueError, get_cluster_magns)
174 4607d5ea Carles
175 4607d5ea Carles
    def test_num_conformers(self):
176 4607d5ea Carles
        self.assertRaises(ValueError, get_num_conformers)
177 4607d5ea Carles
178 b1f6e69d Carles
    def test_min_confs(self):
179 b1f6e69d Carles
        self.assertRaises(ValueError, get_min_confs)
180 b1f6e69d Carles
181 4607d5ea Carles
    def test_screen_inp_file(self):
182 4607d5ea Carles
        self.assertRaises(FileNotFoundError, get_screen_inp_file)
183 4607d5ea Carles
184 c845c6f2 Carles Marti
    def test_surf_file(self):
185 c845c6f2 Carles Marti
        self.assertRaises(FileNotFoundError, get_surf_file)
186 c845c6f2 Carles Marti
187 4607d5ea Carles
    def test_sites(self):
188 4607d5ea Carles
        self.assertRaises(ValueError, get_sites)
189 4607d5ea Carles
190 4607d5ea Carles
    def test_molec_ads_ctrs(self):
191 4607d5ea Carles
        self.assertRaises(ValueError, get_molec_ads_ctrs)
192 4607d5ea Carles
193 c845c6f2 Carles Marti
    def test_molec_neigh_ctrs(self):
194 c845c6f2 Carles Marti
        self.assertRaises(ValueError, get_molec_neigh_ctrs)
195 c845c6f2 Carles Marti
196 c845c6f2 Carles Marti
    def test_surf_norm_vect(self):
197 c845c6f2 Carles Marti
        self.assertRaises(ValueError, get_surf_norm_vect)
198 c845c6f2 Carles Marti
199 4607d5ea Carles
    def test_try_disso(self):
200 4607d5ea Carles
        self.assertRaises(ValueError, get_try_disso)
201 4607d5ea Carles
202 4607d5ea Carles
    def test_pts_per_angle(self):
203 4607d5ea Carles
        self.assertRaises(ValueError, get_pts_per_angle)
204 4607d5ea Carles
205 4607d5ea Carles
    def test_coll_thrsld(self):
206 4607d5ea Carles
        self.assertRaises(ValueError, get_coll_thrsld)
207 4607d5ea Carles
208 0dfa15ff Carles Marti
    def test_coll_bottom(self):
209 0dfa15ff Carles Marti
        self.assertRaises(ValueError, get_coll_bottom)
210 4607d5ea Carles
211 4607d5ea Carles
    def test_refine_inp_file(self):
212 4607d5ea Carles
        self.assertRaises(FileNotFoundError, get_refine_inp_file)
213 4607d5ea Carles
214 4607d5ea Carles
    def test_energy_cutoff(self):
215 4607d5ea Carles
        self.assertRaises(ValueError, get_energy_cutoff)
216 4607d5ea Carles
217 4607d5ea Carles
218 4607d5ea Carles
if __name__ == '__main__':
219 4607d5ea Carles
    unittest.main()