dft_tools/test/plovasp/vaspio/test_eigenval.py

61 lines
1.8 KiB
Python

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 triqs_dft_tools.converters.plovasp.vaspio import Eigenval
################################################################################
#
# TestEigenval
#
################################################################################
class TestEigenval(mytest.MyTestCase):
"""
Function:
def Eigenval.from_file(vasp_dir, eig_filename)
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=_rpath, eig_filename=filename)
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]))
writeprop('nq')
writeprop('ispin')
writeprop('nelect')
writeprop('nktot')
writeprop('nband')
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 = _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)