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)
Example #20
0
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")
Example #21
0
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)