3
0
mirror of https://github.com/triqs/dft_tools synced 2024-11-15 10:33:48 +01:00
dft_tools/python/vasp/test/_vaspio/test_poscar.py
Oleg E. Peil 819fc987f0 Reshuffled files after repository merge
The files from the original vasp-interface repository are reshuffled in
accord with the directory structure of dft_tools. Some of the directories,
such as 'test' (unit tests for the interface), 'examples' (simple examples for
the development purposes) are temporarily placed into 'python/vasp' directory
to avoid confusion with integral tests and examples of dft_tools.
2015-10-13 11:27:55 +02:00

54 lines
1.5 KiB
Python

r"""
Tests for class 'Poscar' from module 'vaspio'
"""
import mytest
import numpy as np
from vaspio import Poscar
################################################################################
#
# TestPoscar
#
################################################################################
class TestPoscar(mytest.MyTestCase):
"""
Function:
def Poscar.from_file(vasp_dir, poscar_filename)
Scenarios:
- correct POSCAR file
- check 'type_of_ion' array for a complex POSCAR file
"""
# Scenario 1
def test_example(self):
filename = 'POSCAR.example'
poscar = Poscar()
poscar.from_file(vasp_dir='./', poscar_filename=filename)
testout = '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]))
writeprop('nq')
writeprop('ntypes')
writeprop('nions')
writeprop('el_names')
writeline("a_brav:\n%s"%(poscar.a_brav))
writeline("q_types:\n%s"%(poscar.q_types))
expected = '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)
test_types = 4 * [0] + 4 * [1] + 12 * [2]
self.assertListEqual(test_types, poscar.type_of_ion)