def test_disconnected_molecule(self): """Test that we can generate an InChI for a disconnected molecule.""" mol = Molecule().from_smiles('CCCCO.C=O') inchi = 'InChI=1S/C4H10O.CH2O/c1-2-3-4-5;1-2/h5H,2-4H2,1H3;1H2' self.assertEqual(mol.to_inchi(), inchi)
def test_isotopic_molecule_2(self): """Test that we can generate an InChI for an isotopic molecule.""" mol = Molecule().from_smiles('[13CH3]C') inchi = 'InChI=1S/C2H6/c1-2/h1-2H3/i1+1' self.assertEqual(mol.to_inchi(), inchi)
def test_helium(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().from_smiles(smiles) mol_inchi = Molecule().from_inchi(inchi) mol = Molecule().from_adjacency_list(adjlist) mol_old = Molecule().from_adjacency_list(adjlist_old) mol_intermediate = Molecule().from_adjacency_list(adjlist_intermediate) # Isomorphic check self.assertTrue(mol_smiles.is_isomorphic(mol)) self.assertTrue(mol_smiles.is_isomorphic(mol_inchi)) self.assertTrue(mol_smiles.is_isomorphic(mol_old)) self.assertTrue(mol_smiles.is_isomorphic(mol_intermediate)) # Adjlist check self.assertEqual(mol_smiles.to_adjacency_list().strip(), adjlist) self.assertEqual(mol_inchi.to_adjacency_list().strip(), adjlist) self.assertEqual(mol.to_adjacency_list().strip(), adjlist) self.assertEqual(mol_old.to_adjacency_list().strip(), adjlist) self.assertEqual(mol_intermediate.to_adjacency_list().strip(), adjlist) self.assertEqual(mol.to_smiles(), smiles) self.assertEqual(mol.to_inchi(), 'InChI=1S/He')
def test_empty_molecule(self): """Test that we can safely return a blank identifier for an empty molecule.""" mol = Molecule() self.assertEqual(mol.to_smiles(), '') self.assertEqual(mol.to_inchi(), '')