### Question:
CDKMCSHandler implements IResults { private synchronized boolean searchMCS() { CDKRMapHandler rmap = new CDKRMapHandler(); List<Map<Integer, Integer>> solutions; try { if (source instanceof IQueryAtomContainer) { rOnPFlag = false; solutions = rmap.calculateOverlapsAndReduce(target, (IQueryAtomContainer) source); rOnPFlag = false; } else if (source.getAtomCount() < target.getAtomCount()) { rOnPFlag = false; solutions = rmap.calculateOverlapsAndReduce(target, source, shouldMatchBonds, shouldMatchRings, matchAtomType); } else { rOnPFlag = true; solutions = rmap.calculateOverlapsAndReduce(source, target, shouldMatchBonds, shouldMatchRings, matchAtomType); } setAllMapping(solutions); setAllAtomMapping(); } catch (CDKException e) { rmap = null; System.err.println("WARNING: " + e.getMessage()); } return rmap.isTimeout(); } CDKMCSHandler(IAtomContainer source, IAtomContainer target,
            boolean shouldMatchBonds, boolean shouldMatchRings, boolean matchAtomType);  CDKMCSHandler(IAtomContainer source, IAtomContainer target); @Override synchronized List<AtomAtomMapping> getAllAtomMapping(); @Override synchronized AtomAtomMapping getFirstAtomMapping(); boolean isTimeout(); void setTimeout(boolean timeout);  }### Answer:
@Test public void testSearchMCS() { try { SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer target = null; target = sp.parseSmiles("C\\C=C/Nc1cccc(c1)N(O)\\C=C\\C\\C=C\\C=C/C"); IAtomContainer query = null; query = sp.parseSmiles("Nc1ccccc1"); CDKMCSHandler smsd1 = new CDKMCSHandler(query, target, true, false,false); assertNotNull(smsd1.getFirstAtomMapping()); } catch (InvalidSmilesException ex) { Logger.getLogger(CDKMCSHandlerTest.class.getName()).log(Level.SEVERE, null, ex); } }