#!/usr/bin/env python

import os
import sys

sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
from runtest_dirac import Filter, TestRun

test = TestRun(__file__, sys.argv)

f = Filter()
f.add(from_string = '* Dipole moment:',
      num_lines   = 6,
      rel_tolerance   = 1.0e-7)
f.add(from_string = ' Energy eigenvalues in atomic units',
      to_re       = 'Relative real eigenvalues in other units;',
      rel_tolerance   = 1.0e-5)

test.run(['hf_lda+tfk_vemb-read_short.inp'],               ['water.sto6g.c2v.mol'], f, args='--put="FRZDNS EMBPOT" ')
test.run(['hf_lda+tfk_vemb-read_nofdekern_short.inp'],     ['water.sto6g.c2v.mol'], f, args='--put="FRZDNS EMBPOT" ')
test.run(['lda+tfk_vemb-read_short.inp'],                  ['water.sto6g.c2v.mol'], f, args='--put="FRZDNS EMBPOT" ')
test.run(['lda+tfk_vemb-read_noedcc_short.inp'],           ['water.sto6g.c2v.mol'], f, args='--put="FRZDNS EMBPOT" ')
test.run(['lda+tfk_vemb-read_nofdekern_short.inp'],        ['water.sto6g.c2v.mol'], f, args='--put="FRZDNS EMBPOT" ')

f.add(re          = 'density integrates to',
      rel_tolerance   = 1.0e-7)

test.run(['pbe+pw91k_vemb-update_short.inp'],              ['water.sto6g.c2v.mol'], f, args='--put="FRZDNS"        ')
test.run(['hf_pbe+pw91k_vemb-update_short.inp'],           ['water.sto6g.c2v.mol'], f, args='--put="FRZDNS"        ')
test.run(['pbe+pw91k_vemb-update_nofdekern_short.inp'],    ['water.sto6g.c2v.mol'], f, args='--put="FRZDNS"        ')
test.run(['hf_pbe+pw91k_vemb-update_nofdekern_short.inp'], ['water.sto6g.c2v.mol'], f, args='--put="FRZDNS"        ')

f = Filter()
f.add(from_string = '* Dipole moment:',
      num_lines   = 6,
      rel_tolerance   = 1.0e-7)
f.add(re          = 'density integrates to',
      rel_tolerance   = 1.0e-7)

test.run(['mp2_pbe+pw91k_vemb-update_short.inp'],           ['water.sto6g.c2v.mol'], f, args='--put="FRZDNS" --mw=80 --aw=120 ')

sys.exit(test.return_code)
