public void TestAnyAtomAnyBondCase() { var sp = CDK.SmilesParser; var target = sp.ParseSmiles("O1C=CC=C1"); var queryac = sp.ParseSmiles("C1CCCC1"); var query = QueryAtomContainerCreator.CreateAnyAtomAnyBondContainer(queryac, false); Assert.IsTrue(uiTester.IsSubgraph(target, query), "C1CCCC1 should be a subgraph of O1C=CC=C1"); Assert.IsTrue(uiTester.IsIsomorph(target, query), "C1CCCC1 should be a isomorph of O1C=CC=C1"); }
private void AddTemplateMol(IAtomContainer mol) { templates.Add(mol); var query = QueryAtomContainerCreator.CreateAnyAtomAnyBondContainer(mol, false); queries.Add(query); for (int i = 0; i < mol.Atoms.Count; i++) { query.Atoms[i].Point3D = mol.Atoms[i].Point3D; } patterns.Add(Pattern.CreateSubstructureFinder(query)); }
public void TestFirstArgumentMustNotBeAnQueryAtomContainer() { var sp = CDK.SmilesParser; var target = sp.ParseSmiles("O1C=CC=C1"); var queryac = sp.ParseSmiles("C1CCCC1"); var query = QueryAtomContainerCreator.CreateAnyAtomAnyBondContainer(queryac, false); try { uiTester.IsSubgraph(query, target); Assert.Fail("The UniversalIsomorphism should check when the first arguments is a QueryAtomContainer"); } catch (Exception) { // OK, it must Assert.fail! } }
internal static QueryAtomContainer[] MakeQueries(params string[] smiles) { return(smiles.Select(n => QueryAtomContainerCreator.CreateAnyAtomAnyBondContainer(CDK.SmilesParser.ParseSmiles(n), false)).ToArray()); }