### Question:
MCSPlusHandler extends AbstractMCSAlgorithm implements IMCSBase { @Override public synchronized void searchMCS(boolean shouldMatchBonds) { List<List<Integer>> mappings = null; try { if (source.getAtomCount() >= target.getAtomCount()) { mappings = new MCSPlus().getOverlaps(source, target, shouldMatchBonds); } else { flagExchange = true; mappings = new MCSPlus().getOverlaps(target, source, shouldMatchBonds); } PostFilter.filter(mappings); setAllMapping(); setAllAtomMapping(); setFirstMapping(); setFirstAtomMapping(); } catch (CDKException e) { mappings = null; } } MCSPlusHandler(); @Override synchronized void set(MolHandler source, MolHandler target); @Override void set(IQueryAtomContainer source, IAtomContainer target); @Override synchronized void searchMCS(boolean shouldMatchBonds); @Override synchronized List<Map<Integer, Integer>> getAllMapping(); @Override synchronized Map<Integer, Integer> getFirstMapping(); @Override synchronized List<Map<IAtom, IAtom>> getAllAtomMapping(); @Override synchronized Map<IAtom, IAtom> getFirstAtomMapping();  }### Answer:
@Test @Override 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 queryac = null; queryac = sp.parseSmiles("Nc1ccccc1"); MCSPlusHandler smsd1 = new MCSPlusHandler(); MolHandler mol1 = new MolHandler(queryac, true, true); MolHandler mol2 = new MolHandler(target, true, true); smsd1.set(mol1, mol2); smsd1.searchMCS(true); assertNotNull(smsd1.getFirstMapping()); } catch (InvalidSmilesException ex) { Logger.getLogger(MCSPlusHandlerTest.class.getName()).log(Level.SEVERE, null, ex); } }