mirror of https://github.com/QMCPACK/qmcpack.git
222 lines
4.8 KiB
Python
222 lines
4.8 KiB
Python
|
|
import testing
|
|
from testing import divert_nexus,restore_nexus
|
|
from testing import failed,FailedTest
|
|
from testing import value_eq,object_eq,text_eq
|
|
|
|
|
|
def clear_all_sims():
|
|
from gamess import Gamess
|
|
|
|
Gamess.ericfmt = None
|
|
|
|
testing.clear_all_sims()
|
|
#end def clear_all_sims
|
|
|
|
|
|
def get_gamess_sim(type='rhf'):
|
|
from machines import job
|
|
from gamess import Gamess,generate_gamess,GamessInput
|
|
from test_gamess_input import get_files
|
|
|
|
sim = None
|
|
|
|
Gamess.ericfmt = ''
|
|
|
|
files = get_files()
|
|
|
|
if type=='rhf':
|
|
gi_input = GamessInput(files['rhf.inp'])
|
|
|
|
sim = generate_gamess(
|
|
identifier = 'rhf',
|
|
path = 'rhf',
|
|
job = job(machine='ws1',cores=1),
|
|
input = gi_input,
|
|
)
|
|
else:
|
|
failed()
|
|
#end if
|
|
|
|
assert(sim is not None)
|
|
assert(isinstance(sim,Gamess))
|
|
|
|
return sim
|
|
#end def get_gamess_sim
|
|
|
|
|
|
|
|
def test_import():
|
|
from gamess import Gamess,generate_gamess
|
|
#end def test_import
|
|
|
|
|
|
|
|
def test_minimal_init():
|
|
from machines import job
|
|
from gamess import Gamess,generate_gamess
|
|
|
|
Gamess.ericfmt = ''
|
|
|
|
sim = generate_gamess(
|
|
job = job(machine='ws1',cores=1),
|
|
)
|
|
|
|
assert(isinstance(sim,Gamess))
|
|
|
|
clear_all_sims()
|
|
#end def test_minimal_init
|
|
|
|
|
|
|
|
def test_check_result():
|
|
tpath = testing.setup_unit_test_output_directory('gamess_simulation','test_check_result')
|
|
|
|
sim = get_gamess_sim('rhf')
|
|
|
|
assert(not sim.check_result('unknown',None))
|
|
assert(sim.check_result('orbitals',None))
|
|
|
|
clear_all_sims()
|
|
#end def test_check_result
|
|
|
|
|
|
|
|
def test_get_result():
|
|
import os
|
|
from generic import NexusError,obj
|
|
from nexus_base import nexus_core
|
|
|
|
tpath = testing.setup_unit_test_output_directory('gamess_simulation','test_get_result',divert=True)
|
|
|
|
nexus_core.runs = ''
|
|
|
|
sim = get_gamess_sim('rhf')
|
|
|
|
assert(sim.locdir.rstrip('/')==os.path.join(tpath,'rhf').rstrip('/'))
|
|
|
|
sim.create_directories()
|
|
sim.write_inputs()
|
|
if not os.path.exists(sim.imresdir):
|
|
os.makedirs(sim.imresdir)
|
|
#end if
|
|
analyzer = sim.analyzer_type(sim)
|
|
analyzer.save(os.path.join(sim.imresdir,sim.analyzer_image))
|
|
|
|
try:
|
|
sim.get_result('unknown',None)
|
|
raise FailedTest
|
|
except NexusError:
|
|
None
|
|
except FailedTest:
|
|
failed()
|
|
except Exception as e:
|
|
failed(str(e))
|
|
#end try
|
|
|
|
result = sim.get_result('orbitals',None)
|
|
|
|
result_ref = obj(
|
|
location = 'rhf/rhf.out',
|
|
mos = 0,
|
|
norbitals = 0,
|
|
outfile = 'rhf/rhf.out',
|
|
scftyp = 'rohf',
|
|
vec = None,
|
|
)
|
|
|
|
result.location = result.location.replace(tpath,'').lstrip('/')
|
|
result.outfile = result.outfile.replace(tpath,'').lstrip('/')
|
|
|
|
assert(object_eq(result,result_ref))
|
|
|
|
clear_all_sims()
|
|
restore_nexus()
|
|
#end def test_get_result
|
|
|
|
|
|
|
|
def test_incorporate_result():
|
|
import os
|
|
from generic import NexusError,obj
|
|
|
|
tpath = testing.setup_unit_test_output_directory('gamess_simulation','test_incorporate_result')
|
|
|
|
sim = get_gamess_sim('rhf')
|
|
|
|
try:
|
|
sim.incorporate_result('unknown',None,None)
|
|
raise FailedTest
|
|
except NexusError:
|
|
None
|
|
except FailedTest:
|
|
failed()
|
|
except Exception as e:
|
|
failed(str(e))
|
|
#end try
|
|
|
|
result = obj(
|
|
vec = 'vec text',
|
|
norbitals = 10,
|
|
)
|
|
|
|
input = sim.input
|
|
|
|
assert('vec' not in input)
|
|
assert('norb' not in input.guess)
|
|
assert('prtmo' not in input.guess)
|
|
|
|
sim.incorporate_result('orbitals',result,None)
|
|
|
|
assert(input.vec.text=='vec text')
|
|
assert(input.guess.guess=='moread')
|
|
assert(input.guess.norb==10)
|
|
assert(input.guess.prtmo==True)
|
|
|
|
clear_all_sims()
|
|
#end def test_incorporate_result
|
|
|
|
|
|
|
|
def test_check_sim_status():
|
|
import os
|
|
from generic import NexusError,obj
|
|
from nexus_base import nexus_core
|
|
|
|
tpath = testing.setup_unit_test_output_directory('gamess_simulation','test_check_sim_status',divert=True)
|
|
|
|
nexus_core.runs = ''
|
|
|
|
sim = get_gamess_sim('rhf')
|
|
|
|
assert(sim.locdir.rstrip('/')==os.path.join(tpath,'rhf').rstrip('/'))
|
|
|
|
assert(not sim.finished)
|
|
assert(not sim.failed)
|
|
|
|
try:
|
|
sim.check_sim_status()
|
|
raise FailedTest
|
|
except IOError:
|
|
None
|
|
except Exception as e:
|
|
failed(str(e))
|
|
#end try
|
|
|
|
sim.create_directories()
|
|
outfile = os.path.join(sim.locdir,sim.outfile)
|
|
outfile_text = 'EXECUTION OF GAMESS TERMINATED NORMALLY'
|
|
out = open(outfile,'w')
|
|
out.write(outfile_text)
|
|
out.close()
|
|
assert(outfile_text in open(outfile,'r').read())
|
|
|
|
sim.check_sim_status()
|
|
|
|
assert(sim.finished)
|
|
assert(not sim.failed)
|
|
|
|
clear_all_sims()
|
|
restore_nexus()
|
|
#end def test_check_sim_status
|