### Question:
ChemicalFilters extends BaseFilter { public synchronized void sortResultsByStereoAndBondMatch() throws CDKException { Map<Integer, AtomAtomMapping> allStereoAtomMCS = Collections.synchronizedMap(new HashMap<>()); Map<Integer, Integer> fragmentScoreMap = Collections.synchronizedSortedMap(new TreeMap<>()); Map<Integer, Double> energyScoreMap = Collections.synchronizedSortedMap(new TreeMap<>()); Map<Integer, Double> stereoScoreMap = Collections.synchronizedMap(new HashMap<>()); initializeMaps( allStereoAtomMCS, stereoScoreMap, fragmentScoreMap, energyScoreMap); double highestStereoScore = stereoFilter.sortResults(allStereoAtomMCS, stereoScoreMap); if (highestStereoScore != 0) { boolean flag = false; double secondhigestStereoScore = highestStereoScore; for (Integer key : stereoScoreMap.keySet()) { if (secondhigestStereoScore < highestStereoScore && stereoScoreMap.get(key) > secondhigestStereoScore) { secondhigestStereoScore = stereoScoreMap.get(key); } else if (secondhigestStereoScore == highestStereoScore && stereoScoreMap.get(key) < secondhigestStereoScore) { secondhigestStereoScore = stereoScoreMap.get(key); } } if (!stereoScoreMap.isEmpty()) { flag = true; clear(); } int counter = 0; for (Integer I : stereoScoreMap.keySet()) { if (highestStereoScore == stereoScoreMap.get(I)) { addSolution(counter, I, allStereoAtomMCS, stereoScoreMap, energyScoreMap, fragmentScoreMap); counter++; } } if (flag) { clear(allStereoAtomMCS, stereoScoreMap, fragmentScoreMap, energyScoreMap); } } } ChemicalFilters(
            IAtomContainer sourceMol,
            IAtomContainer targetMol);  ChemicalFilters(
            IQueryAtomContainer sourceMol,
            IAtomContainer targetMol); synchronized void sortResultsByEnergies(); synchronized void sortResultsByFragments(); synchronized void sortResultsByStereoAndBondMatch(); synchronized List<Double> getSortedEnergy(); synchronized List<Integer> getSortedFragment(); synchronized List<Double> getStereoMatches();  }### Answer:
@Test public void testSortResultsByStereoAndBondMatch() throws Exception { SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer target = sp.parseSmiles("C\\C=C/OCC=C"); IAtomContainer queryac = sp.parseSmiles("CCCOCC(C)=C"); Isomorphism smsd = new Isomorphism(queryac, target, Algorithm.DEFAULT, false, false, false); smsd.setChemFilters(false, false, false); assertEquals(4, smsd.getAllAtomMapping().size()); Isomorphism smsd1 = new Isomorphism(queryac, target, Algorithm.DEFAULT, false, false, false); smsd1.setChemFilters(true, false, false); assertEquals(1, smsd1.getAllAtomMapping().size()); }