@Override public void addHighlights(List<IAtom> atoms, List<IBond> bonds) { IAtomContainer highlightContainer = null; if (atoms.size() > 0) { highlightContainer = (IAtomContainer) atoms.get(0).getBuilder().newInstance((Class) IAtomContainer.class, new Object[0]); } else if (bonds.size() > 0) { highlightContainer = (IAtomContainer) bonds.get(0).getBuilder().newInstance((Class) IAtomContainer.class, new Object[0]); } else { return; } for (IAtom atom : atoms) { highlightContainer.addAtom(atom); } for (IBond bond : bonds) { highlightContainer.addBond(bond); } this.addHighlights(highlightContainer, this.params.highlightColor); }
/** * Returns a vector of all rings that this bond is part of. * * @param bond The bond to be checked * @return A vector of all rings that this bond is part of */ @Override public IRingSet getRings(IBond bond) { IRingSet rings = bond.getBuilder().newInstance(IRingSet.class); Ring ring; for (int i = 0; i < getAtomContainerCount(); i++) { ring = (Ring) getAtomContainer(i); if (ring.contains(bond)) { rings.addAtomContainer(ring); } } return rings; }
/** * Returns a vector of all rings that this bond is part of. * * @param bond The bond to be checked * @return A vector of all rings that this bond is part of */ @Override public IRingSet getRings(IBond bond) { IRingSet rings = bond.getBuilder().newInstance(IRingSet.class); Ring ring; for (int i = 0; i < getAtomContainerCount(); i++) { ring = (Ring) getAtomContainer(i); if (ring.contains(bond)) { rings.addAtomContainer(ring); } } return rings; }
@Test public void testIsConnectedTo_IBond() { IBond b = (IBond) newChemObject(); IAtom c1 = b.getBuilder().newInstance(IAtom.class, "C"); IAtom o = b.getBuilder().newInstance(IAtom.class, "O"); IAtom c2 = b.getBuilder().newInstance(IAtom.class, "C"); IAtom c3 = b.getBuilder().newInstance(IAtom.class, "C"); IBond b1 = b.getBuilder().newInstance(IBond.class, c1, o); IBond b2 = b.getBuilder().newInstance(IBond.class, o, c2); IBond b3 = b.getBuilder().newInstance(IBond.class, c2, c3); Assert.assertTrue(b1.isConnectedTo(b2)); Assert.assertTrue(b2.isConnectedTo(b1)); Assert.assertTrue(b2.isConnectedTo(b3)); Assert.assertTrue(b3.isConnectedTo(b2)); Assert.assertFalse(b1.isConnectedTo(b3)); Assert.assertFalse(b3.isConnectedTo(b1)); }
@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()); }
public void removeBond(IBond bond) { removeBondWithoutUndo(bond); IAtomContainer undAtomContainer = bond.getBuilder().newInstance(IAtomContainer.class); undAtomContainer.addBond(bond); if (getUndoRedoFactory() != null && getUndoRedoHandler() != null) { IUndoRedoable undoredo = getUndoRedoFactory() .getRemoveAtomsAndBondsEdit(getIChemModel(), undAtomContainer, "Remove Bond", this); getUndoRedoHandler().postEdit(undoredo); } }
@Test public void testGetConnectedAtoms_IAtom() { IBond b = (IBond) newChemObject(); IAtom[] atoms = new IAtom[3]; atoms[0] = b.getBuilder().newInstance(IAtom.class, "B"); atoms[1] = b.getBuilder().newInstance(IAtom.class, "H"); atoms[2] = b.getBuilder().newInstance(IAtom.class, "B"); b.setAtoms(atoms); b.setOrder(IBond.Order.SINGLE); // C=O bond IAtom[] connectedAtoms = b.getConnectedAtoms(atoms[1]); Assert.assertNotNull(connectedAtoms); Assert.assertEquals(2, connectedAtoms.length); Assert.assertNotNull(connectedAtoms[0]); Assert.assertNotNull(connectedAtoms[1]); // test default return value connectedAtoms = b.getConnectedAtoms(b.getBuilder().newInstance(IAtom.class)); Assert.assertNull(connectedAtoms); }
@Test public void testGetAtomCount() { 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(2.0, b.getAtomCount(), 0.001); }
@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()); }
@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 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))); }
@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 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 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()); }
@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 @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()); }