/** * Ensure that sort is not called on an empty set. We mock the comparator * and verify the compare method is never called */ @Test public void testSort_empty() { IAtomContainerSet set = (IAtomContainerSet) newChemObject(); @SuppressWarnings("unchecked") Comparator<IAtomContainer> comparator = Mockito.mock(Comparator.class); set.sortAtomContainers(comparator); // verify the comparator was called 0 times verify(comparator, Mockito.times(0)).compare(any(IAtomContainer.class), any(IAtomContainer.class)); }
reaction.getReactants().sortAtomContainers(new Comparator<IAtomContainer>() { @Override public int compare(IAtomContainer a, IAtomContainer b) {
reaction.getReactants().sortAtomContainers(new Comparator<IAtomContainer>() { @Override public int compare(IAtomContainer a, IAtomContainer b) {
set.sortAtomContainers(new Comparator<IAtomContainer>() {
@Test public void testSortAtomContainers_Comparator() { IAtomContainerSet som = (IAtomContainerSet) newChemObject(); IAtomContainer ac1 = som.getBuilder().newInstance(IAtomContainer.class); IAtomContainer ac2 = som.getBuilder().newInstance(IAtomContainer.class); som.addAtomContainer(ac1); som.addAtomContainer(ac2); som.sortAtomContainers(new Comparator<IAtomContainer>() { @Override public int compare(IAtomContainer o1, IAtomContainer o2) { return 0; } }); Assert.assertEquals(2, som.getAtomContainerCount()); }
@Test public void testSortAtomContainers_WithMuliplier() { IAtomContainerSet som = (IAtomContainerSet) newChemObject(); IAtomContainer ac1 = som.getBuilder().newInstance(IAtomContainer.class); som.addAtomContainer(ac1, 2.0); ac1.setProperty("multiplierSortCode", "2"); IAtomContainer ac2 = som.getBuilder().newInstance(IAtomContainer.class); som.addAtomContainer(ac2, 1.0); ac2.setProperty("multiplierSortCode", "1"); som.sortAtomContainers(new Comparator<IAtomContainer>() { @Override public int compare(IAtomContainer o1, IAtomContainer o2) { return ((String) o1.getProperty("multiplierSortCode")).compareTo((String) o2 .getProperty("multiplierSortCode")); } }); Assert.assertEquals(2, som.getAtomContainerCount()); IAtomContainer newFirstAC = som.getAtomContainer(0); Assert.assertEquals(newFirstAC.getProperty("multiplierSortCode"), "1"); // OK, sorting worked as intended // The multiplier should have been resorted too: Assert.assertEquals(1.0, som.getMultiplier(newFirstAC), 0.00001); }
set.sortAtomContainers(new Comparator<IAtomContainer>() {
/** * @cdk.bug 3093241 */ @Test public void testSortAtomContainers_Comparator_Null() { IAtomContainerSet som = (IAtomContainerSet) newChemObject(); IChemObjectBuilder builder = som.getBuilder(); IAtomContainer con1 = builder.newInstance(IAtomContainer.class); con1.addAtom(builder.newInstance(IAtom.class, "C")); con1.addAtom(builder.newInstance(IAtom.class, "C")); IAtomContainer con2 = builder.newInstance(IAtomContainer.class); con2.addAtom(builder.newInstance(IAtom.class, "C")); som.addAtomContainer(con1); som.addAtomContainer(con2); Assert.assertNotNull(som.getAtomContainer(0)); Assert.assertNotNull(som.getAtomContainer(1)); AtomContainerComparator comparator = new AtomContainerComparator(); som.sortAtomContainers(comparator); Assert.assertNotNull(som.getAtomContainer(0)); Assert.assertEquals(1, som.getAtomContainer(0).getAtomCount()); Assert.assertNotNull(som.getAtomContainer(1)); Assert.assertEquals(2, som.getAtomContainer(1).getAtomCount()); }