def test_SmartsMolFilter(self): smis = ['C1CCC1', 'C1CCC1C=O', 'CCCC', 'CCC=O', 'CC(=O)C', 'CCN', 'NCCN', 'NCC=O'] mols = [Chem.MolFromSmiles(x) for x in smis] suppl = SupplyNode(contents=mols) self.assertEqual(len(list(suppl)), 8) smas = ['C=O', 'CN'] counts = [1, 2] filt = SmartsMolFilter.SmartsFilter(patterns=smas, counts=counts) filt.AddParent(suppl) self.assertEqual(len(list(filt)), 5) suppl.reset() filt.SetNegate(True) self.assertEqual(len(list(filt)), 3) smas = ['C=O', 'CN'] filt = SmartsMolFilter.SmartsFilter(patterns=smas) filt.AddParent(suppl) self.assertEqual(len(list(filt)), 6) self.assertRaises(ValueError, SmartsMolFilter.SmartsFilter, patterns=smas, counts=['notEnough', ]) RDLogger.DisableLog('rdApp.error') self.assertRaises(ValueError, SmartsMolFilter.SmartsFilter, patterns=['BadSmarts']) RDLogger.EnableLog('rdApp.error')
def reset(self): SupplyNode.reset(self) self._supplier.reset()