# List of tests in the Py-ChemShell test suite
# ============================================
# 
# Notes:
#
#  - Tests not in this list are ignored, so can be safely kept as
#    works-in-progress, etc.
#
#  - Similarly, if for any reason a test should be skipped on a particular
#    platform, it can be commented out of this list.
#
#  - The order of tests in the list is respected by the testing framework.
#    As a general rule, simpler tests should come first.
# 
#  - Subsets of tests can be run based on folder names
#    e.g. "qmmm" will run all tests in the qmmm folder,
#         "mndo-gulp" will run all tests involving MNDO & GULP,
#         "qmmm/mndo-gulp" will run only MNDO+GULP tests in the qmmm folder.
#
# TWK 12/7/2023
#

# Fragment Object
fragment:
connect_ethane.py
connect_urea.py
connect_quartz.py
connect_mgo.py
connect_mgo_shells.py
connect_options.py
connect_none.py
connect_sod1.py
connect_p450.py
connect_mgo_cluster.py
save_dcd_alanine.py
save_json_ethane.py
save_json_mgo.py
save_json_mgo_shells.py
save_xyz_ethane.py
save_xyz_labels_butanol.py
save_punch_ethane.py
save_punch_mgo.py
save_punch_mgo_shells.py
save_result.py
bind_p450_no.py
read_ext_xyz_mgo.py
select_neighbours.py
alanine_md_snapshots.py

# Cluster cutting
cluster:
bulk_coordination_scaled_cart.py
bulk_coordination_scaled_frac.py
bulk_molecular.py
bulk_valence_matrix.py
bulk_partition_implicit.py
bulk_partition_explicit.py
surface_coordination_scaled.py
surface_partition_implicit.py
surface_partition_explicit.py
construct_cluster_workflow.py
partitioning_methods.py

# QM PACKAGES SUPPORTING DIRECT LINKING

# NWChem interface
nwchem:
h2o_energy_hf.py
h2o_energy_blyp.py
h2o_energy_blyp-m1-uhf.py
h2o_energy_blyp-d3orig.py
h2o_energy_blyp-d3bj.py
h2o_energy_blyp_movecs.py
h2o_energy_blyp_pre-hf.py
no2_energy_uhf.py
h2o_energy_tdblyp.py
h2o_energy_tdublyp.py
no2_energy_rohf.py
no2p_energy_hf.py
no2_energy_ublyp.py
no2_energy_roblyp.py
no2_energy_tdublyp.py
no2p_energy_blyp.py
h2o_energy_wb97xd3.py
h2o_energy_td-cam-b3lyp.py
h2o_energy_td-lc-blyp.py
h2o_energy_td-lc-pbe.py
h2o_energy_td-lc_cam-pbe0.py
h2o_opt_hf.py
h2o_opt_blyp.py
h2o_opt_blyp-m1-uhf.py
h2o_opt_blyp-d3orig.py
h2o_opt_blyp-d3bj.py
h2o_opt_blyp_zora.py
h2o_opt_blyp_pre-hf.py
no2_opt_uhf.py
no2_opt_rohf.py
no2p_opt_hf.py
no2_opt_ublyp.py
no2_opt_roblyp.py
no2p_opt_blyp.py
# placed in the end to prevent skipping the rest tests when BSE is unavailable
h2o_energy_blyp_bse.py

# GAMESS-UK interface
gamess_uk:
h2o_energy_hf.py
h2o_energy_blyp.py
no2_energy_uhf.py
no2_energy_rohf.py
no2p_energy_hf.py
no2_energy_ublyp.py
no2p_energy_blyp.py
h2o_opt_hf.py
h2o_opt_blyp.py
no2_opt_uhf.py
no2_opt_rohf.py
no2p_opt_hf.py
no2_opt_ublyp.py
no2p_opt_blyp.py

# LSDalton interface
lsdalton:
energy_hf.py
energy_blyp.py
opt_hf.py
opt_blyp.py
water_finite_diff.py

# FHI-aims interface
fhi-aims:
h2o_energy_pbe.py
h2o_opt_pbe.py

# CP2K interface
cp2k:
energy_carbon.py
Si_sp_energy.py
water_sp_energy.py
butanol_sp.py
Si2_opt.py

# CASTEP interface
castep:
Si_sp_energy.py
water_sp_energy.py
Si2-lbfgs.py
water_opt_lda.py

