Exemple #1
0
def test__to_local_stereo():
    """ test graph.to_local_stereo
    """
    # Atom parity test:
    # Indices 3 and 4 are swapped so that local stereo will have opposite
    # parity
    can_gra = ({
        0: ('C', 3, None),
        1: ('C', 0, True),
        2: ('F', 0, None),
        4: ('N', 2, None),
        3: ('O', 1, None)
    }, {
        frozenset({0, 1}): (1, None),
        frozenset({1, 4}): (1, None),
        frozenset({1, 3}): (1, None),
        frozenset({1, 2}): (1, None)
    })
    can_par = graph.atom_stereo_parities(can_gra)[1]

    loc_gra = graph.to_local_stereo(can_gra)
    loc_par = graph.atom_stereo_parities(loc_gra)[1]
    print(can_par, loc_par)
    assert can_par is True
    assert loc_par is False

    # Bond parity test:
    # Indices 3 and 5 are swapped so that local stereo will have opposite
    # parity
    can_gra = ({
        0: ('C', 0, None),
        1: ('C', 0, None),
        2: ('Cl', 0, None),
        5: ('Cl', 0, None),
        4: ('F', 0, None),
        3: ('F', 0, None)
    }, {
        frozenset({0, 1}): (1, True),
        frozenset({0, 2}): (1, None),
        frozenset({0, 4}): (1, None),
        frozenset({1, 3}): (1, None),
        frozenset({1, 5}): (1, None)
    })
    can_par = graph.bond_stereo_parities(can_gra)[frozenset({0, 1})]

    loc_gra = graph.to_local_stereo(can_gra)
    loc_par = graph.bond_stereo_parities(loc_gra)[frozenset({0, 1})]
    print(can_par, loc_par)
    assert can_par is True
    assert loc_par is False
Exemple #2
0
def test__from_data():
    """ test getters
    """
    cgr = automol.graph.from_data(
        atm_symb_dct=graph.atom_symbols(C8H13O_CGR),
        bnd_keys=graph.bond_keys(C8H13O_CGR),
        atm_imp_hyd_vlc_dct=(
            graph.atom_implicit_hydrogen_valences(C8H13O_CGR)),
    )
    assert cgr == C8H13O_CGR

    rgr = automol.graph.from_data(
        atm_symb_dct=graph.atom_symbols(C8H13O_RGR),
        bnd_keys=graph.bond_keys(C8H13O_RGR),
        atm_imp_hyd_vlc_dct=(
            graph.atom_implicit_hydrogen_valences(C8H13O_RGR)),
        bnd_ord_dct=graph.bond_orders(C8H13O_RGR),
    )
    assert rgr == C8H13O_RGR

    sgr = automol.graph.from_data(
        atm_symb_dct=graph.atom_symbols(C8H13O_SGR),
        bnd_keys=graph.bond_keys(C8H13O_SGR),
        atm_imp_hyd_vlc_dct=(
            graph.atom_implicit_hydrogen_valences(C8H13O_SGR)),
        atm_ste_par_dct=graph.atom_stereo_parities(C8H13O_SGR),
        bnd_ste_par_dct=graph.bond_stereo_parities(C8H13O_SGR))
    assert sgr == C8H13O_SGR
Exemple #3
0
def test__from_dictionaries():
    """ test graph.from_dictionaries
    """
    assert graph.from_dictionaries(
        graph.atom_symbols(CH2FH2H_CGR_EXP),
        graph.bond_keys(CH2FH2H_CGR_EXP)
    ) == CH2FH2H_CGR_EXP

    assert graph.from_dictionaries(
        graph.atom_symbols(C8H13O_RGRS[0]),
        graph.bond_keys(C8H13O_RGRS[0]),
        atm_imp_hyd_vlc_dct=graph.atom_implicit_hydrogen_valences(
            C8H13O_RGRS[0]),
        bnd_ord_dct=graph.bond_orders(C8H13O_RGRS[0])
    ) == C8H13O_RGRS[0]

    assert graph.from_dictionaries(
        graph.atom_symbols(C8H13O_SGRS[0]),
        graph.bond_keys(C8H13O_SGRS[0]),
        atm_imp_hyd_vlc_dct=graph.atom_implicit_hydrogen_valences(
            C8H13O_SGRS[0]),
        atm_ste_par_dct=graph.atom_stereo_parities(C8H13O_SGRS[0]),
        bnd_ste_par_dct=graph.bond_stereo_parities(C8H13O_SGRS[0])
    ) == C8H13O_SGRS[0]

    # a litte ridiculous, but make sure we get the keys right
    sgr_ref = C8H13O_SGRS[0]
    natms = len(graph.atoms(sgr_ref))
    for _ in range(10):
        pmt_dct = dict(enumerate(numpy.random.permutation(natms)))
        sgr = graph.relabel(sgr_ref, pmt_dct)
        assert graph.from_dictionaries(
            graph.atom_symbols(sgr),
            graph.bond_keys(sgr),
            atm_imp_hyd_vlc_dct=graph.atom_implicit_hydrogen_valences(sgr),
            atm_ste_par_dct=graph.atom_stereo_parities(sgr),
            bnd_ste_par_dct=graph.bond_stereo_parities(sgr)
        ) == sgr