Source code for skchem.test.test_featurizers


from ..features import AtomFeaturizer
from ..core import Mol
import pytest

import numpy as np
import pandas as pd


@pytest.fixture
[docs]def af(): return AtomFeaturizer()
@pytest.fixture
[docs]def m(): return Mol.from_smiles('CCO')
@pytest.fixture
[docs]def a(m): return m.atoms[0]
@pytest.fixture
[docs]def s(m): return pd.Series([m, m], index=(1, 2))
[docs]def test_af(af): assert len(af.minor_axis) == 37
[docs]def test_on_a(af, a): feats = af.transform(a) assert np.array_equal(feats.shape, (len(af.minor_axis),)) assert feats.index.name == 'atom_features' assert feats['is_C'] == True assert feats['is_SP2_hybridized'] == False
[docs]def test_on_m(af, m): feats = af.transform(m) assert np.array_equal(feats.shape, (len(m.atoms), len(af.minor_axis))) assert feats.index.name == 'atom_idx' assert feats.columns.name == 'atom_features' assert feats.ix[0, 'is_C'] == True assert feats.ix[2, 'is_C'] == False assert feats.ix[2, 'is_O'] == True
[docs]def test_on_ser(af, s): feats = af.transform(s) assert np.array_equal(feats.shape, (len(s), af.max_atoms, len(af.minor_axis))) assert feats.ix[1, 0, 'is_C'] == True assert feats.ix[2, 2, 'is_O'] == True