CDKMCS { public static List<List<CDKRMap>> getSubgraphMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds) throws CDKException { return search(sourceGraph, targetGraph, new BitSet(), getBitSet(targetGraph), true, true, shouldMatchBonds); }  static boolean isIsomorph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds); static List<CDKRMap> getIsomorphMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
            boolean shouldMatchBonds); static List<CDKRMap> getIsomorphAtomsMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
            boolean shouldMatchBonds); static List<List<CDKRMap>> getIsomorphMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
            boolean shouldMatchBonds); static List<List<CDKRMap>> getSubgraphMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
            boolean shouldMatchBonds); static List<CDKRMap> getSubgraphMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
            boolean shouldMatchBonds); static List<List<CDKRMap>> getSubgraphAtomsMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
            boolean shouldMatchBonds); static List<CDKRMap> getSubgraphAtomsMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
            boolean shouldMatchBonds); static boolean isSubgraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds); static List<IAtomContainer> getOverlaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
            boolean shouldMatchBonds); static BitSet getBitSet(IAtomContainer atomContainer); static CDKRGraph buildRGraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds); static List<List<CDKRMap>> search(IAtomContainer sourceGraph, IAtomContainer targetGraph,
            BitSet sourceBitSet, BitSet targetBitSet, boolean findAllStructure, boolean findAllMap,
            boolean shouldMatchBonds); static IAtomContainer project(List<CDKRMap> rMapList, IAtomContainer graph, int key); static ArrayList<IAtomContainer> projectList(List<List<CDKRMap>> rMapsList, IAtomContainer graph, int key); static List<CDKRMap> checkSingleAtomCases(IAtomContainer sourceGraph, IAtomContainer targetGraph); static List<List<CDKRMap>> makeAtomsMapsOfBondsMaps(List<List<CDKRMap>> list, IAtomContainer sourceGraph,
            IAtomContainer targetGraph); static List<CDKRMap> makeAtomsMapOfBondsMap(List<CDKRMap> list, IAtomContainer sourceGraph,
            IAtomContainer targetGraph); synchronized static boolean isTimeOut();  }
@Test public void testSFBug1708336() throws Exception { IChemObjectBuilder builder = DefaultChemObjectBuilder.getInstance(); IAtomContainer atomContainer = builder.newInstance(IAtomContainer.class); atomContainer.addAtom(builder.newInstance(IAtom.class, "C")); atomContainer.addAtom(builder.newInstance(IAtom.class, "C")); atomContainer.addAtom(builder.newInstance(IAtom.class, "N")); atomContainer.addBond(0, 1, IBond.Order.SINGLE); atomContainer.addBond(1, 2, IBond.Order.SINGLE); IQueryAtomContainer query = new QueryAtomContainer(DefaultChemObjectBuilder.getInstance()); IQueryAtom a1 = new SymbolQueryAtom(DefaultChemObjectBuilder.getInstance()); a1.setSymbol("C"); AnyAtom a2 = new AnyAtom(DefaultChemObjectBuilder.getInstance()); IBond b1 = new OrderQueryBond(a1, a2, IBond.Order.SINGLE, DefaultChemObjectBuilder.getInstance()); IQueryAtom a3 = new SymbolQueryAtom(DefaultChemObjectBuilder.getInstance()); a3.setSymbol("C"); IBond b2 = new OrderQueryBond(a2, a3, IBond.Order.SINGLE, DefaultChemObjectBuilder.getInstance()); query.addAtom(a1); query.addAtom(a2); query.addAtom(a3); query.addBond(b1); query.addBond(b2); List<List<CDKRMap>> list = CDKMCS.getSubgraphMaps(atomContainer, query, true); Assert.assertTrue(list.isEmpty()); }