def test_vector_match_with_one_unique_hit(self): mol = parse_smiles("c1ccccc1O") pat = parse_smarts("c1ccccc1") v = ob.vectorvInt() self.assertTrue(pat.Match(mol, v, ob.OBSmartsPattern.AllUnique)) self.assertEqual(len(v), 1) self.assertEqual(set(v[0]), set([1, 2, 3, 4, 5, 6]))
def test_vector_match(self): v = ob.vectorvInt() mol = parse_smiles("c1ccccc1O") pat = parse_smarts("cO") self.assertEqual(pat.Match(mol, v), 1) self.assertEqual(len(v), 1) self.assertEqual(set(v[0]), set([6, 7]))
def test_vector_match_false(self): # Create a vector< vector<int> >, wherein the results go v = ob.vectorvInt() mol = parse_smiles("c1ccccc1O") pat = parse_smarts("N") self.assertEqual(pat.Match(mol, v), 0) self.assertEqual(len(v), 0)
def test_vector_match_with_single_hit(self): v = ob.vectorvInt() mol = parse_smiles("c1ccccc1O") pat = parse_smarts("ccO") self.assertEqual(pat.Match(mol, v, ob.OBSmartsPattern.Single), 1) self.assertEqual(len(v), 1) result = v[0] self.assertTrue(result == (5, 6, 7) or result == (1, 6, 7), result)
def test_vector_match_with_all_hits(self): mol = parse_smiles("c1ccccc1O") pat = parse_smarts("c1ccccc1") v = ob.vectorvInt() self.assertEqual(pat.Match(mol, v, ob.OBSmartsPattern.All), 1) self.assertEqual(len(v), 12) expect = set([1, 2, 3, 4, 5, 6]) for x in v: self.assertEqual(set(x), expect)
def test_vector_match_with_two_hits(self): v = ob.vectorvInt() mol = parse_smiles("c1ccccc1O") pat = parse_smarts("ccO") self.assertEqual(pat.Match(mol, v), 1) self.assertEqual(len(v), 2) results = list(v) self.assertTrue((5, 6, 7) in results, results) self.assertTrue((1, 6, 7) in results, results)