test_class.declarator: standAlone = false
test_class.original_string: boolean standAlone = false;
test_class.type: boolean
test_class.var_name: standAlone
test_class.file: legacy/src/test/java/org/openscience/cdk/smsd/algorithm/rgraph/CDKMCSTest.java
test_class.identifier: CDKMCSTest
test_class.superclass: extends CDKTestCase
test_case.body: @Test
      public void testBasicQueryAtomContainer() throws Exception {
          SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance());
          IAtomContainer atomContainer = sp.parseSmiles("CC(=O)OC(=O)C"); // acetic acid anhydride
          IAtomContainer SMILESquery = sp.parseSmiles("CC"); // acetic acid anhydride
          QueryAtomContainer query = QueryAtomContainerCreator.createBasicQueryContainer(SMILESquery);
  
          Assert.assertTrue(CDKMCS.isSubgraph(atomContainer, query, true));
      }
test_case.class_method_signature: CDKMCSTest.testBasicQueryAtomContainer()
test_case.full_signature: @Test public void testBasicQueryAtomContainer()
test_case.identifier: testBasicQueryAtomContainer
test_case.invocations: getInstance parseSmiles parseSmiles createBasicQueryContainer assertTrue isSubgraph
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testBasicQueryAtomContainer()
focal_class.declarator: ID1         = 0
focal_class.modifier: final static
focal_class.original_string: final static int           ID1         = 0;
focal_class.type: int
focal_class.var_name: ID1
focal_class.declarator: ID2         = 1
focal_class.modifier: final static
focal_class.original_string: final static int           ID2         = 1;
focal_class.type: int
focal_class.var_name: ID2
focal_class.declarator: timeManager = null
focal_class.modifier: private static
focal_class.original_string: private static TimeManager timeManager = null;
focal_class.type: TimeManager
focal_class.var_name: timeManager
focal_class.file: legacy/src/main/java/org/openscience/cdk/smsd/algorithm/rgraph/CDKMCS.java
focal_class.identifier: CDKMCS
focal_class.class_method_signature: CDKMCS.isIsomorph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.full_signature: public static boolean isIsomorph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.identifier: isIsomorph
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.return: boolean
focal_class.signature: boolean isIsomorph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.getIsomorphMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.full_signature: public static List<CDKRMap> getIsomorphMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.identifier: getIsomorphMap
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.return: List<CDKRMap>
focal_class.signature: List<CDKRMap> getIsomorphMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.getIsomorphAtomsMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.full_signature: public static List<CDKRMap> getIsomorphAtomsMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.identifier: getIsomorphAtomsMap
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.return: List<CDKRMap>
focal_class.signature: List<CDKRMap> getIsomorphAtomsMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.getIsomorphMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.full_signature: public static List<List<CDKRMap>> getIsomorphMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.identifier: getIsomorphMaps
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.return: List<List<CDKRMap>>
focal_class.signature: List<List<CDKRMap>> getIsomorphMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.getSubgraphMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.full_signature: public static List<List<CDKRMap>> getSubgraphMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.identifier: getSubgraphMaps
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.return: List<List<CDKRMap>>
focal_class.signature: List<List<CDKRMap>> getSubgraphMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.getSubgraphMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.full_signature: public static List<CDKRMap> getSubgraphMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.identifier: getSubgraphMap
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.return: List<CDKRMap>
focal_class.signature: List<CDKRMap> getSubgraphMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.getSubgraphAtomsMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.full_signature: public static List<List<CDKRMap>> getSubgraphAtomsMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.identifier: getSubgraphAtomsMaps
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.return: List<List<CDKRMap>>
focal_class.signature: List<List<CDKRMap>> getSubgraphAtomsMaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.getSubgraphAtomsMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.full_signature: public static List<CDKRMap> getSubgraphAtomsMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.identifier: getSubgraphAtomsMap
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.return: List<CDKRMap>
focal_class.signature: List<CDKRMap> getSubgraphAtomsMap(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.isSubgraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.full_signature: public static boolean isSubgraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.identifier: isSubgraph
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.return: boolean
focal_class.signature: boolean isSubgraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.getOverlaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.full_signature: public static List<IAtomContainer> getOverlaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.identifier: getOverlaps
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.return: List<IAtomContainer>
focal_class.signature: List<IAtomContainer> getOverlaps(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.getBitSet(IAtomContainer atomContainer)
focal_class.full_signature: public static BitSet getBitSet(IAtomContainer atomContainer)
focal_class.identifier: getBitSet
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer atomContainer)
focal_class.return: BitSet
focal_class.signature: BitSet getBitSet(IAtomContainer atomContainer)
focal_class.class_method_signature: CDKMCS.buildRGraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.full_signature: public static CDKRGraph buildRGraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.identifier: buildRGraph
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.return: CDKRGraph
focal_class.signature: CDKRGraph buildRGraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.search(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              BitSet sourceBitSet, BitSet targetBitSet, boolean findAllStructure, boolean findAllMap,
              boolean shouldMatchBonds)
focal_class.full_signature: public static List<List<CDKRMap>> search(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              BitSet sourceBitSet, BitSet targetBitSet, boolean findAllStructure, boolean findAllMap,
              boolean shouldMatchBonds)
focal_class.identifier: search
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph,
              BitSet sourceBitSet, BitSet targetBitSet, boolean findAllStructure, boolean findAllMap,
              boolean shouldMatchBonds)
