/** * {@inheritDoc} */ @Override public Order getOrder() { return bond.getOrder(); }
/** * Check to see if a bond is a single bond. * * @param bond the bond to check * @return true if its order is single */ private boolean isSingle(IBond bond) { return bond.getOrder() == IBond.Order.SINGLE; }
/** * Returns the maximum bond order for the two bonds. * * @param firstBond first bond to compare * @param secondBond second bond to compare * @return The maximum bond order found */ public static IBond.Order getMaximumBondOrder(IBond firstBond, IBond secondBond) { if (firstBond == null || secondBond == null) throw new IllegalArgumentException("null instance of IBond provided"); return getMaximumBondOrder(firstBond.getOrder(), secondBond.getOrder()); }
@Override public boolean matches(IBond bond) { if (this.getOrder() == bond.getOrder()) { // bond orders match return true; } // else return false; };
private static IAtom getOtherAtom(IAtomContainer mol, IAtom atom, IAtom other) { List<IBond> bonds = mol.getConnectedBondsList(atom); if (bonds.size() != 2) return null; if (bonds.get(0).contains(other)) return bonds.get(1).getOrder() == IBond.Order.DOUBLE ? bonds.get(1).getOther(atom) : null; return bonds.get(0).getOrder() == IBond.Order.DOUBLE ? bonds.get(0).getOther(atom) : null; }
/** * Decrease the order of a bond. * * @param bond The bond in question * @see #decreaseBondOrder(org.openscience.cdk.interfaces.IBond.Order) * @see #increaseBondOrder(org.openscience.cdk.interfaces.IBond.Order) * @see #increaseBondOrder(org.openscience.cdk.interfaces.IBond.Order) */ public static void decreaseBondOrder(IBond bond) { bond.setOrder(decreaseBondOrder(bond.getOrder())); }
@Test public void testInsaturationF() { Expr expr = new Expr(INSATURATION, 2); IAtom atom = mock(IAtom.class); IBond b1 = mock(IBond.class); IBond b2 = mock(IBond.class); when(b1.getOrder()).thenReturn(IBond.Order.SINGLE); when(b2.getOrder()).thenReturn(IBond.Order.DOUBLE); when(atom.bonds()).thenReturn(Arrays.asList(b1, b2)); assertFalse(expr.matches(atom)); }
@Test public void testValenceNullOrderT() { Expr expr = new Expr(VALENCE, 4); IAtom a1 = mock(IAtom.class); IBond b1 = mock(IBond.class); IBond b2 = mock(IBond.class); when(a1.getImplicitHydrogenCount()).thenReturn(1); when(b1.getOrder()).thenReturn(IBond.Order.DOUBLE); when(b2.getOrder()).thenReturn(null); when(a1.bonds()).thenReturn(Arrays.asList(b1, b2)); assertFalse(expr.matches(a1)); }
@Test public void testUnsaturatedT() { Expr expr = new Expr(UNSATURATED); IAtom atom = mock(IAtom.class); IBond bond = mock(IBond.class); when(bond.getOrder()).thenReturn(IBond.Order.DOUBLE); when(atom.bonds()).thenReturn(Collections.singletonList(bond)); assertTrue(expr.matches(atom)); }
@Test public void testBondOrderNullF() { Expr expr = new Expr(ALIPHATIC_ORDER, 2); IBond bond = mock(IBond.class); when(bond.getOrder()).thenReturn(null); assertFalse(expr.matches(bond)); }
@Test public void shortLineWithPadding() throws Exception { String input = " 1 3 1 0 "; IBond bond = reader.readBondFast(input, builder, atoms, new int[atoms.length], 1); assertThat(bond.getBegin(), is(atoms[0])); assertThat(bond.getEnd(), is(atoms[2])); assertThat(bond.getOrder(), is(IBond.Order.SINGLE)); assertThat(bond.getStereo(), is(IBond.Stereo.NONE)); assertFalse(bond.getFlag(CDKConstants.ISAROMATIC)); assertFalse(bond.getFlag(CDKConstants.SINGLE_OR_DOUBLE)); }
@Test public void skeleton() throws Exception { IAtomContainer adenine = TestMoleculeFactory.makeAdenine(); IAtomContainer skeleton = AtomContainerManipulator.skeleton(adenine); assertThat(skeleton, is(not(sameInstance(adenine)))); for (IBond bond : skeleton.bonds()) assertThat(bond.getOrder(), is(IBond.Order.SINGLE)); for (int i = 0; i < skeleton.getAtomCount(); i++) { assertThat(skeleton.getAtom(i).getSymbol(), is(adenine.getAtom(i).getSymbol())); } }
/** * @cdk.bug 1875949 */ @org.junit.Test public void testResonanceStructure() throws Exception { String smiles = "[F+]=C-[C-]"; IAtomContainer mol = sp.parseSmiles(smiles); Assert.assertEquals(3, mol.getAtomCount()); Assert.assertEquals(IBond.Order.DOUBLE, mol.getBond(0).getOrder()); Assert.assertEquals(+1, mol.getAtom(0).getFormalCharge().intValue()); Assert.assertEquals(-1, mol.getAtom(2).getFormalCharge().intValue()); }
@Test public void testBondAromatic() throws Exception { String cmlString = "<molecule id='m1'><atomArray atomID='a1 a2'/><bondArray atomRef1='a1' atomRef2='a2' order='A'/></molecule>"; IChemFile chemFile = parseCMLString(cmlString); IAtomContainer mol = checkForSingleMoleculeFile(chemFile); Assert.assertEquals(2, mol.getAtomCount()); Assert.assertEquals(1, mol.getBondCount()); org.openscience.cdk.interfaces.IBond bond = mol.getBond(0); Assert.assertEquals(Order.SINGLE, bond.getOrder()); Assert.assertTrue(bond.getFlag(CDKConstants.ISAROMATIC)); }
@Test public void testBondAromatic() throws Exception { String cmlString = "<molecule id='m1'><atomArray atomID='a1 a2'/><bondArray atomRef1='a1' atomRef2='a2' order='A'/></molecule>"; IChemFile chemFile = parseCMLString(cmlString); IAtomContainer mol = checkForSingleMoleculeFile(chemFile); Assert.assertEquals(2, mol.getAtomCount()); Assert.assertEquals(1, mol.getBondCount()); org.openscience.cdk.interfaces.IBond bond = mol.getBond(0); Assert.assertEquals(Order.SINGLE, bond.getOrder()); Assert.assertTrue(bond.getFlag(CDKConstants.ISAROMATIC)); }
@Test public void testBond() { IBond bond = new Bond(); Assert.assertEquals(0, bond.getAtomCount()); Assert.assertNull(bond.getBegin()); Assert.assertNull(bond.getEnd()); Assert.assertNull(bond.getOrder()); Assert.assertEquals(IBond.Stereo.NONE, bond.getStereo()); }
@Test public void makeEdgeTest_singleBond() { MoleculeFromSignatureBuilder builder = new MoleculeFromSignatureBuilder(SilentChemObjectBuilder.getInstance()); builder.makeGraph(); builder.makeVertex("C"); builder.makeVertex("C"); builder.makeEdge(0, 1, "C", "C", ""); IAtomContainer product = builder.getAtomContainer(); Assert.assertEquals(2, product.getAtomCount()); Assert.assertEquals(1, product.getBondCount()); Assert.assertEquals(IBond.Order.SINGLE, product.getBond(0).getOrder()); }
@Test public void testBond_IAtom_IAtom() { IChemObject object = newChemObject(); IAtom c = object.getBuilder().newInstance(IAtom.class, "C"); IAtom o = object.getBuilder().newInstance(IAtom.class, "O"); IBond bond = new Bond(c, o); Assert.assertEquals(2, bond.getAtomCount()); Assert.assertEquals(c, bond.getBegin()); Assert.assertEquals(o, bond.getEnd()); Assert.assertEquals(IBond.Order.SINGLE, bond.getOrder()); Assert.assertEquals(IBond.Stereo.NONE, bond.getStereo()); }
@Test public void testBond_IAtom_IAtom_IBond_Order() { IChemObject object = newChemObject(); IAtom c = object.getBuilder().newInstance(IAtom.class, "C"); IAtom o = object.getBuilder().newInstance(IAtom.class, "O"); IBond bond = new Bond(c, o, IBond.Order.DOUBLE); Assert.assertEquals(2, bond.getAtomCount()); Assert.assertEquals(c, bond.getBegin()); Assert.assertEquals(o, bond.getEnd()); Assert.assertTrue(bond.getOrder() == IBond.Order.DOUBLE); Assert.assertEquals(IBond.Stereo.NONE, bond.getStereo()); }
@Test public void testBond_IAtom_IAtom() { IChemObject object = newChemObject(); IAtom c = object.getBuilder().newInstance(IAtom.class, "C"); IAtom o = object.getBuilder().newInstance(IAtom.class, "O"); IBond bond = new Bond(c, o); Assert.assertEquals(2, bond.getAtomCount()); Assert.assertEquals(c, bond.getBegin()); Assert.assertEquals(o, bond.getEnd()); Assert.assertEquals(IBond.Order.SINGLE, bond.getOrder()); Assert.assertEquals(IBond.Stereo.NONE, bond.getStereo()); }