/** * {@inheritDoc} */ @Override public void setAtom(IAtom atom, int position) { bond.setAtom(atom, position); }
@Test public void changeConnectedAtomsAfterAddBond() { IAtomContainer mol = (IAtomContainer) newChemObject(); IAtom a1 = mol.getBuilder().newAtom(); IAtom a2 = mol.getBuilder().newAtom(); IAtom a3 = mol.getBuilder().newAtom(); IBond b1 = mol.getBuilder().newBond(); mol.addAtom(a1); mol.addAtom(a2); mol.addAtom(a3); b1.setAtoms(new IAtom[]{a1, a2}); mol.addBond(b1); assertThat(mol.getConnectedBondsCount(a1), is(1)); assertThat(mol.getConnectedBondsCount(a2), is(1)); assertThat(mol.getConnectedBondsCount(a3), is(0)); mol.getBond(0).setAtom(a3, 0); assertThat(mol.getConnectedBondsCount(a1), is(0)); assertThat(mol.getConnectedBondsCount(a2), is(1)); assertThat(mol.getConnectedBondsCount(a3), is(1)); mol.getBond(0).setAtom(a1, 1); assertThat(mol.getConnectedBondsCount(a1), is(1)); assertThat(mol.getConnectedBondsCount(a2), is(0)); assertThat(mol.getConnectedBondsCount(a3), is(1)); }
/** * {@inheritDoc} */ @Override public void setAtom(IAtom atom, int position) { bond.setAtom(atom, position); }
private void processBondAtomIDs(int pos) throws Exception { String line = input.readLine(); int bondIndex = 0; while (input.ready() && line != null) { if (line.indexOf('}') != -1) { // done return; } else { // logger.debug("Found an atom ID: " + line); // logger.debug(" index: " + atomIndex); IBond bond = getBond(bondIndex); String id = getValue(line); IAtom atom = (IAtom) atomIDs.get(id); if (atom == null) { throw new CDKException("File is corrupt: atom ID does not exist " + id); } bond.setAtom(atom, pos); bondIndex++; } line = input.readLine(); } }
private void processBondAtomIDs(int pos) throws Exception { String line = input.readLine(); int bondIndex = 0; while (input.ready() && line != null) { if (line.indexOf('}') != -1) { // done return; } else { // logger.debug("Found an atom ID: " + line); // logger.debug(" index: " + atomIndex); IBond bond = getBond(bondIndex); String id = getValue(line); IAtom atom = (IAtom) atomIDs.get(id); if (atom == null) { throw new CDKException("File is corrupt: atom ID does not exist " + id); } bond.setAtom(atom, pos); bondIndex++; } line = input.readLine(); } }
@Test @Override public void testCompare_Object() { 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); IBond b2 = (IBond) newChemObject(); b2.setAtom(c, 0); b2.setAtom(o, 1); b2.setOrder(Order.SINGLE); Assert.assertTrue(b.compare(b2)); }
@Test public void testUnSetAtom() { IBond b = (IBond) newChemObject(); b.setAtom(b.getBuilder().newInstance(IAtom.class, "C"), 0); Assert.assertEquals(1, b.getAtomCount()); b.setAtom(b.getBuilder().newInstance(IAtom.class, "C"), 0); Assert.assertEquals(1, b.getAtomCount()); b.setAtom(null, 0); Assert.assertEquals(0, b.getAtomCount()); b.setAtom(null, 0); Assert.assertEquals(0, b.getAtomCount()); }
@Test public void testOverwriteAtom() { IBond b = (IBond) newChemObject(); b.setAtom(b.getBuilder().newInstance(IAtom.class, "C"), 0); Assert.assertEquals(1, b.getAtomCount()); b.setAtom(b.getBuilder().newInstance(IAtom.class, "C"), 0); Assert.assertEquals(1, b.getAtomCount()); // test overwrite with null b.setAtom(null, 0); Assert.assertEquals(0, b.getAtomCount()); b.setAtom(null, 0); Assert.assertEquals(0, b.getAtomCount()); }
@Test public void testAtoms() { 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); Iterator<IAtom> atoms = b.atoms().iterator(); Assert.assertEquals(2, b.getAtomCount()); Assert.assertTrue(atoms.hasNext()); Assert.assertEquals(c, atoms.next()); Assert.assertTrue(atoms.hasNext()); Assert.assertEquals(o, atoms.next()); Assert.assertFalse(atoms.hasNext()); }
@Test public void getSelfBond() { IAtomContainer mol = (IAtomContainer) newChemObject(); IAtom a1 = mol.getBuilder().newAtom(); IAtom a2 = mol.getBuilder().newAtom(); IAtom a3 = mol.getBuilder().newAtom(); IBond b1 = mol.getBuilder().newBond(); IBond b2 = mol.getBuilder().newBond(); b1.setAtom(a1, 0); b1.setAtom(a2, 1); b2.setAtom(a2, 0); b2.setAtom(a3, 1); mol.addAtom(a1); mol.addAtom(a2); mol.addAtom(a3); mol.addBond(b1); mol.addBond(b2); assertThat(mol.getBond(a1, a1), is(nullValue())); } }
@Test public void testSetAtom_IAtom_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); Assert.assertEquals(c, b.getBegin()); Assert.assertEquals(o, b.getEnd()); }
@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)); }
@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 testSetAtom_SomeNull() { IBond b = (IBond) newChemObject(); b.setAtom(b.getBuilder().newInstance(IAtom.class, "C"), 0); Assert.assertEquals(1, b.getAtomCount()); }
@Test public void testSetOrder_IBond_Order() { 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()); b.setOrder(IBond.Order.SINGLE); Assert.assertEquals(IBond.Order.SINGLE, b.getOrder()); }
boolean closeRing(int rnum) { IBond bond = rings[rnum]; rings[rnum] = null; numRingOpens--; Expr openExpr = ((QueryBond) BondRef.deref(bond)).getExpression(); if (this.bond != null) { Expr closeExpr = ((QueryBond) BondRef.deref(this.bond)).getExpression(); if (openExpr == null) ((QueryBond) BondRef.deref(bond)).setExpression(closeExpr); else if (!openExpr.equals(closeExpr)) { error = "Open/close expressions are not equivalent"; return false; } this.bond = null; } else if (openExpr == null) { ((QueryBond) BondRef.deref(bond)).setExpression(new Expr(SINGLE_OR_AROMATIC)); } bond.setAtom(prev, 1); addBond(prev, bond); return true; }
@Test public void testSetStereo_IBond_Stereo() { 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); b.setStereo(IBond.Stereo.DOWN); Assert.assertEquals(IBond.Stereo.DOWN, b.getStereo()); b.setStereo(IBond.Stereo.UP); Assert.assertEquals(IBond.Stereo.UP, b.getStereo()); }
@Test public void testGetConnectedAtom_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.assertEquals(c, b.getOther(o)); Assert.assertEquals(o, b.getOther(c)); // test default return value Assert.assertNull(b.getOther(b.getBuilder().newInstance(IAtom.class))); }