diff --git a/python/vasp/test/_inpconf/rpath.py b/python/vasp/test/_inpconf/rpath.py new file mode 100644 index 00000000..b5d349d4 --- /dev/null +++ b/python/vasp/test/_inpconf/rpath.py @@ -0,0 +1,5 @@ +r""" +The sole role of this module is to determine the current path by +examining rpath.__file__. +""" +pass diff --git a/python/vasp/test/_inpconf/runtest.sh b/python/vasp/test/_inpconf/runtest.sh index 9b7bd8ca..4537817b 100755 --- a/python/vasp/test/_inpconf/runtest.sh +++ b/python/vasp/test/_inpconf/runtest.sh @@ -1 +1 @@ -PYTHONPATH=../../python:../../c:$PYTHONPATH python $1 +PYTHONPATH=../..:../../../../c:$PYTHONPATH python $1 diff --git a/python/vasp/test/_inpconf/test_general.py b/python/vasp/test/_inpconf/test_general.py index 64e7518e..f52495cf 100644 --- a/python/vasp/test/_inpconf/test_general.py +++ b/python/vasp/test/_inpconf/test_general.py @@ -1,6 +1,10 @@ r""" Tests of 'parse_general()' defined in ConfigParameters class """ +import os +import rpath +_rpath = os.path.dirname(rpath.__file__) + '/' + import arraytest import numpy as np from inpconf import ConfigParameters @@ -22,7 +26,7 @@ class TestParseGeneral(arraytest.ArrayTestCase): """ # Scenario 1 def test_example(self): - conf_pars = ConfigParameters('example.cfg') + conf_pars = ConfigParameters(_rpath + 'example.cfg') conf_pars.parse_general() res = conf_pars.general expected = {'basename': 'test_base', 'efermi': 0.1} diff --git a/python/vasp/test/_inpconf/test_groups.py b/python/vasp/test/_inpconf/test_groups.py index ed3f209d..3ebc3670 100644 --- a/python/vasp/test/_inpconf/test_groups.py +++ b/python/vasp/test/_inpconf/test_groups.py @@ -1,6 +1,10 @@ r""" Tests of 'parse_groups()' defined in ConfigParameters class """ +import os +import rpath +_rpath = os.path.dirname(rpath.__file__) + '/' + import arraytest import numpy as np from inpconf import ConfigParameters @@ -24,14 +28,14 @@ class TestParseGroups(arraytest.ArrayTestCase): """ # Scenario 1 def test_gr_required(self): - conf_pars = ConfigParameters('parse_groups_1.cfg') + conf_pars = ConfigParameters(_rpath + 'parse_groups_1.cfg') err_mess = "Required parameter" with self.assertRaisesRegexp(Exception, err_mess): conf_pars.parse_groups() # Scenario 2 def test_example(self): - conf_pars = ConfigParameters('example.cfg') + conf_pars = ConfigParameters(_rpath + 'example.cfg') conf_pars.parse_groups() res = conf_pars.groups expected = [{'index': 1, 'shells': [1, 2], 'emin': -7.6, 'emax': 3.0, diff --git a/python/vasp/test/_inpconf/test_input.py b/python/vasp/test/_inpconf/test_input.py index 365b96f2..eca74ea8 100644 --- a/python/vasp/test/_inpconf/test_input.py +++ b/python/vasp/test/_inpconf/test_input.py @@ -1,6 +1,10 @@ r""" Tests of 'parse_input()' defined in ConfigParameters class """ +import os +import rpath +_rpath = os.path.dirname(rpath.__file__) + '/' + import arraytest import numpy as np from inpconf import ConfigParameters @@ -32,35 +36,35 @@ class TestParseInput(arraytest.ArrayTestCase): """ # Scenario 1 def test_no_group(self): - conf_pars = ConfigParameters('input_test_1.cfg') + conf_pars = ConfigParameters(_rpath + 'input_test_1.cfg') err_mess = "At least one group" with self.assertRaisesRegexp(AssertionError, err_mess): conf_pars.parse_input() # Scenario 2 def test_gr_required(self): - conf_pars = ConfigParameters('input_test_2.cfg') + conf_pars = ConfigParameters(_rpath + 'input_test_2.cfg') err_mess = "One \[Shell\] section is" with self.assertRaisesRegexp(KeyError, err_mess): conf_pars.parse_input() # Scenario 3 def test_no_shell(self): - conf_pars = ConfigParameters('input_test_3.cfg') + conf_pars = ConfigParameters(_rpath + 'input_test_3.cfg') err_mess = "Shell 3 referenced in" with self.assertRaisesRegexp(Exception, err_mess): conf_pars.parse_input() # Scenario 4 def test_shell_outside_groups(self): - conf_pars = ConfigParameters('input_test_4.cfg') + conf_pars = ConfigParameters(_rpath + 'input_test_4.cfg') err_mess = "Some shells are not inside" with self.assertRaisesRegexp(AssertionError, err_mess): conf_pars.parse_input() # Scenario 5 def test_example(self): - conf_pars = ConfigParameters('example.cfg') + conf_pars = ConfigParameters(_rpath + 'example.cfg') conf_pars.parse_input() # with open('parse_input.output.test', 'wt') as f: # f.write("Shells:\n") @@ -84,7 +88,7 @@ Groups: # Scenario 6 def test_example_no_groups(self): - conf_pars = ConfigParameters('example_nogroup.cfg') + conf_pars = ConfigParameters(_rpath + 'example_nogroup.cfg') conf_pars.parse_input() # with open('parse_input.output.test', 'wt') as f: # f.write("Shells:\n") diff --git a/python/vasp/test/_inpconf/test_parameter_set.py b/python/vasp/test/_inpconf/test_parameter_set.py index fb5bc988..f8d7f427 100644 --- a/python/vasp/test/_inpconf/test_parameter_set.py +++ b/python/vasp/test/_inpconf/test_parameter_set.py @@ -1,6 +1,10 @@ r""" Tests of 'parse_parameter_set()' defined in ConfigParameters class """ +import os +import rpath +_rpath = os.path.dirname(rpath.__file__) + '/' + import arraytest import numpy as np from inpconf import ConfigParameters @@ -29,7 +33,7 @@ class TestParseParameterSet(arraytest.ArrayTestCase): """ """ # Dummy ConfigParameters object - self.cpars = ConfigParameters('test1.cfg') + self.cpars = ConfigParameters(_rpath + 'test1.cfg') # Scenario 1 def test_sh_required(self): diff --git a/python/vasp/test/_inpconf/test_shells.py b/python/vasp/test/_inpconf/test_shells.py index 24f73981..062fb28d 100644 --- a/python/vasp/test/_inpconf/test_shells.py +++ b/python/vasp/test/_inpconf/test_shells.py @@ -1,6 +1,10 @@ r""" Tests of 'parse_shells()' defined in ConfigParameters class """ +import os +import rpath +_rpath = os.path.dirname(rpath.__file__) + '/' + import arraytest import numpy as np from inpconf import ConfigParameters @@ -29,28 +33,28 @@ class TestParseShells(arraytest.ArrayTestCase): """ # Scenario 1 def test_no_shell(self): - conf_pars = ConfigParameters('parse_shells_1.cfg') + conf_pars = ConfigParameters(_rpath + 'parse_shells_1.cfg') err_mess = "No projected shells" with self.assertRaisesRegexp(AssertionError, err_mess): conf_pars.parse_shells() # Scenario 2 def test_bad_indices(self): - conf_pars = ConfigParameters('parse_shells_2.cfg') + conf_pars = ConfigParameters(_rpath + 'parse_shells_2.cfg') err_mess = "Failed to extract shell indices" with self.assertRaisesRegexp(ValueError, err_mess): conf_pars.parse_shells() # Scenario 3 def test_sh_required(self): - conf_pars = ConfigParameters('parse_shells_3.cfg') + conf_pars = ConfigParameters(_rpath + 'parse_shells_3.cfg') err_mess = "Required parameter" with self.assertRaisesRegexp(Exception, err_mess): conf_pars.parse_shells() # Scenario 4 def test_two_shells(self): - conf_pars = ConfigParameters('parse_shells_4.cfg') + conf_pars = ConfigParameters(_rpath + 'parse_shells_4.cfg') conf_pars.parse_shells() res = conf_pars.shells expected = [{'user_index': 1, 'lshell': 2, 'ion_list': np.array([4, 5, 6, 7])}, diff --git a/python/vasp/test/_inpconf/test_special_parsers.py b/python/vasp/test/_inpconf/test_special_parsers.py index 233c44a0..61fbbcb6 100644 --- a/python/vasp/test/_inpconf/test_special_parsers.py +++ b/python/vasp/test/_inpconf/test_special_parsers.py @@ -1,6 +1,10 @@ r""" Tests of special parseres defined in ConfigParameters class """ +import os +import rpath +_rpath = os.path.dirname(rpath.__file__) + '/' + import arraytest import numpy as np from inpconf import ConfigParameters @@ -26,7 +30,7 @@ class TestParseStringLogical(arraytest.ArrayTestCase): """ """ # Dummy ConfigParameters object - self.cpars = ConfigParameters('test1.cfg') + self.cpars = ConfigParameters(_rpath + 'test1.cfg') # Scenario 1 def test_true(self): @@ -66,7 +70,7 @@ class TestParseStringIonList(arraytest.ArrayTestCase): """ """ # Dummy ConfigParameters object - self.cpars = ConfigParameters('test1.cfg') + self.cpars = ConfigParameters(_rpath + 'test1.cfg') # Scenario 1 def test_simple_list(self): @@ -123,7 +127,7 @@ class TestParseStringTmatrix(arraytest.ArrayTestCase): """ """ # Dummy ConfigParameters object - self.cpars = ConfigParameters('test1.cfg') + self.cpars = ConfigParameters(_rpath + 'test1.cfg') # Scenario 1 def test_number_of_columns(self): diff --git a/python/vasp/test/_vaspio/EIGENVAL.example b/python/vasp/test/_vaspio/EIGENVAL.example index 04b5ed4b..202d884d 100644 --- a/python/vasp/test/_vaspio/EIGENVAL.example +++ b/python/vasp/test/_vaspio/EIGENVAL.example @@ -3,48 +3,114 @@ 1.000000000000000E-004 CAR V - 11 4 9 + 11 10 9 - 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.3703704E-01 - 1 -31.099965 - 2 -31.099965 - 3 -31.099965 - 4 -0.813470 - 5 5.974027 - 6 5.974027 - 7 5.974027 - 8 7.986328 - 9 7.986328 + 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.8000000E-02 + 1 -30.901243 1.000000 + 2 -30.901242 1.000000 + 3 -30.901242 1.000000 + 4 -0.812822 1.000000 + 5 6.116281 0.307472 + 6 6.116282 0.000314 + 7 6.116282 0.000000 + 8 8.139559 0.000000 + 9 8.139559 0.000000 - 0.3333333E+00 0.0000000E+00 0.0000000E+00 0.4444444E+00 - 1 -31.819277 - 2 -31.322999 - 3 -31.105684 - 4 2.193081 - 5 4.784864 - 6 5.839340 - 7 7.833446 - 8 8.202781 - 9 8.589551 + 0.2000000E+00 0.0000000E+00 0.0000000E+00 0.9600000E-01 + 1 -31.244548 1.000000 + 2 -31.006017 1.000000 + 3 -30.904003 1.000000 + 4 0.680258 1.000000 + 5 5.527848 0.997357 + 6 5.837887 0.407717 + 7 7.226963 0.000000 + 8 7.781889 0.000000 + 9 8.207361 0.000000 - 0.3333333E+00 0.3333333E+00 0.0000000E+00 0.2962963E+00 - 1 -31.750021 - 2 -31.750021 - 3 -31.217560 - 4 3.978315 - 5 4.708263 - 6 4.708263 - 7 8.262522 - 8 8.262522 - 9 14.771374 + 0.4000000E+00 0.0000000E+00 0.0000000E+00 0.9600000E-01 + 1 -31.771778 1.000000 + 2 -31.171899 1.000000 + 3 -30.908401 1.000000 + 4 2.486834 1.000000 + 5 4.687631 1.003771 + 6 6.633241 -0.148217 + 7 8.121131 0.000000 + 8 8.444990 0.000000 + 9 9.443636 0.000000 - -0.3333333E+00 0.3333333E+00 0.3333333E+00 0.2222222E+00 - 1 -31.719893 - 2 -31.577292 - 3 -31.577292 - 4 3.383714 - 5 3.756320 - 6 7.355029 - 7 7.355029 - 8 8.411511 - 9 11.054129 + 0.2000000E+00 0.2000000E+00 0.0000000E+00 0.1920000E+00 + 1 -31.593915 1.000000 + 2 -31.156860 1.000000 + 3 -30.976267 1.000000 + 4 2.768444 1.000000 + 5 4.858815 1.008186 + 6 5.229541 1.085485 + 7 7.709737 0.000000 + 8 8.541449 0.000000 + 9 9.490980 0.000000 + + 0.4000000E+00 0.2000000E+00 -0.5551115E-16 0.1920000E+00 + 1 -31.739891 1.000000 + 2 -31.337400 1.000000 + 3 -30.997116 1.000000 + 4 3.394894 1.000000 + 5 4.629829 1.000179 + 6 5.695587 0.810394 + 7 8.098534 0.000000 + 8 8.743598 0.000000 + 9 12.244586 0.000000 + + 0.2000000E+00 0.2000000E+00 0.2000000E+00 0.6400000E-01 + 1 -31.617656 1.000000 + 2 -31.220150 1.000000 + 3 -31.220150 1.000000 + 4 4.450254 1.000000 + 5 4.450254 1.000000 + 6 4.634359 1.062133 + 7 8.491526 0.000000 + 8 8.491526 0.000000 + 9 12.973660 0.000000 + + -0.2000000E+00 0.2000000E+00 0.2000000E+00 0.4800000E-01 + 1 -31.296977 1.000000 + 2 -31.117861 1.000000 + 3 -31.117861 1.000000 + 4 1.927890 1.000000 + 5 5.995969 0.879283 + 6 6.272225 -0.010798 + 7 6.272226 0.000000 + 8 7.198547 0.000000 + 9 8.910235 0.000000 + + -0.4000000E+00 0.4000000E+00 0.2000000E+00 0.1920000E+00 + 1 -31.682485 1.000000 + 2 -31.294549 1.000000 + 3 -31.142973 1.000000 + 4 3.381464 1.000000 + 5 4.651227 1.002211 + 6 5.929509 0.183505 + 7 7.231965 0.000000 + 8 9.259558 0.000000 + 9 10.660847 0.000000 + + -0.4000000E+00 -0.4000000E+00 0.2000000E+00 0.6400000E-01 + 1 -31.585360 1.000000 + 2 -31.585359 1.000000 + 3 -31.188820 1.000000 + 4 3.846295 1.000000 + 5 3.846295 1.000298 + 6 5.810197 0.324984 + 7 8.723375 0.000000 + 8 8.723376 0.000000 + 9 15.381038 0.000000 + + -0.4000000E+00 0.4000000E+00 0.4000000E+00 0.4800000E-01 + 1 -31.554619 1.000000 + 2 -31.488158 1.000000 + 3 -31.488158 1.000000 + 4 3.090314 1.000000 + 5 3.105025 1.000861 + 6 8.500437 -0.068292 + 7 8.500437 0.000000 + 8 9.144518 0.000000 + 9 13.491662 0.000000 diff --git a/python/vasp/test/_vaspio/EIGENVAL.example.out b/python/vasp/test/_vaspio/EIGENVAL.example.out index a59166b4..1f1160bc 100644 --- a/python/vasp/test/_vaspio/EIGENVAL.example.out +++ b/python/vasp/test/_vaspio/EIGENVAL.example.out @@ -1,52 +1,218 @@ nq = 1 ispin = 1 nelect = 11 -nktot = 4 +nktot = 10 nband = 9 kpts: -[[ 0. 0. 0. ] - [ 0.3333333 0. 0. ] - [ 0.3333333 0.3333333 0. ] - [-0.3333333 0.3333333 0.3333333]] +[[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [ 2.00000000e-01 0.00000000e+00 0.00000000e+00] + [ 4.00000000e-01 0.00000000e+00 0.00000000e+00] + [ 2.00000000e-01 2.00000000e-01 0.00000000e+00] + [ 4.00000000e-01 2.00000000e-01 -5.55111500e-17] + [ 2.00000000e-01 2.00000000e-01 2.00000000e-01] + [ -2.00000000e-01 2.00000000e-01 2.00000000e-01] + [ -4.00000000e-01 4.00000000e-01 2.00000000e-01] + [ -4.00000000e-01 -4.00000000e-01 2.00000000e-01] + [ -4.00000000e-01 4.00000000e-01 4.00000000e-01]] kwghts: -[ 0.03703704 0.4444444 0.2962963 0.2222222 ] +[ 0.008 0.096 0.096 0.192 0.192 0.064 0.048 0.192 0.064 0.048] eigs: -[[[-31.099965] - [-31.099965] - [-31.099965] - [ -0.81347 ] - [ 5.974027] - [ 5.974027] - [ 5.974027] - [ 7.986328] - [ 7.986328]] +[[[-30.901243] + [-30.901242] + [-30.901242] + [ -0.812822] + [ 6.116281] + [ 6.116282] + [ 6.116282] + [ 8.139559] + [ 8.139559]] - [[-31.819277] - [-31.322999] - [-31.105684] - [ 2.193081] - [ 4.784864] - [ 5.83934 ] - [ 7.833446] - [ 8.202781] - [ 8.589551]] + [[-31.244548] + [-31.006017] + [-30.904003] + [ 0.680258] + [ 5.527848] + [ 5.837887] + [ 7.226963] + [ 7.781889] + [ 8.207361]] - [[-31.750021] - [-31.750021] - [-31.21756 ] - [ 3.978315] - [ 4.708263] - [ 4.708263] - [ 8.262522] - [ 8.262522] - [ 14.771374]] + [[-31.771778] + [-31.171899] + [-30.908401] + [ 2.486834] + [ 4.687631] + [ 6.633241] + [ 8.121131] + [ 8.44499 ] + [ 9.443636]] - [[-31.719893] - [-31.577292] - [-31.577292] - [ 3.383714] - [ 3.75632 ] - [ 7.355029] - [ 7.355029] - [ 8.411511] - [ 11.054129]]] + [[-31.593915] + [-31.15686 ] + [-30.976267] + [ 2.768444] + [ 4.858815] + [ 5.229541] + [ 7.709737] + [ 8.541449] + [ 9.49098 ]] + + [[-31.739891] + [-31.3374 ] + [-30.997116] + [ 3.394894] + [ 4.629829] + [ 5.695587] + [ 8.098534] + [ 8.743598] + [ 12.244586]] + + [[-31.617656] + [-31.22015 ] + [-31.22015 ] + [ 4.450254] + [ 4.450254] + [ 4.634359] + [ 8.491526] + [ 8.491526] + [ 12.97366 ]] + + [[-31.296977] + [-31.117861] + [-31.117861] + [ 1.92789 ] + [ 5.995969] + [ 6.272225] + [ 6.272226] + [ 7.198547] + [ 8.910235]] + + [[-31.682485] + [-31.294549] + [-31.142973] + [ 3.381464] + [ 4.651227] + [ 5.929509] + [ 7.231965] + [ 9.259558] + [ 10.660847]] + + [[-31.58536 ] + [-31.585359] + [-31.18882 ] + [ 3.846295] + [ 3.846295] + [ 5.810197] + [ 8.723375] + [ 8.723376] + [ 15.381038]] + + [[-31.554619] + [-31.488158] + [-31.488158] + [ 3.090314] + [ 3.105025] + [ 8.500437] + [ 8.500437] + [ 9.144518] + [ 13.491662]]] +ferw: +[[[ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 3.07472000e-01] + [ 3.14000000e-04] + [ 0.00000000e+00] + [ 0.00000000e+00] + [ 0.00000000e+00]] + + [[ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 9.97357000e-01] + [ 4.07717000e-01] + [ 0.00000000e+00] + [ 0.00000000e+00] + [ 0.00000000e+00]] + + [[ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00377100e+00] + [ -1.48217000e-01] + [ 0.00000000e+00] + [ 0.00000000e+00] + [ 0.00000000e+00]] + + [[ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00818600e+00] + [ 1.08548500e+00] + [ 0.00000000e+00] + [ 0.00000000e+00] + [ 0.00000000e+00]] + + [[ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00017900e+00] + [ 8.10394000e-01] + [ 0.00000000e+00] + [ 0.00000000e+00] + [ 0.00000000e+00]] + + [[ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.06213300e+00] + [ 0.00000000e+00] + [ 0.00000000e+00] + [ 0.00000000e+00]] + + [[ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 8.79283000e-01] + [ -1.07980000e-02] + [ 0.00000000e+00] + [ 0.00000000e+00] + [ 0.00000000e+00]] + + [[ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00221100e+00] + [ 1.83505000e-01] + [ 0.00000000e+00] + [ 0.00000000e+00] + [ 0.00000000e+00]] + + [[ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00029800e+00] + [ 3.24984000e-01] + [ 0.00000000e+00] + [ 0.00000000e+00] + [ 0.00000000e+00]] + + [[ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00000000e+00] + [ 1.00086100e+00] + [ -6.82920000e-02] + [ 0.00000000e+00] + [ 0.00000000e+00] + [ 0.00000000e+00]]] diff --git a/python/vasp/test/_vaspio/EIGENVAL.wrong b/python/vasp/test/_vaspio/EIGENVAL.wrong new file mode 100644 index 00000000..04b5ed4b --- /dev/null +++ b/python/vasp/test/_vaspio/EIGENVAL.wrong @@ -0,0 +1,50 @@ + 1 1 1 1 + 0.1333597E+02 0.2587511E-09 0.2587511E-09 0.2587511E-09 0.5000000E-15 + 1.000000000000000E-004 + CAR + V + 11 4 9 + + 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.3703704E-01 + 1 -31.099965 + 2 -31.099965 + 3 -31.099965 + 4 -0.813470 + 5 5.974027 + 6 5.974027 + 7 5.974027 + 8 7.986328 + 9 7.986328 + + 0.3333333E+00 0.0000000E+00 0.0000000E+00 0.4444444E+00 + 1 -31.819277 + 2 -31.322999 + 3 -31.105684 + 4 2.193081 + 5 4.784864 + 6 5.839340 + 7 7.833446 + 8 8.202781 + 9 8.589551 + + 0.3333333E+00 0.3333333E+00 0.0000000E+00 0.2962963E+00 + 1 -31.750021 + 2 -31.750021 + 3 -31.217560 + 4 3.978315 + 5 4.708263 + 6 4.708263 + 7 8.262522 + 8 8.262522 + 9 14.771374 + + -0.3333333E+00 0.3333333E+00 0.3333333E+00 0.2222222E+00 + 1 -31.719893 + 2 -31.577292 + 3 -31.577292 + 4 3.383714 + 5 3.756320 + 6 7.355029 + 7 7.355029 + 8 8.411511 + 9 11.054129 diff --git a/python/vasp/test/_vaspio/rpath.py b/python/vasp/test/_vaspio/rpath.py new file mode 100644 index 00000000..b5d349d4 --- /dev/null +++ b/python/vasp/test/_vaspio/rpath.py @@ -0,0 +1,5 @@ +r""" +The sole role of this module is to determine the current path by +examining rpath.__file__. +""" +pass diff --git a/python/vasp/test/_vaspio/runtest.sh b/python/vasp/test/_vaspio/runtest.sh index 9b7bd8ca..4537817b 100755 --- a/python/vasp/test/_vaspio/runtest.sh +++ b/python/vasp/test/_vaspio/runtest.sh @@ -1 +1 @@ -PYTHONPATH=../../python:../../c:$PYTHONPATH python $1 +PYTHONPATH=../..:../../../../c:$PYTHONPATH python $1 diff --git a/python/vasp/test/_vaspio/test_doscar.py b/python/vasp/test/_vaspio/test_doscar.py index 721c6be9..b4ee9d66 100644 --- a/python/vasp/test/_vaspio/test_doscar.py +++ b/python/vasp/test/_vaspio/test_doscar.py @@ -1,6 +1,10 @@ r""" Tests for class 'Doscar' from module 'vaspio' """ +import os +import rpath +_rpath = os.path.dirname(rpath.__file__) + '/' + import mytest import numpy as np from vaspio import Doscar @@ -24,7 +28,7 @@ class TestDoscar(mytest.MyTestCase): def test_example(self): filename = 'DOSCAR.example' doscar = Doscar() - doscar.from_file(vasp_dir='./', dos_filename=filename) + doscar.from_file(vasp_dir=_rpath, dos_filename=filename) test_efermi = doscar.efermi expected = 5.84395237 diff --git a/python/vasp/test/_vaspio/test_eigenval.py b/python/vasp/test/_vaspio/test_eigenval.py index 612eccdc..d94047a2 100644 --- a/python/vasp/test/_vaspio/test_eigenval.py +++ b/python/vasp/test/_vaspio/test_eigenval.py @@ -1,6 +1,10 @@ r""" Tests for class 'Eigneval' from module 'vaspio' """ +import os +import rpath +_rpath = os.path.dirname(rpath.__file__) + '/' + import mytest import numpy as np from vaspio import Eigenval @@ -18,15 +22,16 @@ class TestEigenval(mytest.MyTestCase): Scenarios: - correct EIGENVAL file + - wrong EIGENVAL file from old versions of VASP """ # Scenario 1 def test_example(self): filename = 'EIGENVAL.example' eigenval = Eigenval() - eigenval.from_file(vasp_dir='./', eig_filename=filename) + eigenval.from_file(vasp_dir=_rpath, eig_filename=filename) - testout = 'EIGENVAL.example.out.test' + testout = _rpath + 'EIGENVAL.example.out.test' with open(testout, 'w') as f: writeline = lambda s: f.write(s + '\n') writeprop = lambda pname: writeline("%s = %s"%(pname, eigenval.__dict__[pname])) @@ -39,7 +44,17 @@ class TestEigenval(mytest.MyTestCase): writeline("kpts:\n%s"%(eigenval.kpts)) writeline("kwghts:\n%s"%(eigenval.kwghts)) writeline("eigs:\n%s"%(eigenval.eigs)) + writeline("ferw:\n%s"%(eigenval.ferw)) - expected = 'EIGENVAL.example.out' + expected = _rpath + 'EIGENVAL.example.out' self.assertFileEqual(testout, expected) +# Scenario 2 + def test_bad_example(self): + filename = 'EIGENVAL.wrong' + eigenval = Eigenval() + + err_mess = "EIGENVAL file is incorrect" + with self.assertRaisesRegexp(AssertionError, err_mess): + eigenval.from_file(vasp_dir=_rpath, eig_filename=filename) + diff --git a/python/vasp/test/_vaspio/test_kpoints.py b/python/vasp/test/_vaspio/test_kpoints.py index 6b4849de..e31e69b9 100644 --- a/python/vasp/test/_vaspio/test_kpoints.py +++ b/python/vasp/test/_vaspio/test_kpoints.py @@ -1,6 +1,10 @@ r""" Tests for class 'Ibzkpt' from module 'vaspio' """ +import os +import rpath +_rpath = os.path.dirname(rpath.__file__) + '/' + import mytest import numpy as np from vaspio import Kpoints @@ -25,9 +29,9 @@ class TestIbzkpt(mytest.MyTestCase): def test_example(self): ibz_file = 'IBZKPT.example' kpoints = Kpoints() - kpoints.from_file(vasp_dir='./', ibz_filename=ibz_file) + kpoints.from_file(vasp_dir=_rpath, ibz_filename=ibz_file) - testout = 'IBZKPT.example.out.test' + testout = _rpath + 'IBZKPT.example.out.test' with open(testout, 'w') as f: writeline = lambda s: f.write(s + '\n') writeline("nktot = %s"%(kpoints.nktot)) @@ -36,22 +40,22 @@ class TestIbzkpt(mytest.MyTestCase): writeline("kpts:\n%s"%(kpoints.kpts)) writeline("tets:\n%s"%(kpoints.itet)) - expected = 'IBZKPT.example.out' + expected = _rpath + 'IBZKPT.example.out' self.assertFileEqual(testout, expected) # Scenario 2 def test_notet(self): ibz_file = 'IBZKPT.notet' kpoints = Kpoints() - kpoints.from_file(vasp_dir='./', ibz_filename=ibz_file) + kpoints.from_file(vasp_dir=_rpath, ibz_filename=ibz_file) - testout = 'IBZKPT.notet.out.test' + testout = _rpath + 'IBZKPT.notet.out.test' with open(testout, 'w') as f: writeline = lambda s: f.write(s + '\n') writeline("nktot = %s"%(kpoints.nktot)) writeline("kpts:\n%s"%(kpoints.kpts)) - expected = 'IBZKPT.notet.out' + expected = _rpath + 'IBZKPT.notet.out' self.assertFileEqual(testout, expected) diff --git a/python/vasp/test/_vaspio/test_poscar.py b/python/vasp/test/_vaspio/test_poscar.py index 10f7b395..9e9ad7f9 100644 --- a/python/vasp/test/_vaspio/test_poscar.py +++ b/python/vasp/test/_vaspio/test_poscar.py @@ -1,6 +1,10 @@ r""" Tests for class 'Poscar' from module 'vaspio' """ +import os +import rpath +_rpath = os.path.dirname(rpath.__file__) + '/' + import mytest import numpy as np from vaspio import Poscar @@ -25,9 +29,9 @@ class TestPoscar(mytest.MyTestCase): def test_example(self): filename = 'POSCAR.example' poscar = Poscar() - poscar.from_file(vasp_dir='./', poscar_filename=filename) + poscar.from_file(vasp_dir=_rpath, poscar_filename=filename) - testout = 'POSCAR.example.out.test' + testout = _rpath + 'POSCAR.example.out.test' with open(testout, 'w') as f: writeline = lambda s: f.write(s + '\n') writeprop = lambda pname: writeline("%s = %s"%(pname, poscar.__dict__[pname])) @@ -39,14 +43,14 @@ class TestPoscar(mytest.MyTestCase): writeline("a_brav:\n%s"%(poscar.a_brav)) writeline("q_types:\n%s"%(poscar.q_types)) - expected = 'POSCAR.example.out' + expected = _rpath + 'POSCAR.example.out' self.assertFileEqual(testout, expected) # Scenario 2 def test_type_of_ion(self): filename = 'POSCAR.complex' poscar = Poscar() - poscar.from_file(vasp_dir='./', poscar_filename=filename) + poscar.from_file(vasp_dir=_rpath, poscar_filename=filename) test_types = 4 * [0] + 4 * [1] + 12 * [2] self.assertListEqual(test_types, poscar.type_of_ion) diff --git a/python/vasp/test/run_all.sh b/python/vasp/test/run_all.sh index 5d4368ea..97e004bd 100755 --- a/python/vasp/test/run_all.sh +++ b/python/vasp/test/run_all.sh @@ -1 +1 @@ -PYTHONPATH=$HOME/Codes/vasp/vasp5.3/plo_vasp/plovasp/python:$HOME/Codes/vasp/vasp5.3/plo_vasp/plovasp/c:$PYTHONPATH python test_all.py +PYTHONPATH=../:../../../c:$PYTHONPATH python test_all.py diff --git a/python/vasp/vaspio.py b/python/vasp/vaspio.py index efdfac75..4498cfef 100644 --- a/python/vasp/vaspio.py +++ b/python/vasp/vaspio.py @@ -445,6 +445,7 @@ class Eigenval: for ib in xrange(self.nband): sline = f.next().split() tmp = map(float, sline) + assert len(tmp) == 2 * self.ispin + 1, "EIGENVAL file is incorrect (probably from old versions of VASP)" self.eigs[ik, ib, :] = tmp[1:self.ispin+1] self.ferw[ik, ib, :] = tmp[self.ispin+1:]