/** * Returns the minimum bond order for a List of bonds, given an iterator * to the list. * * @param bonds An iterator for the list of bonds * @return The minimum bond order found * @see #getMinimumBondOrder(java.util.List) */ public static IBond.Order getMinimumBondOrder(Iterator<IBond> bonds) { IBond.Order minOrder = IBond.Order.SEXTUPLE; while (bonds.hasNext()) { IBond bond = bonds.next(); if (isLowerOrder(bond.getOrder(), minOrder)) minOrder = bond.getOrder(); } return minOrder; }
/** * Returns the minimum bond order for a List of bonds, given an iterator * to the list. * * @param bonds An iterator for the list of bonds * @return The minimum bond order found * @see #getMinimumBondOrder(java.util.List) */ public static IBond.Order getMinimumBondOrder(Iterator<IBond> bonds) { IBond.Order minOrder = IBond.Order.SEXTUPLE; while (bonds.hasNext()) { IBond bond = bonds.next(); if (isLowerOrder(bond.getOrder(), minOrder)) minOrder = bond.getOrder(); } return minOrder; }
@Test public void testIsLowerOrder_IBond_Order_IBond_Order() { Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.SINGLE, IBond.Order.SINGLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.SINGLE, IBond.Order.DOUBLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.SINGLE, IBond.Order.TRIPLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.SINGLE, IBond.Order.QUADRUPLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.SINGLE, IBond.Order.QUINTUPLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.SINGLE, IBond.Order.SEXTUPLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.DOUBLE, IBond.Order.SINGLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.DOUBLE, IBond.Order.DOUBLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.DOUBLE, IBond.Order.TRIPLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.DOUBLE, IBond.Order.QUADRUPLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.DOUBLE, IBond.Order.QUINTUPLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.DOUBLE, IBond.Order.SEXTUPLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.TRIPLE, IBond.Order.SINGLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.TRIPLE, IBond.Order.DOUBLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.TRIPLE, IBond.Order.TRIPLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.TRIPLE, IBond.Order.QUADRUPLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.TRIPLE, IBond.Order.QUINTUPLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.TRIPLE, IBond.Order.SEXTUPLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.QUADRUPLE, IBond.Order.SINGLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.QUADRUPLE, IBond.Order.DOUBLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.QUADRUPLE, IBond.Order.TRIPLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.QUADRUPLE, IBond.Order.QUADRUPLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.QUADRUPLE, IBond.Order.QUINTUPLE)); Assert.assertTrue(BondManipulator.isLowerOrder(IBond.Order.QUADRUPLE, IBond.Order.SEXTUPLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.QUINTUPLE, IBond.Order.SINGLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.QUINTUPLE, IBond.Order.DOUBLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.QUINTUPLE, IBond.Order.TRIPLE)); Assert.assertFalse(BondManipulator.isLowerOrder(IBond.Order.QUINTUPLE, IBond.Order.QUADRUPLE));
if (couldMatchAtomType(atomContainer, partner, atomTypes2[atCounter2])) { logger.debug(" with atom type: ", aType2); if (!BondManipulator.isLowerOrder(bond.getOrder(), aType2.getMaxBondOrder()) || !BondManipulator.isLowerOrder(bond.getOrder(), aType1.getMaxBondOrder())) { logger.debug("Bond order not increased: atoms has reached (or exceeded) maximum bond order for this atom type"); } else if (BondManipulator.isLowerOrder(bond.getOrder(), aType2.getMaxBondOrder()) && BondManipulator.isLowerOrder(bond.getOrder(), aType1.getMaxBondOrder())) { BondManipulator.increaseBondOrder(bond); logger.debug("Bond order now " + bond.getOrder());
if (couldMatchAtomType(atomContainer, partner, atomTypes2[atCounter2])) { logger.debug(" with atom type: ", aType2); if (!BondManipulator.isLowerOrder(bond.getOrder(), aType2.getMaxBondOrder()) || !BondManipulator.isLowerOrder(bond.getOrder(), aType1.getMaxBondOrder())) { logger.debug("Bond order not increased: atoms has reached (or exceeded) maximum bond order for this atom type"); } else if (BondManipulator.isLowerOrder(bond.getOrder(), aType2.getMaxBondOrder()) && BondManipulator.isLowerOrder(bond.getOrder(), aType1.getMaxBondOrder())) { BondManipulator.increaseBondOrder(bond); logger.debug("Bond order now " + bond.getOrder());
if (couldMatchAtomType(atomContainer, partner, atomTypes2[atCounter2])) { logger.debug(" with atom type: ", aType2); if (BondManipulator.isLowerOrder(bond.getOrder(), aType2.getMaxBondOrder()) && BondManipulator.isLowerOrder(bond.getOrder(), aType1.getMaxBondOrder())) { bond.setOrder(BondManipulator.increaseBondOrder(bond.getOrder())); logger.debug("Bond order now ", bond.getOrder());
if (couldMatchAtomType(atomContainer, partner, atomTypes2[atCounter2])) { logger.debug(" with atom type: ", aType2); if (BondManipulator.isLowerOrder(bond.getOrder(), aType2.getMaxBondOrder()) && BondManipulator.isLowerOrder(bond.getOrder(), aType1.getMaxBondOrder())) { bond.setOrder(BondManipulator.increaseBondOrder(bond.getOrder())); logger.debug("Bond order now ", bond.getOrder());
if (atom0.getSymbol().equals("H") || atom1.getSymbol().equals("H")) continue; if (bond.getOrder() == Order.SINGLE) { if ((BondManipulator.isLowerOrder(ac.getMaximumBondOrder(atom0), IBond.Order.TRIPLE)) && (BondManipulator.isLowerOrder(ac.getMaximumBondOrder(atom1), IBond.Order.TRIPLE))) { if (!bond.getFlag(CDKConstants.ISINRING)) {
if (atom0.getSymbol().equals("H") || atom1.getSymbol().equals("H")) continue; if (bond.getOrder() == Order.SINGLE) { if ((BondManipulator.isLowerOrder(ac.getMaximumBondOrder(atom0), IBond.Order.TRIPLE)) && (BondManipulator.isLowerOrder(ac.getMaximumBondOrder(atom1), IBond.Order.TRIPLE))) { if (!bond.getFlag(CDKConstants.ISINRING)) {