Skip to content

Commit 85cddfc

Browse files
author
Oliver Scott
committed
tests for added functions
1 parent 64dd93d commit 85cddfc

2 files changed

Lines changed: 58 additions & 0 deletions

File tree

tests/test_network.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ def test_network(sdf_file):
1515
return network
1616

1717

18+
@pytest.fixture(name='network')
19+
def long_test_network():
20+
network = sg.ScaffoldNetwork.from_smiles_file('tests/test_smiles.smi')
21+
return network
22+
23+
1824
def test_network_from_sdf(sdf_file):
1925
network = sg.ScaffoldNetwork.from_sdf(sdf_file)
2026
assert network.num_scaffold_nodes == 8
@@ -33,5 +39,47 @@ def test_hiers(sdf_file):
3339
assert network.num_molecule_nodes == 2
3440

3541

42+
def test_hierarchy_functions(network):
43+
hierarchy_sizes = network.get_hierarchy_sizes()
44+
assert hierarchy_sizes[1] == 7
45+
assert hierarchy_sizes[2] == 10
46+
assert hierarchy_sizes[3] == 7
47+
assert hierarchy_sizes[4] == 1
48+
assert network.max_hierarchy() == 4
49+
assert network.min_hierarchy() == 1
50+
s_in_h2 = {
51+
'C1=Cn2cnnc2CN=C1', 'O=C1CN=C(c2ccccn2)C=CN1', 'O=C1CN=Cc2ccccc2N1',
52+
'C1=CC(c2ccccc2)=[NH+]CC=N1', 'C1=Nc2ccccc2C=[NH+]C1',
53+
'O=C1CC(=O)N(c2ccccc2)C=CN1', 'O=C1CC(=O)Nc2ccccc2N1',
54+
'O=C1CN=C(c2ccccc2)C=CN1', 'O=C1C[NH+]=Cc2ccccc2N1',
55+
'O=C1C[NH+]=C(c2ccccc2)C=CN1'
56+
}
57+
assert s_in_h2 == set(network.get_scaffolds_in_hierarchy(2))
58+
59+
60+
def test_simple_functions(network):
61+
assert network.scaffold_in_graph('C1=Cn2cnnc2CN=C1') is True
62+
# Below is the non-canonical SMILES of the above
63+
assert network.scaffold_in_graph('C1=C-n2:c:n:n:c:2-C-N=C-1') is True
64+
assert network.scaffold_in_graph('c1ccccc1CCNc2ccccc2') is False
65+
assert network.molecule_in_graph('Adinazolam') is True
66+
assert network.molecule_in_graph('Citalopram') is False
67+
68+
69+
def test_traversal(network):
70+
s_for_adinazolam = {
71+
'c1ccc(C2=NCc3nncn3-c3ccccc32)cc1', 'C1=NCc2nncn2-c2ccccc21',
72+
'C1=Cn2cnnc2CN=C1c1ccccc1', 'C1=Cn2cnnc2CN=C1', 'c1nnc[nH]1'
73+
}
74+
assert set(network.get_scaffolds_for_molecule('Adinazolam')) == s_for_adinazolam
75+
m_for_scaffold = {'Adinazolam', 'Alprazolam'}
76+
assert set(network.get_molecules_for_scaffold('c1nnc[nH]1')) == m_for_scaffold
77+
78+
79+
def test_separate_disconnected(network):
80+
assert len(network.separate_disconnected_components()) == 2
81+
assert type(network.separate_disconnected_components()[0]) == type(network)
82+
83+
3684
def test_repr(test_net):
3785
assert repr(test_net) == '<ScaffoldNetwork at {}>'.format(hex(id(test_net)))

tests/test_smiles.smi

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
CN(C)Cc1n-2c(nn1)CN=C(c1ccccc1)c1cc(Cl)ccc12 Adinazolam
2+
Cc1n-2c(nn1)CN=C(c1ccccc1)c1cc(Cl)ccc12 Alprazolam
3+
Brc1cc2c(cc1)NC(=O)CN=C2c1ncccc1 Bromazepam
4+
CNC1=Nc2c(cc(Cl)cc2)C(c2ccccc2)=[N+]([O-])C1 Chlordiazepoxide
5+
CN1c2ccc(Cl)cc2N(c2ccccc2)C(=O)CC1=O Clobazam
6+
[O-][N+](=O)c1cc2c(cc1)NC(=O)CN=C2c1c(Cl)cccc1 Clonazepam
7+
OC(=O)C1N=C(c2ccccc2)c2cc(Cl)ccc2NC1=O Clorazepate
8+
Clc1cc2c(cc1)NC(=O)CN=C2c1c(Cl)cccc1 Delorazepam
9+
[O-][N+]1=C(c2ccccc2)c2cc(Cl)ccc2NC(=O)C1 Demoxepam
10+
Clc1cc2c(cc1)NC(=O)CC(=O)N2c1ccccc1 Desmethylclobazam

0 commit comments

Comments
 (0)