def test_curate_roundtrip(basis, fmt): # Many formats have limitations on general contractions if fmt == 'gaussian94': uncontract_general = True uncontract_spdf = 1 if fmt == 'turbomole': uncontract_general = True uncontract_spdf = 0 if fmt == 'nwchem': uncontract_general = False uncontract_spdf = 1 bse_formatted = api.get_basis(basis, fmt=fmt) bse_dict = api.get_basis(basis, uncontract_general=uncontract_general) bse_dict = manip.uncontract_spdf(bse_dict, uncontract_spdf) outfile = tempfile.NamedTemporaryFile(mode='w', delete=False) outfile_path = outfile.name outfile.write(bse_formatted) outfile.close() test_dict = curate.read_formatted_basis(outfile_path, fmt) os.remove(outfile_path) test_dict = manip.sort_basis(test_dict) bse_dict = manip.sort_basis(bse_dict) # Compare, ignoring metadata (not stored in most formats) assert curate.compare_basis(bse_dict, test_dict, rel_tol=0.0)
def test_manip_roundtrip_slow(basis): bse_dict = api.get_basis(basis) bse_dict_gen = manip.make_general(bse_dict) bse_dict_unc = manip.uncontract_general(bse_dict_gen) bse_dict_unc = manip.prune_basis(bse_dict_unc) bse_dict_sort = sort.sort_basis(bse_dict_unc) bse_dict = manip.uncontract_general(bse_dict) bse_dict = manip.uncontract_spdf(bse_dict) assert curate.compare_basis(bse_dict, bse_dict_unc, rel_tol=0.0) assert curate.compare_basis(bse_dict, bse_dict_sort, rel_tol=0.0) bse_dict_gen = manip.prune_basis(bse_dict_gen) bse_dict_gen2 = manip.make_general(bse_dict_unc) bse_dict_gen2 = manip.prune_basis(bse_dict_gen2) assert curate.compare_basis(bse_dict_gen, bse_dict_gen2, rel_tol=0.0)
def test_curate_roundtrip(tmp_path, basis, fmt): tmp_path = str(tmp_path) # Needed for python 3.5 # Many formats have limitations on general contractions if fmt == 'gaussian94': uncontract_general = True make_general = False uncontract_spdf = 1 if fmt == 'turbomole': uncontract_general = True make_general = False uncontract_spdf = 0 if fmt == 'nwchem': uncontract_general = False make_general = False uncontract_spdf = 1 if fmt == 'cfour': uncontract_general = False make_general = True uncontract_spdf = 0 bse_formatted = api.get_basis(basis, fmt=fmt) bse_dict = api.get_basis(basis, uncontract_general=uncontract_general, make_general=make_general) bse_dict = manip.uncontract_spdf(bse_dict, uncontract_spdf) outfile_path = os.path.join(tmp_path, 'roundtrip.txt') with open(outfile_path, 'w', encoding='utf-8') as outfile: outfile.write(bse_formatted) test_dict = readers.read_formatted_basis_file(outfile_path, fmt) test_dict = sort.sort_basis(test_dict) bse_dict = sort.sort_basis(bse_dict) # Compare, ignoring metadata (not stored in most formats) assert curate.compare_basis(bse_dict, test_dict, rel_tol=0.0)