focal_class.return: List<List<CDKRMap>>
focal_class.signature: List<List<CDKRMap>> search(IAtomContainer sourceGraph, IAtomContainer targetGraph,
              BitSet sourceBitSet, BitSet targetBitSet, boolean findAllStructure, boolean findAllMap,
              boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.project(List<CDKRMap> rMapList, IAtomContainer graph, int key)
focal_class.full_signature: public static IAtomContainer project(List<CDKRMap> rMapList, IAtomContainer graph, int key)
focal_class.identifier: project
focal_class.modifiers: public static
focal_class.parameters: (List<CDKRMap> rMapList, IAtomContainer graph, int key)
focal_class.return: IAtomContainer
focal_class.signature: IAtomContainer project(List<CDKRMap> rMapList, IAtomContainer graph, int key)
focal_class.class_method_signature: CDKMCS.projectList(List<List<CDKRMap>> rMapsList, IAtomContainer graph, int key)
focal_class.full_signature: public static ArrayList<IAtomContainer> projectList(List<List<CDKRMap>> rMapsList, IAtomContainer graph, int key)
focal_class.identifier: projectList
focal_class.modifiers: public static
focal_class.parameters: (List<List<CDKRMap>> rMapsList, IAtomContainer graph, int key)
focal_class.return: ArrayList<IAtomContainer>
focal_class.signature: ArrayList<IAtomContainer> projectList(List<List<CDKRMap>> rMapsList, IAtomContainer graph, int key)
focal_class.class_method_signature: CDKMCS.getMaximum(ArrayList<IAtomContainer> graphList, boolean shouldMatchBonds)
focal_class.full_signature: private static List<IAtomContainer> getMaximum(ArrayList<IAtomContainer> graphList, boolean shouldMatchBonds)
focal_class.identifier: getMaximum
focal_class.modifiers: private static
focal_class.parameters: (ArrayList<IAtomContainer> graphList, boolean shouldMatchBonds)
focal_class.return: List<IAtomContainer>
focal_class.signature: List<IAtomContainer> getMaximum(ArrayList<IAtomContainer> graphList, boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.checkSingleAtomCases(IAtomContainer sourceGraph, IAtomContainer targetGraph)
focal_class.full_signature: public static List<CDKRMap> checkSingleAtomCases(IAtomContainer sourceGraph, IAtomContainer targetGraph)
focal_class.identifier: checkSingleAtomCases
focal_class.modifiers: public static
focal_class.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph)
focal_class.return: List<CDKRMap>
focal_class.signature: List<CDKRMap> checkSingleAtomCases(IAtomContainer sourceGraph, IAtomContainer targetGraph)
focal_class.class_method_signature: CDKMCS.makeAtomsMapsOfBondsMaps(List<List<CDKRMap>> list, IAtomContainer sourceGraph,
              IAtomContainer targetGraph)
focal_class.full_signature: public static List<List<CDKRMap>> makeAtomsMapsOfBondsMaps(List<List<CDKRMap>> list, IAtomContainer sourceGraph,
              IAtomContainer targetGraph)
focal_class.identifier: makeAtomsMapsOfBondsMaps
focal_class.modifiers: public static
focal_class.parameters: (List<List<CDKRMap>> list, IAtomContainer sourceGraph,
              IAtomContainer targetGraph)
focal_class.return: List<List<CDKRMap>>
focal_class.signature: List<List<CDKRMap>> makeAtomsMapsOfBondsMaps(List<List<CDKRMap>> list, IAtomContainer sourceGraph,
              IAtomContainer targetGraph)
focal_class.class_method_signature: CDKMCS.makeAtomsMapOfBondsMap(List<CDKRMap> list, IAtomContainer sourceGraph,
              IAtomContainer targetGraph)
focal_class.full_signature: public static List<CDKRMap> makeAtomsMapOfBondsMap(List<CDKRMap> list, IAtomContainer sourceGraph,
              IAtomContainer targetGraph)
focal_class.identifier: makeAtomsMapOfBondsMap
focal_class.modifiers: public static
focal_class.parameters: (List<CDKRMap> list, IAtomContainer sourceGraph,
              IAtomContainer targetGraph)
focal_class.return: List<CDKRMap>
focal_class.signature: List<CDKRMap> makeAtomsMapOfBondsMap(List<CDKRMap> list, IAtomContainer sourceGraph,
              IAtomContainer targetGraph)
focal_class.class_method_signature: CDKMCS.nodeConstructor(CDKRGraph graph, IAtomContainer ac1, IAtomContainer ac2,
              boolean shouldMatchBonds)
focal_class.full_signature: private static void nodeConstructor(CDKRGraph graph, IAtomContainer ac1, IAtomContainer ac2,
              boolean shouldMatchBonds)
focal_class.identifier: nodeConstructor
focal_class.modifiers: private static
focal_class.parameters: (CDKRGraph graph, IAtomContainer ac1, IAtomContainer ac2,
              boolean shouldMatchBonds)
focal_class.return: void
focal_class.signature: void nodeConstructor(CDKRGraph graph, IAtomContainer ac1, IAtomContainer ac2,
              boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.isMatchFeasible(IAtomContainer ac1, IBond bondA1, IAtomContainer ac2, IBond bondA2,
              boolean shouldMatchBonds)
focal_class.full_signature: private static boolean isMatchFeasible(IAtomContainer ac1, IBond bondA1, IAtomContainer ac2, IBond bondA2,
              boolean shouldMatchBonds)
focal_class.identifier: isMatchFeasible
focal_class.modifiers: private static
focal_class.parameters: (IAtomContainer ac1, IBond bondA1, IAtomContainer ac2, IBond bondA2,
              boolean shouldMatchBonds)
focal_class.return: boolean
focal_class.signature: boolean isMatchFeasible(IAtomContainer ac1, IBond bondA1, IAtomContainer ac2, IBond bondA2,
              boolean shouldMatchBonds)
focal_class.class_method_signature: CDKMCS.arcConstructor(CDKRGraph graph, IAtomContainer ac1, IAtomContainer ac2)
focal_class.full_signature: private static void arcConstructor(CDKRGraph graph, IAtomContainer ac1, IAtomContainer ac2)
focal_class.identifier: arcConstructor
focal_class.modifiers: private static
focal_class.parameters: (CDKRGraph graph, IAtomContainer ac1, IAtomContainer ac2)
focal_class.return: void
focal_class.signature: void arcConstructor(CDKRGraph graph, IAtomContainer ac1, IAtomContainer ac2)
focal_class.class_method_signature: CDKMCS.hasCommonAtom(IBond bondA, IBond bondB)
focal_class.full_signature: private static boolean hasCommonAtom(IBond bondA, IBond bondB)
focal_class.identifier: hasCommonAtom
focal_class.modifiers: private static
focal_class.parameters: (IBond bondA, IBond bondB)
focal_class.return: boolean
focal_class.signature: boolean hasCommonAtom(IBond bondA, IBond bondB)
focal_class.class_method_signature: CDKMCS.getCommonSymbol(IBond bondA, IBond bondB)
focal_class.full_signature: private static String getCommonSymbol(IBond bondA, IBond bondB)
focal_class.identifier: getCommonSymbol
focal_class.modifiers: private static
focal_class.parameters: (IBond bondA, IBond bondB)
focal_class.return: String
focal_class.signature: String getCommonSymbol(IBond bondA, IBond bondB)
focal_class.class_method_signature: CDKMCS.queryAdjacency(IBond bondA1, IBond bondB1, IBond bondA2, IBond bondB2)
focal_class.full_signature: private static boolean queryAdjacency(IBond bondA1, IBond bondB1, IBond bondA2, IBond bondB2)
focal_class.identifier: queryAdjacency
focal_class.modifiers: private static
focal_class.parameters: (IBond bondA1, IBond bondB1, IBond bondA2, IBond bondB2)
focal_class.return: boolean
focal_class.signature: boolean queryAdjacency(IBond bondA1, IBond bondB1, IBond bondA2, IBond bondB2)
focal_class.class_method_signature: CDKMCS.queryAdjacencyAndOrder(IBond bond1, IBond bond2, IBond queryBond1, IBond queryBond2)
focal_class.full_signature: private static boolean queryAdjacencyAndOrder(IBond bond1, IBond bond2, IBond queryBond1, IBond queryBond2)
focal_class.identifier: queryAdjacencyAndOrder
focal_class.modifiers: private static
focal_class.parameters: (IBond bond1, IBond bond2, IBond queryBond1, IBond queryBond2)
focal_class.return: boolean
focal_class.signature: boolean queryAdjacencyAndOrder(IBond bond1, IBond bond2, IBond queryBond1, IBond queryBond2)
focal_class.class_method_signature: CDKMCS.testSubgraphHeuristics(IAtomContainer ac1, IAtomContainer ac2)
focal_class.full_signature: private static boolean testSubgraphHeuristics(IAtomContainer ac1, IAtomContainer ac2)
focal_class.identifier: testSubgraphHeuristics
focal_class.modifiers: private static
focal_class.parameters: (IAtomContainer ac1, IAtomContainer ac2)
focal_class.return: boolean
focal_class.signature: boolean testSubgraphHeuristics(IAtomContainer ac1, IAtomContainer ac2)
focal_class.class_method_signature: CDKMCS.getTimeout()
focal_class.full_signature: protected synchronized static double getTimeout()
focal_class.identifier: getTimeout
focal_class.modifiers: protected synchronized static
focal_class.parameters: ()
focal_class.return: double
focal_class.signature: double getTimeout()
focal_class.class_method_signature: CDKMCS.getTimeManager()
focal_class.full_signature: protected synchronized static TimeManager getTimeManager()
focal_class.identifier: getTimeManager
focal_class.modifiers: protected synchronized static
focal_class.parameters: ()
focal_class.return: TimeManager
focal_class.signature: TimeManager getTimeManager()
focal_class.class_method_signature: CDKMCS.setTimeManager(TimeManager aTimeManager)
focal_class.full_signature: protected synchronized static void setTimeManager(TimeManager aTimeManager)
focal_class.identifier: setTimeManager
focal_class.modifiers: protected synchronized static
focal_class.parameters: (TimeManager aTimeManager)
focal_class.return: void
focal_class.signature: void setTimeManager(TimeManager aTimeManager)
focal_class.class_method_signature: CDKMCS.isTimeOut()
focal_class.full_signature: public synchronized static boolean isTimeOut()
focal_class.identifier: isTimeOut
focal_class.modifiers: public synchronized static
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isTimeOut()
focal_method.body: public static boolean isSubgraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
              throws CDKException {
          if (sourceGraph instanceof IQueryAtomContainer) {
              throw new CDKException("The first IAtomContainer must not be an IQueryAtomContainer");
          }
  
          if (targetGraph.getAtomCount() > sourceGraph.getAtomCount()) {
              return false;
          }
          // test for single atom case
          if (targetGraph.getAtomCount() == 1) {
              IAtom atom = targetGraph.getAtom(0);
              for (int i = 0; i < sourceGraph.getAtomCount(); i++) {
                  IAtom atom2 = sourceGraph.getAtom(i);
                  if (atom instanceof IQueryAtom) {
                      IQueryAtom qAtom = (IQueryAtom) atom;
                      if (qAtom.matches(atom2)) {
                          return true;
                      }
                  } else if (atom2 instanceof IQueryAtom) {
                      IQueryAtom qAtom = (IQueryAtom) atom2;
                      if (qAtom.matches(atom)) {
                          return true;
                      }
                  } else {
                      if (atom2.getSymbol().equals(atom.getSymbol())) {
                          return true;
                      }
                  }
              }
              return false;
          }
          if (!testSubgraphHeuristics(sourceGraph, targetGraph)) {
              return false;
          }
          return (getSubgraphMap(sourceGraph, targetGraph, shouldMatchBonds) != null);
      }
focal_method.class_method_signature: CDKMCS.isSubgraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_method.full_signature: public static boolean isSubgraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_method.identifier: isSubgraph
focal_method.invocations: getAtomCount getAtomCount getAtomCount getAtom getAtomCount getAtom matches matches equals getSymbol getSymbol testSubgraphHeuristics getSubgraphMap
focal_method.modifiers: public static
focal_method.parameters: (IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)
focal_method.return: boolean
focal_method.signature: boolean isSubgraph(IAtomContainer sourceGraph, IAtomContainer targetGraph, boolean shouldMatchBonds)