public void TestMatchInherited() { try { var builder = Silent.ChemObjectBuilder.Instance; var c1 = new SymbolQueryAtom(builder.NewAtom("C")); var c2 = new SymbolAndChargeQueryAtom(builder.NewAtom("C")); var c = TestMoleculeFactory.MakeAlkane(2); var query1 = new QueryAtomContainer(); query1.Atoms.Add(c1); query1.Atoms.Add(c2); query1.Bonds.Add(new NCDK.Isomorphisms.Matchers.OrderQueryBond(c1, c2, BondOrder.Single)); Assert.IsTrue(uiTester.IsSubgraph(c, query1)); var query = new QueryAtomContainer(); query.Atoms.Add(c1); query.Atoms.Add(c2); query.Bonds.Add(new AnyOrderQueryBond(c1, c2, BondOrder.Single)); Assert.IsTrue(uiTester.IsSubgraph(c, query)); } catch (CDKException exception) { Assert.Fail(exception.Message); } }
public void TestSMARTS() { var sp = new SmilesParser(); var atomContainer = sp.ParseSmiles("CC(=O)OC(=O)C"); // acetic acid anhydride var query = new QueryAtomContainer(); var atom1 = new NCDK.Isomorphisms.Matchers.SMARTS.AnyAtom(); var atom2 = new SymbolQueryAtom() { Symbol = "C" }; query.Atoms.Add(atom1); query.Atoms.Add(atom2); query.Bonds.Add(new NCDK.Isomorphisms.Matchers.OrderQueryBond(atom1, atom2, BondOrder.Double)); Assert.IsTrue(uiTester.IsSubgraph(atomContainer, query)); }
public void TestStrictSMARTS() { IChemObjectBuilder builder = ChemObjectBuilder.Instance; var sp = new SmilesParser(builder); var atomContainer = sp.ParseSmiles("CC(=O)OC(=O)C"); // acetic acid anhydride var query = new QueryAtomContainer(builder); var atom1 = new SymbolQueryAtom(builder) { Symbol = "N" }; var atom2 = new SymbolQueryAtom(builder) { Symbol = "C" }; query.Atoms.Add(atom1); query.Atoms.Add(atom2); query.Bonds.Add(new NCDK.Isomorphisms.Matchers.OrderQueryBond(atom1, atom2, BondOrder.Double, builder)); Assert.IsFalse(uiTester.IsSubgraph(atomContainer, query)); }
public void TestSFBug1708336() { var atomContainer = builder.NewAtomContainer(); atomContainer.Atoms.Add(builder.NewAtom("C")); atomContainer.Atoms.Add(builder.NewAtom("C")); atomContainer.Atoms.Add(builder.NewAtom("N")); atomContainer.AddBond(atomContainer.Atoms[0], atomContainer.Atoms[1], BondOrder.Single); atomContainer.AddBond(atomContainer.Atoms[1], atomContainer.Atoms[2], BondOrder.Single); var query = new QueryAtomContainer(); var a1 = new SymbolQueryAtom() { Symbol = "C" }; var a2 = new Isomorphisms.Matchers.SMARTS.AnyAtom(); var b1 = new OrderQueryBond(a1, a2, BondOrder.Single); var a3 = new SymbolQueryAtom() { Symbol = "C" }; var b2 = new OrderQueryBond(a2, a3, BondOrder.Single); query.Atoms.Add(a1); query.Atoms.Add(a2); query.Atoms.Add(a3); query.Bonds.Add(b1); query.Bonds.Add(b2); var list = CDKMCS.GetSubgraphMaps(atomContainer, query, true); Assert.IsTrue(list.Count == 0); }