def test_adjacency_matrix_from_mol(mol) -> None: natoms = io.numatoms(mol) nbonds = io.numbonds(mol) A = io.adjacency_matrix(mol) assert A.shape == (natoms, natoms) assert np.alltrue(A == A.T) assert np.sum(A) == nbonds * 2 for i, j in io.bonds(mol): assert A[i, j] == 1
def test_graph_from_adjacency_matrix(mol) -> None: natoms = io.numatoms(mol) nbonds = io.numbonds(mol) A = io.adjacency_matrix(mol) assert A.shape == (natoms, natoms) assert np.alltrue(A == A.T) assert np.sum(A) == nbonds * 2 G = graph.graph_from_adjacency_matrix(A) assert graph.num_vertices(G) == natoms assert graph.num_edges(G) == nbonds
def test_graph_from_adjacency_matrix_atomicnums(rawmol, mol) -> None: natoms = io.numatoms(rawmol) nbonds = io.numbonds(rawmol) A = io.adjacency_matrix(rawmol) assert len(mol) == natoms assert mol.adjacency_matrix.shape == (natoms, natoms) assert np.alltrue(mol.adjacency_matrix == A) assert np.sum(mol.adjacency_matrix) == nbonds * 2 G = mol.to_graph() assert graph.num_vertices(G) == natoms assert graph.num_edges(G) == nbonds for idx, atomicnum in enumerate(mol.atomicnums): assert graph.vertex_property(G, "atomicnum", idx) == atomicnum