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

dockonsurf / tests / test_dos_input.py @ b4b2f307

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

1 4607d5ea Carles
import sys
2 4607d5ea Carles
import unittest
3 a3f617bc Carles Marti
import numpy as np
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 a3f617bc Carles Marti
                    'surf_norm_vect': np.array([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 5fb01677 Carles Marti
                    'min_coll_height': 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
        self.assertEqual(get_molec_file(), 'acetic.xyz')
97 95dc2c8e Carles
98 4607d5ea Carles
    def test_cluster_magns(self):
99 695dcff8 Carles Marti
        self.assertEqual(get_select_magns(), ['energy', 'moi'])
100 4607d5ea Carles
101 4607d5ea Carles
    def test_num_conformers(self):
102 4607d5ea Carles
        self.assertEqual(get_num_conformers(), 100)
103 4607d5ea Carles
104 b1f6e69d Carles
    def test_min_confs(self):
105 b1f6e69d Carles
        self.assertEqual(get_min_confs(), False)
106 b1f6e69d Carles
107 4607d5ea Carles
    def test_screen_inp_file(self):
108 4607d5ea Carles
        self.assertEqual(get_screen_inp_file(), 'screen.inp')
109 4607d5ea Carles
110 c845c6f2 Carles Marti
    def test_surf_file(self):
111 c845c6f2 Carles Marti
        self.assertEqual(get_surf_file(), 'hematite.xyz')
112 c845c6f2 Carles Marti
113 4607d5ea Carles
    def test_sites(self):
114 4607d5ea Carles
        self.assertEqual(get_sites(), [128, [135, 138, 141]])
115 4607d5ea Carles
116 4607d5ea Carles
    def test_molec_ads_ctrs(self):
117 4607d5ea Carles
        self.assertEqual(get_molec_ads_ctrs(), [178, [185, 187]])
118 4607d5ea Carles
119 c845c6f2 Carles Marti
    def test_molec_neigh_ctrs(self):
120 c845c6f2 Carles Marti
        self.assertEqual(get_molec_neigh_ctrs(), [145, 45])
121 c845c6f2 Carles Marti
122 c845c6f2 Carles Marti
    def test_surf_norm_vect(self):
123 a3f617bc Carles Marti
        self.assertEqual(get_surf_norm_vect(), np.array([1.0, 0.0, 0.0]))
124 c845c6f2 Carles Marti
125 4607d5ea Carles
    def test_try_disso(self):
126 b4b2f307 Carles Marti
        self.assertEqual(get_disso_atoms(), True)
127 4607d5ea Carles
128 4607d5ea Carles
    def test_pts_per_angle(self):
129 4607d5ea Carles
        self.assertEqual(get_pts_per_angle(), 4)
130 4607d5ea Carles
131 4607d5ea Carles
    def test_coll_thrsld(self):
132 4607d5ea Carles
        self.assertEqual(get_coll_thrsld(), 0.9)
133 4607d5ea Carles
134 0dfa15ff Carles Marti
    def test_coll_bottom(self):
135 5fb01677 Carles Marti
        self.assertEqual(get_min_coll_height(), 5.2)
136 4607d5ea Carles
137 4607d5ea Carles
    def test_refine_inp_file(self):
138 4607d5ea Carles
        self.assertEqual(get_refine_inp_file(), 'refine.inp')
139 4607d5ea Carles
140 4607d5ea Carles
    def test_energy_cutoff(self):
141 4607d5ea Carles
        self.assertEqual(get_energy_cutoff(), 1.0)
142 4607d5ea Carles
143 4607d5ea Carles
144 4607d5ea Carles
class TestBadInput(unittest.TestCase):
145 4607d5ea Carles
    dos_inp.read('wrong.inp')
146 4607d5ea Carles
147 4607d5ea Carles
    def test_run_type(self):
148 4607d5ea Carles
        self.assertRaises(ValueError, get_run_type)
149 4607d5ea Carles
150 4607d5ea Carles
    def test_code(self):
151 4607d5ea Carles
        self.assertRaises(ValueError, get_code)
152 4607d5ea Carles
153 4607d5ea Carles
    def test_batch_q_sys(self):
154 4607d5ea Carles
        self.assertRaises(ValueError, get_batch_q_sys)
155 4607d5ea Carles
156 65039b51 Carles
    def test_subm_script(self):
157 65039b51 Carles
        self.assertRaises(FileNotFoundError, get_subm_script)
158 65039b51 Carles
159 4607d5ea Carles
    def test_relaunch_err(self):
160 4607d5ea Carles
        self.assertRaises(ValueError, get_relaunch_err)
161 4607d5ea Carles
162 4607d5ea Carles
    def test_max_qw(self):
163 4607d5ea Carles
        self.assertRaises(ValueError, get_max_qw)
164 4607d5ea Carles
165 4607d5ea Carles
    def test_special_atoms(self):
166 4607d5ea Carles
        self.assertRaises(ValueError, get_special_atoms)
167 4607d5ea Carles
168 4607d5ea Carles
    def test_isol_inp_file(self):
169 4607d5ea Carles
        self.assertRaises(FileNotFoundError, get_isol_inp_file)
170 4607d5ea Carles
171 4607d5ea Carles
    def test_cluster_magns(self):
172 695dcff8 Carles Marti
        self.assertRaises(ValueError, get_select_magns)
173 4607d5ea Carles
174 4607d5ea Carles
    def test_num_conformers(self):
175 4607d5ea Carles
        self.assertRaises(ValueError, get_num_conformers)
176 4607d5ea Carles
177 b1f6e69d Carles
    def test_min_confs(self):
178 b1f6e69d Carles
        self.assertRaises(ValueError, get_min_confs)
179 b1f6e69d Carles
180 4607d5ea Carles
    def test_screen_inp_file(self):
181 4607d5ea Carles
        self.assertRaises(FileNotFoundError, get_screen_inp_file)
182 4607d5ea Carles
183 c845c6f2 Carles Marti
    def test_surf_file(self):
184 c845c6f2 Carles Marti
        self.assertRaises(FileNotFoundError, get_surf_file)
185 c845c6f2 Carles Marti
186 4607d5ea Carles
    def test_sites(self):
187 4607d5ea Carles
        self.assertRaises(ValueError, get_sites)
188 4607d5ea Carles
189 4607d5ea Carles
    def test_molec_ads_ctrs(self):
190 4607d5ea Carles
        self.assertRaises(ValueError, get_molec_ads_ctrs)
191 4607d5ea Carles
192 c845c6f2 Carles Marti
    def test_molec_neigh_ctrs(self):
193 c845c6f2 Carles Marti
        self.assertRaises(ValueError, get_molec_neigh_ctrs)
194 c845c6f2 Carles Marti
195 c845c6f2 Carles Marti
    def test_surf_norm_vect(self):
196 c845c6f2 Carles Marti
        self.assertRaises(ValueError, get_surf_norm_vect)
197 c845c6f2 Carles Marti
198 4607d5ea Carles
    def test_try_disso(self):
199 b4b2f307 Carles Marti
        self.assertRaises(ValueError, get_disso_atoms)
200 4607d5ea Carles
201 4607d5ea Carles
    def test_pts_per_angle(self):
202 4607d5ea Carles
        self.assertRaises(ValueError, get_pts_per_angle)
203 4607d5ea Carles
204 4607d5ea Carles
    def test_coll_thrsld(self):
205 4607d5ea Carles
        self.assertRaises(ValueError, get_coll_thrsld)
206 4607d5ea Carles
207 0dfa15ff Carles Marti
    def test_coll_bottom(self):
208 5fb01677 Carles Marti
        self.assertRaises(ValueError, get_min_coll_height)
209 4607d5ea Carles
210 4607d5ea Carles
    def test_refine_inp_file(self):
211 4607d5ea Carles
        self.assertRaises(FileNotFoundError, get_refine_inp_file)
212 4607d5ea Carles
213 4607d5ea Carles
    def test_energy_cutoff(self):
214 4607d5ea Carles
        self.assertRaises(ValueError, get_energy_cutoff)
215 4607d5ea Carles
216 4607d5ea Carles
217 4607d5ea Carles
if __name__ == '__main__':
218 4607d5ea Carles
    unittest.main()