# QM PACKAGES NOT SUPPORTING DIRECT LINKING

# ORCA interface
orca:
h2o_energy_hf.py
h2o_energy_blyp.py
h2o_energy_blyp_standard_input.py
h2o_energy_blyp-d3orig.py
h2o_energy_blyp-d3bj.py
h2o_energy_cam-b3lyp.py
h2o_energy_ri-b3lyp.py
h2o_energy_ri-b3lyp_freetext.py
h2o_energy_ri-mp2.py
h2o_energy_ri-mp2_freetext.py
h2o_energy_s-cam-b3lyp.py
no2_energy_uhf.py
no2_energy_rohf.py
no2p_energy_hf.py
no2_energy_ublyp.py
no2_energy_roblyp.py
no2p_energy_blyp.py
h2o_opt_hf.py
h2o_opt_blyp.py
h2o_opt_blyp-d3orig.py
h2o_opt_blyp-d3bj.py
h2o_opt_ri-mp2.py
no2_opt_uhf.py
no2p_opt_hf.py
no2_opt_ublyp.py
no2p_opt_blyp.py

# TURBOMOLE interface
turbomole:
h2o_energy_hf.py
h2o_energy_blyp.py
no2_energy_uhf.py
no2p_energy_hf.py
no2_energy_ublyp.py
no2p_energy_blyp.py
h2o_opt_hf.py
h2o_opt_blyp.py
no2_opt_uhf.py
no2p_opt_hf.py
no2_opt_ublyp.py
no2p_opt_blyp.py
h2o_energy_blyp_ri.py
h2o_opt_blyp_ri.py
no2_energy_ublyp_ri.py
no2_opt_ublyp_ri.py
no2p_energy_blyp_ri.py
no2p_opt_blyp_ri.py
h2o_energy_hf_usr_control.py
h2o_opt_hf_usr_control.py
h2o_energy_blyp_mixed_basis.py

# Molpro interface
molpro:
h2o_energy_hf.py
h2o_energy_blyp.py
no2_energy_uhf.py
no2_energy_rohf.py
no2p_energy_hf.py
no2_energy_ublyp.py
no2_energy_roblyp.py
no2p_energy_blyp.py
h2o_opt_hf.py
h2o_opt_blyp.py
no2_opt_uhf.py
no2_opt_rohf.py
no2p_opt_hf.py
no2_opt_ublyp.py
no2_opt_roblyp.py
no2p_opt_blyp.py

# Gaussian interface
gaussian:
h2o_energy_hf.py
h2o_energy_blyp.py
h2o_energy_tdhf.py
h2o_energy_tdblyp.py
no2_energy_uhf.py
no2_energy_rohf.py
no2p_energy_hf.py
no2_energy_ublyp.py
no2_energy_roblyp.py
no2p_energy_blyp.py
h2o_opt_hf.py
h2o_opt_blyp.py
no2_opt_uhf.py
no2_opt_rohf.py
no2p_opt_hf.py
no2_opt_ublyp.py
no2_opt_roblyp.py
no2p_opt_blyp.py

# PySCF interface
pyscf:
h2o_energy_hf.py
h2o_energy_blyp.py
no2_energy_uhf.py
no2_energy_rohf.py
no2p_energy_hf.py
no2_energy_ublyp.py
no2_energy_roblyp.py
no2p_energy_blyp.py
h2o_opt_hf.py
h2o_opt_blyp.py
no2_opt_uhf.py
no2p_opt_hf.py
no2_opt_ublyp.py
no2p_opt_blyp.py
test_electrostatic_embedding_gradients.py

# Psi4 interface
psi4:
h2o_energy_hf.py
h2o_energy_blyp.py
no2_energy_uhf.py
no2_energy_rohf.py
no2p_energy_hf.py
no2_energy_ublyp.py
no2p_energy_blyp.py
h2o_opt_hf.py
h2o_opt_blyp.py
no2_opt_uhf.py
no2p_opt_hf.py
no2_opt_ublyp.py
no2p_opt_blyp.py

# SEMI-EMPIRICAL QM PACKAGES

# MNDO interface
mndo:
h2o_energy_mndo.py
h2o_energy_am1.py
no2_energy_uam1.py
no2_energy_roam1.py
no2p_energy_am1.py
h2o_opt_mndo.py
h2o_opt_am1.py
no2_opt_uam1.py
no2_opt_roam1.py
no2p_opt_am1.py

