/** * Returns true if the bond binds two atoms, and both atoms are SP2. */ private boolean isSP2Bond(IBond bond) { return bond.getAtomCount() == 2 && bond.getBegin().getHybridization() == Hybridization.SP2 && bond.getEnd().getHybridization() == Hybridization.SP2; } }
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; }
@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 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 tripleBond() throws Exception { String input = " 1 3 3 0 0 0 0"; IBond bond = reader.readBondFast(input, builder, atoms, new int[atoms.length], 1); assertThat(bond.getOrder(), is(IBond.Order.TRIPLE)); assertThat(bond.getStereo(), is(IBond.Stereo.NONE)); assertFalse(bond.getFlag(CDKConstants.ISAROMATIC)); assertFalse(bond.getFlag(CDKConstants.SINGLE_OR_DOUBLE)); }
public boolean matches(IBond bond) { IAtom atom1 = bond.getBegin(); IAtom atom2 = bond.getEnd(); if ((atom1.getSymbol().equalsIgnoreCase(symbol1) && atom2.getSymbol().equalsIgnoreCase(symbol2)) || (atom1.getSymbol().equalsIgnoreCase(symbol2) && atom2.getSymbol().equalsIgnoreCase(symbol1))) { if (bond.getOrder().compareTo(bondOrder) == 0) { return true; } } return false; } }
@Test public void testGetAtom_int() { IBond b = (IBond) newChemObject(); IAtom c = b.getBuilder().newInstance(IAtom.class, "C"); IAtom o = b.getBuilder().newInstance(IAtom.class, "O"); b.setAtom(c, 0); b.setAtom(o, 1); b.setOrder(Order.SINGLE); Assert.assertEquals(c, b.getBegin()); Assert.assertEquals(o, b.getEnd()); }
@Test public void testSetAtoms_arrayIAtom() { IBond b = (IBond) newChemObject(); IAtom[] atomsToAdd = new IAtom[2]; atomsToAdd[0] = b.getBuilder().newInstance(IAtom.class, "C"); atomsToAdd[1] = b.getBuilder().newInstance(IAtom.class, "O"); b.setAtoms(atomsToAdd); Assert.assertEquals(2, b.getAtomCount()); Assert.assertEquals(atomsToAdd[0], b.getBegin()); Assert.assertEquals(atomsToAdd[1], b.getEnd()); }
@Test public void testElevation_Atom_Up() throws Exception { IAtom a1 = mock(IAtom.class); IAtom a2 = mock(IAtom.class); IBond bond = mock(IBond.class); when(bond.getStereo()).thenReturn(IBond.Stereo.UP); when(bond.getBegin()).thenReturn(a1); when(bond.getEnd()).thenReturn(a2); assertThat(GeometricCumulativeDoubleBondFactory.elevation(bond, a1), is(+1)); assertThat(GeometricCumulativeDoubleBondFactory.elevation(bond, a2), is(-1)); }
@Test public void testGetOrder() { IBond b = (IBond) newChemObject(); IAtom c = b.getBuilder().newInstance(IAtom.class, "C"); IAtom o = b.getBuilder().newInstance(IAtom.class, "O"); b.setAtom(c, 0); b.setAtom(o, 1); b.setOrder(Order.DOUBLE); Assert.assertEquals(IBond.Order.DOUBLE, b.getOrder()); }
/** * {@inheritDoc} */ @Override public IAtom getOther(IAtom atom) { return bond.getOther(atom); }
private static void markRingAtomsAndBondsAromatic(IAtomContainer container) { for (IAtom atom : container.atoms()) atom.setFlag(CDKConstants.ISAROMATIC, true); for (IBond bond : container.bonds()) bond.setFlag(CDKConstants.ISAROMATIC, true); } }
private static void traverseRings(IAtomContainer mol, IAtom atom, IBond prev) { atom.setFlag(CDKConstants.VISITED, true); prev.setFlag(CDKConstants.VISITED, true); for (IBond bond : mol.getConnectedBondsList(atom)) { IAtom nbr = bond.getOther(atom); if (!nbr.getFlag(CDKConstants.VISITED)) traverseRings(mol, nbr, bond); else bond.setFlag(CDKConstants.VISITED, true); } }
@Test public void testContains_IAtom() { IBond b = (IBond) newChemObject(); IAtom c = b.getBuilder().newInstance(IAtom.class, "C"); IAtom o = b.getBuilder().newInstance(IAtom.class, "O"); b.setAtom(c, 0); b.setAtom(o, 1); b.setOrder(Order.SINGLE); Assert.assertTrue(b.contains(c)); Assert.assertTrue(b.contains(o)); }