def test_pubchem_4a(): subject = subject4 fullans = copy.deepcopy(fullans4) fullans["provenance"] = _string_prov_stamp final, intermed = qcelemental.molparse.from_string(subject, return_processed=True) assert compare_molrecs(ans4, intermed, tnm() + ": intermediate") assert compare_molrecs(fullans, final["qm"], tnm() + ": full")
def test_pubchem_13i(): subject = "PubChem:223" fullans = copy.deepcopy(fullans13) fullans['provenance'] = _string_prov_stamp final, intermed = qcelemental.molparse.from_string(subject, return_processed=True) assert compare_molrecs(ans13, intermed, tnm() + ': intermediate') assert compare_molrecs(fullans, final['qm'], tnm() + ': full')
def test_pubchem_13i(): subject = "PubChem:223" fullans = copy.deepcopy(fullans13) fullans["provenance"] = _string_prov_stamp with xfail_on_pubchem_busy(): final, intermed = qcelemental.molparse.from_string(subject, return_processed=True) assert compare_molrecs(ans13, intermed, tnm() + ": intermediate") assert compare_molrecs(fullans, final["qm"], tnm() + ": full")
def test_pubchem_4c(): subject = """ pubchem : 241 """ ans = copy.deepcopy(ans4) ans["name"] = "benzene" fullans = copy.deepcopy(fullans4) fullans["name"] = "benzene" fullans["provenance"] = _string_prov_stamp final, intermed = qcelemental.molparse.from_string(subject, return_processed=True, name="benzene", verbose=2) assert compare_molrecs(ans, intermed, tnm() + ": intermediate") assert compare_molrecs(fullans, final["qm"], tnm() + ": full")
def test_2_14b(): fullans = copy.deepcopy(schema14_2) fullans['provenance'] = _string_prov_stamp final = qcelemental.molparse.from_string(subject14) kmol = qcelemental.molparse.to_schema(final['qm'], dtype=2) assert compare_molrecs(fullans, kmol) fullans = copy.deepcopy(schema14_psi4) fullans['provenance'] = _schema_prov_stamp molrec = qcelemental.molparse.from_schema(kmol) molrec = qcelemental.util.unnp(molrec) assert compare_molrecs(fullans, molrec)
def test_1_14a(): fullans = copy.deepcopy(schema14_1) fullans["molecule"]["provenance"] = _string_prov_stamp final = qcelemental.molparse.from_string(subject14) kmol = qcelemental.molparse.to_schema(final["qm"], dtype=1) assert compare_molrecs(fullans["molecule"], kmol["molecule"]) fullans = copy.deepcopy(schema14_psi4) fullans["provenance"] = _schema_prov_stamp molrec = qcelemental.molparse.from_schema(kmol) molrec = qcelemental.util.unnp(molrec) assert compare_molrecs(fullans, molrec)
def test_2_14b(request): fullans = copy.deepcopy(schema14_2) fullans["provenance"] = _string_prov_stamp final = qcelemental.molparse.from_string(subject14) kmol = qcelemental.molparse.to_schema(final["qm"], dtype=2) drop_qcsk(kmol, request.node.name, "Molecule") assert compare_molrecs(fullans, kmol) fullans = copy.deepcopy(schema14_psi4) fullans["provenance"] = _schema_prov_stamp molrec = qcelemental.molparse.from_schema(kmol) molrec = qcelemental.util.unnp(molrec) assert compare_molrecs(fullans, molrec)
def test_tofro_16b(dtype): fullans = copy.deepcopy(schema16_psi4) fullans['provenance'] = _schema_prov_stamp roundtrip = qcelemental.molparse.from_schema(qcelemental.molparse.to_schema(schema16_psi4, dtype=dtype)) assert compare_molrecs(fullans, roundtrip)
def test_psi4_14c(): fullans = copy.deepcopy(schema14_psi4) fullans['provenance'] = _string_prov_stamp final = qcelemental.molparse.from_string(subject14) kmol = qcelemental.molparse.to_schema(final['qm'], dtype='psi4') assert compare_molrecs(fullans, kmol)
def test_pubchem_4c(): subject = """ pubchem : 241 """ ans = copy.deepcopy(ans4) ans['name'] = 'benzene' fullans = copy.deepcopy(fullans4) fullans['name'] = 'benzene' fullans['provenance'] = _string_prov_stamp final, intermed = qcelemental.molparse.from_string(subject, return_processed=True, name='benzene', verbose=2) assert compare_molrecs(ans, intermed, tnm() + ': intermediate') assert compare_molrecs(fullans, final['qm'], tnm() + ': full')
def test_from_schema_2_14e(request): schema = copy.deepcopy(schema14_1) schema.update({"schema_name": "qcschema_molecule", "schema_version": 2}) drop_qcsk(schema, request.node.name, "Molecule") ans = qcel.molparse.from_schema(schema) assert compare_molrecs(schema14_psi4_np, ans, 4)
def test_2_15b(): fullans = copy.deepcopy(schema15_2) fullans['provenance'] = _string_prov_stamp final = qcelemental.molparse.from_string(subject15) final['qm']['comment'] = 'I has a comment' kmol = qcelemental.molparse.to_schema(final['qm'], dtype=2) assert compare_molrecs(fullans, kmol) fullans = copy.deepcopy(schema15_psi4) fullans['units'] = 'Bohr' fullans['geom'] = [0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0] fullans['provenance'] = _schema_prov_stamp molrec = qcelemental.molparse.from_schema(kmol) molrec = qcelemental.util.unnp(molrec) assert compare_molrecs(fullans, molrec)
def test_2_15b(): fullans = copy.deepcopy(schema15_2) fullans["provenance"] = _string_prov_stamp final = qcelemental.molparse.from_string(subject15) final["qm"]["comment"] = "I has a comment" kmol = qcelemental.molparse.to_schema(final["qm"], dtype=2) assert compare_molrecs(fullans, kmol) fullans = copy.deepcopy(schema15_psi4) fullans["units"] = "Bohr" fullans["geom"] = [0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0] fullans["provenance"] = _schema_prov_stamp molrec = qcelemental.molparse.from_schema(kmol) molrec = qcelemental.util.unnp(molrec) assert compare_molrecs(fullans, molrec)
def test_psi4_15c(): fullans = copy.deepcopy(schema15_psi4) fullans['provenance'] = _string_prov_stamp final = qcelemental.molparse.from_string(subject15) final['qm']['comment'] = 'I has a comment' kmol = qcelemental.molparse.to_schema(final['qm'], dtype='psi4', units='Angstrom') assert compare_molrecs(fullans, kmol)
def test_from_schema_1p5_14e(): # this is the oddball case where passing code has internally a dtype=2 molecule # but it's still passing the outer data structure schema = {"schema_name": "qc_schema", "schema_version": 1, "molecule": copy.deepcopy(schema14_1)} schema["molecule"].update({"schema_name": "qcschema_molecule", "schema_version": 2}) ans = qcel.molparse.from_schema(schema) assert compare_molrecs(schema14_psi4_np, ans, 4)
def test_from_schema_1_14e(): schema = { "schema_name": "qc_schema", "schema_version": 1, "molecule": copy.deepcopy(schema14_1) } ans = qcel.molparse.from_schema(schema) assert compare_molrecs(schema14_psi4_np, ans, 4)
def test_1_15a(request): fullans = copy.deepcopy(schema15_1) fullans["molecule"]["provenance"] = _string_prov_stamp final = qcelemental.molparse.from_string(subject15) final["qm"]["comment"] = "I has a comment" kmol = qcelemental.molparse.to_schema(final["qm"], dtype=1) drop_qcsk(kmol["molecule"], request.node.name, "Molecule") assert compare_molrecs(fullans["molecule"], kmol["molecule"]) fullans = copy.deepcopy(schema15_psi4) fullans["units"] = "Bohr" fullans["geom"] = [0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0] fullans["provenance"] = _schema_prov_stamp molrec = qcelemental.molparse.from_schema(kmol) molrec = qcelemental.util.unnp(molrec) assert compare_molrecs(fullans, molrec)
def test_psi4_15c(): fullans = copy.deepcopy(schema15_psi4) fullans["provenance"] = _string_prov_stamp final = qcelemental.molparse.from_string(subject15) final["qm"]["comment"] = "I has a comment" kmol = qcelemental.molparse.to_schema(final["qm"], dtype="psi4", units="Angstrom") assert compare_molrecs(fullans, kmol)
def test_tofro_16b(dtype, request): fullans = copy.deepcopy(schema16_psi4) fullans["provenance"] = _schema_prov_stamp roundtrip = qcelemental.molparse.from_schema( qcelemental.molparse.to_schema(schema16_psi4, dtype=dtype)) qcsk = qcelemental.molparse.to_schema(schema16_psi4, dtype=dtype) qcsk = qcsk["molecule"] if dtype == 1 else qcsk drop_qcsk(qcsk, request.node.name, "Molecule") assert compare_molrecs(fullans, roundtrip)
def test_relative_geoms_align_fixed(request): s22_12 = qcel.models.Molecule.from_data(ss22_12 + "nocom\nnoreorient\n") drop_qcsk(s22_12, request.node.name) for trial in range(3): cmol, _ = s22_12.scramble( do_shift=False, do_rotate=False, do_resort=False, do_plot=False, verbose=2, do_test=True ) rmolrec = qcel.molparse.from_schema(s22_12.dict()) cmolrec = qcel.molparse.from_schema(cmol.dict()) assert compare_molrecs(rmolrec, cmolrec, atol=1.0e-4, relative_geoms="align")
def test_relative_geoms_align_free(): s22_12 = qcel.models.Molecule.from_data(ss22_12) for trial in range(3): cmol, _ = s22_12.scramble(do_shift=True, do_rotate=True, do_resort=False, do_plot=False, verbose=2, do_test=True) rmolrec = qcel.molparse.from_schema(s22_12.dict()) cmolrec = qcel.molparse.from_schema(cmol.dict()) assert compare_molrecs(rmolrec, cmolrec, atol=1.0e-4, relative_geoms="align")
def test_froto_2_16a(): basic = { 'schema_name': 'qcschema_molecule', 'schema_version': 2, 'geometry': [2, 2, 3], 'symbols': ['C'], 'connectivity': [(0.0, -0.0, 0)], 'provenance': { 'creator': 'Mystery Program', 'version': '2018.3', 'routine': 'molecule builder', }, } fullans = copy.deepcopy(schema16_2) fullans['provenance'] = _schema_prov_stamp roundtrip = qcelemental.molparse.to_schema(qcelemental.molparse.from_schema(basic), dtype=2) assert compare_molrecs(fullans, roundtrip)
def test_froto_2_16a(): basic = { "schema_name": "qcschema_molecule", "schema_version": 2, "geometry": [2, 2, 3], "symbols": ["C"], "connectivity": [(0.0, -0.0, 0)], "provenance": { "creator": "Mystery Program", "version": "2018.3", "routine": "molecule builder" }, } fullans = copy.deepcopy(schema16_2) fullans["provenance"] = _schema_prov_stamp roundtrip = qcelemental.molparse.to_schema( qcelemental.molparse.from_schema(basic), dtype=2) assert compare_molrecs(fullans, roundtrip)
def test_froto_1_16a(request): basic = { "schema_name": "qc_schema_output", "schema_version": 1, "molecule": { "geometry": [2, 2, 3], "symbols": ["C"], "connectivity": [(0.0, -0.0, 0)], "provenance": { "creator": "Mystery Program", "version": "2018.3", "routine": "molecule builder" }, }, } fullans = copy.deepcopy(schema16_1) fullans["molecule"]["provenance"] = _schema_prov_stamp roundtrip = qcelemental.molparse.to_schema( qcelemental.molparse.from_schema(basic), dtype=1) drop_qcsk(roundtrip["molecule"], request.node.name, "Molecule") assert compare_molrecs(fullans["molecule"], roundtrip["molecule"])
def test_contiguize_from_fragment_pattern(inp, expected): ans = qcel.molparse.contiguize_from_fragment_pattern(**inp) # compare_molrecs instead of compare_dicts handles some fragment_separators types issues assert compare_molrecs(expected, ans, atol=1.e-6)
def test_from_schema_2_14e(): schema = copy.deepcopy(schema14_1) schema.update({"schema_name": "qcschema_molecule", "schema_version": 2}) ans = qcel.molparse.from_schema(schema) assert compare_molrecs(schema14_psi4_np, ans, 4)