# DFTB+ interface
dftbplus:
energy_scc.py
energy_scc_3ob.py
CNT_sp.py
opt_scc.py
h2o_dimer_d3.py
h2o_dimer_mbd.py
h2o_dimer_d3_charge_neg_1.py

# MM PACKAGES

# DL_POLY interface
dl_poly:
h2o_dimer.py
h2o_dimer_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py
butanol.py
butanol_opt.py
water_atom_cutoff.py

# GULP interface
gulp:
mgo_rigid.py
mgo_rigid_opt.py
mgo_shells.py
mgo_shells_opt.py
mgo_shells_bush.py
h2o_dimer.py
h2o_dimer_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py
butanol.py
butanol_opt.py

# NAMD interface
namd:
ubq_sphere.py
p450_psfgen.py

# QM/MM INTERFACE

qmmm/gaussian-gulp:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_mmchg.py
h2o_dimer_elec_mmchgfrac.py
h2o_dimer_elec_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py
butanol_mech.py
butanol_mech_opt.py
butanol_shift.py
butanol_shift_opt.py
# YL 03/08/2024: I don't know the basis set's name
#mgo25_shells_sepecp.py
#mgo25_shells_sepecp_opt.py

qmmm/nwchem-gulp:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_mmchg.py
h2o_dimer_elec_mmchgfrac.py
h2o_dimer_elec_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py
butanol_mech.py
butanol_mech_opt.py
butanol_shift.py
butanol_shift_opt.py
mgo25_shells_sepecp.py
mgo25_shells_sepecp_opt.py
mgo25_shells_sepecp_tddft.py
mgo25_shells_sepecp_fragmovecs.py
mgo25_shells_sepecp_fragmovecs_dft.py
# TD 23/06/2025: NWChem version issue
#                WIP on 578-fragmoves-no-bqs
#mgo25_shells_sepecp_fragmovecs_o-1.py
#mgo25_shells_sepecp_fragmovecs_o-1_dft.py
mgo25_shells_sepecp_movecs.py
mgo25_shells_sepecp_movecs_dft.py

qmmm/gamess_uk-gulp:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_mmchg.py
h2o_dimer_elec_mmchgfrac.py
h2o_dimer_elec_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py
butanol_mech.py
butanol_mech_opt.py
butanol_shift.py
butanol_shift_opt.py
mgo25_shells_implicit.py
mgo25_shells_implicit_opt.py
mgo25_shells_explicit.py
mgo25_shells_explicit_opt.py
mgo25_shells_sepecp.py
mgo25_shells_sepecp_opt.py

qmmm/lsdalton-gulp:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_mmchg.py
h2o_dimer_elec_mmchgfrac.py
h2o_dimer_elec_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py
butanol_mech.py
butanol_mech_opt.py
butanol_shift.py
butanol_shift_opt.py

qmmm/fhiaims-gulp:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py

qmmm/orca-gulp:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_mmchg.py
h2o_dimer_elec_mmchgfrac.py
h2o_dimer_elec_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py
butanol_mech.py
butanol_mech_opt.py
butanol_shift.py
butanol_shift_standard_input.py
butanol_shift_opt.py

qmmm/turbomole-gulp:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_mmchg.py
h2o_dimer_elec_mmchgfrac.py
h2o_dimer_elec_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py
butanol_mech.py
butanol_mech_opt.py
butanol_shift.py
butanol_shift_opt.py

qmmm/molpro-gulp:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_mmchg.py
h2o_dimer_elec_mmchgfrac.py
h2o_dimer_elec_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py
butanol_mech.py
butanol_mech_opt.py
butanol_shift.py
butanol_shift_opt.py

qmmm/mndo-gulp:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_mmchg.py
h2o_dimer_elec_mmchgfrac.py
h2o_dimer_elec_opt.py
butanol_mech.py
butanol_mech_opt.py
butanol_shift.py
butanol_shift_opt.py

qmmm/mndo-dl_poly: 
chorismate_mutase.py

qmmm/nwchem-dl_poly:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_opt.py
butanol_mech.py
butanol_mech_text.py
butanol_mech_opt.py
butanol_shift.py
butanol_shift_opt.py

