#!/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)

# first batch - closed-shell X2C-SCF to get MO coefficients
f = Filter()
f.add(from_re     = 'TOTAL ENERGY',
      num_lines   = 4,
      rel_tolerance   = 1.0e-7)
#  compare SCF eigenvalues
f.add(from_string = 'Eigenvalues',
      to_re       = 'HOMO - LUMO',
      rel_tolerance   = 5.0e-7)

test.run(['V_5+.x2c.scf.inp'], ['V.v2z.Dinfh.mol'], f, args='--outcmo')

# second batch - open-shell SCF with overlap selection
# check the SCF energy
f = Filter()
f.add(from_re     = 'TOTAL ENERGY',
      num_lines   = 4,
      rel_tolerance   = 1.0e-8)
#  compare SCF eigenvalues
f.add(from_string = 'Eigenvalues',
      to_re       = 'HOMO - LUMO',
      rel_tolerance   = 5.0e-7)
# check the total COSCI averaged energy - must be identical with the previos SCF energy
f.add(from_re     = 'Total average:',
      num_lines   = 1,
      rel_tolerance   = 1.0e-8)

test.run(['V.x2c.2fs.scf_os-ds_ovlsel_cosci.inp'], ['V.v2z.Dinfh.mol'], f, args='--incmo')

sys.exit(test.return_code)
