def testHelium(self): """ adjlist: Test that the adjlist reading and writing works with Helium. """ smiles = '[He]' inchi = 'InChI=1S/He' adjlist = '1 He u0 p1 c0' adjlist_old = '1 He 0' adjlist_intermediate = '1 He 0 1' mol_smiles = Molecule().fromSMILES(smiles) mol_inchi = Molecule().fromInChI(inchi) mol = Molecule().fromAdjacencyList(adjlist) mol_old = Molecule().fromAdjacencyList(adjlist_old) mol_intermediate = Molecule().fromAdjacencyList(adjlist_intermediate) # Isomorphic check self.assertTrue(mol_smiles.isIsomorphic(mol)) self.assertTrue(mol_smiles.isIsomorphic(mol_inchi)) self.assertTrue(mol_smiles.isIsomorphic(mol_old)) self.assertTrue(mol_smiles.isIsomorphic(mol_intermediate)) # Adjlist check self.assertEqual(mol_smiles.toAdjacencyList().strip(), adjlist) self.assertEqual(mol_inchi.toAdjacencyList().strip(), adjlist) self.assertEqual(mol.toAdjacencyList().strip(), adjlist) self.assertEqual(mol_old.toAdjacencyList().strip(), adjlist) self.assertEqual(mol_intermediate.toAdjacencyList().strip(), adjlist) self.assertEqual(mol.toSMILES(), smiles) self.assertEqual(mol.toInChI(), 'InChI=1S/He')
def test_disconnected_molecule(self): """Test that we can generate an InChI for a disconnected molecule.""" mol = Molecule().fromSMILES('CCCCO.C=O') inchi = 'InChI=1S/C4H10O.CH2O/c1-2-3-4-5;1-2/h5H,2-4H2,1H3;1H2' self.assertEqual(mol.toInChI(), inchi)
def testHelium(self): """ adjlist: Test that the adjlist reading and writing works with Helium. """ smiles = '[He]' inchi = 'InChI=1S/He' adjlist = '1 He u0 p1 c0' adjlist_old = '1 He 0' adjlist_intermediate = '1 He 0 1' mol_smiles = Molecule().fromSMILES(smiles) mol_inchi = Molecule().fromInChI(inchi) mol = Molecule().fromAdjacencyList(adjlist) mol_old = Molecule().fromAdjacencyList(adjlist_old) mol_intermediate = Molecule().fromAdjacencyList(adjlist_intermediate) # Isomorphic check self.assertTrue(mol_smiles.isIsomorphic(mol)) self.assertTrue(mol_smiles.isIsomorphic(mol_inchi)) self.assertTrue(mol_smiles.isIsomorphic(mol_old)) self.assertTrue(mol_smiles.isIsomorphic(mol_intermediate)) # Adjlist check self.assertEqual(mol_smiles.toAdjacencyList().strip(), adjlist) self.assertEqual(mol_inchi.toAdjacencyList().strip(), adjlist) self.assertEqual(mol.toAdjacencyList().strip(), adjlist) self.assertEqual(mol_old.toAdjacencyList().strip(), adjlist) self.assertEqual(mol_intermediate.toAdjacencyList().strip(), adjlist) self.assertEqual(mol.toSMILES(),smiles) self.assertEqual(mol.toInChI(),'InChI=1S/He')
def test_isotopic_molecule_2(self): """Test that we can generate an InChI for an isotopic molecule.""" mol = Molecule().fromSMILES('[13CH3]C') inchi = 'InChI=1S/C2H6/c1-2/h1-2H3/i1+1' self.assertEqual(mol.toInChI(), inchi)
def test_empty_molecule(self): """Test that we can safely return a blank identifier for an empty molecule.""" mol = Molecule() self.assertEqual(mol.toSMILES(), '') self.assertEqual(mol.toInChI(), '')