qmmm/dftbplus-gulp:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_mmchg.py
h2o_dimer_elec_mmchgfrac.py
h2o_dimer_elec_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py
butanol_mech.py
butanol_mech_opt.py
butanol_shift.py
butanol_shift_opt.py

qmmm/pyscf-gulp:
butanol_mech.py
butanol_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_blyp.py
h2o_dimer_elec_mmchg.py
h2o_dimer_elec_mmchgfrac.py
h2o_dimer_elec_opt.py
h2o_dimer_elec_opt_blyp.py
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
butanol_shift.py
butanol_shift_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py

qmmm/psi4-gulp:
h2o_dimer_mech.py
h2o_dimer_mech_opt.py
h2o_dimer_elec.py
h2o_dimer_elec_mmchg.py
h2o_dimer_elec_mmchgfrac.py
h2o_dimer_elec_opt.py
h2o_dimer_shells.py
h2o_dimer_shells_opt.py
butanol_mech.py
butanol_mech_opt.py
butanol_shift.py
butanol_shift_opt.py

# SUBTRACTIVE EMBEDDING SCHEME

subtractive/orca:
butanol_mech.py
butanol_mech_opt.py
h2o_dimer_energy.py
h2o_dimer_opt.py
butanol_3layer_finite_difference.py

subtractive/gaussian:
butanol_mech.py

subtractive/orca-gulp:
h2o_dimer_subtractive_mm_orca.py
butanol_mech.py

# Restraints
restraints:
restraints_unit_tests.py
restraints_single_point_regression_tests.py
restraints_optimisation_regression_tests.py

# DL-FIND
dl_find/mndo:
c4h6_min_lbfgs_cartesians.py
c4h6_min_cartesians_constraints.py
c4h6_min_dlc_constraints.py
c4h6_ts_prfo_cartesians.py
c4h6_ts_prfo_dlc.py
c4h6_ts_prfo_hdlc.py
c4h6_ts_dimer_cartesians.py
c4h6_ts_dimer_dlc.py
c4h6_ts_dimer_hdlc.py
c2h2_ts_neb_cartesians.py
ch3o_ts_neb_cartesians.py
ch3o_ts_neb_dlc.py
ch3o_ts_neb_hdlc.py

dl_find/dftbplus:
c4h6_min_lbfgs_cartesians.py
c4h6_min_cartesians_constraints.py
c4h6_min_dlc_constraints.py
c4h6_ts_prfo_cartesians.py
c4h6_ts_prfo_dlc.py
c4h6_ts_prfo_hdlc.py
c4h6_ts_dimer_cartesians.py
c4h6_ts_dimer_dlc.py
c4h6_ts_dimer_hdlc.py
c2h2_ts_neb_cartesians.py
ch3o_ts_neb_cartesians.py
ch3o_ts_neb_dlc.py
ch3o_ts_neb_hdlc.py

#dl_find/mndo-dl_poly:
# TD 19/12/2024: These tests are too slow to stage for now
#gly-water_microiter_min_Cartesians.py
#gly-water_microiter_min_HDLC.py
#gly-water_microiter_dimer_Cartesians.py
#gly-water_microiter_dimer_HDLC.py
#gly-water_microiter_P-RFO_Cartesians.py
#gly-water_microiter_P-RFO_HDLC.py
#gly-water_microiter_P-RFO_HDLC_cartatoms.py
#gly-water_microiter_P-RFO_HDLC_constraints.py
#gly-water_microiter_NEB_Cartesians.py

# DL_FIELD
dl_field/dl_poly:
butanol_sp.py
butanol_opt.py
sod1_sp.py

dl_field/nwchem-dl_poly:
butanol_sp.py
butanol_opt.py
butanol_sp_pcff.py
sod1_sp.py

# CHARGE FITTING
charges/gamess_uk:
h2o_esp_no_bq.py
h2o_resp_no_bq.py
h2o_esp_with_bq.py
h2o_resp_with_bq.py

charges/mndo:
h2o_esp_no_bq.py
h2o_resp_no_bq.py
h2o_esp_with_bq.py
h2o_resp_with_bq.py

charges/dftbplus:
h2o_esp_no_bq.py
h2o_resp_no_bq.py
h2o_esp_with_bq.py
h2o_resp_with_bq.py

# PDB2PQR
pdb2pqr:
p450_pdb2pqr.py
