⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atomcontainertest.java

📁 化学图形处理软件
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
/* $RCSfile$ * $Author: egonw $     * $Date: 2007-02-08 23:35:55 +0000 (Do, 08 Feb 2007) $     * $Revision: 7921 $ *  * Copyright (C) 1997-2007  The Chemistry Development Kit (CDK) project *  * Contact: cdk-devel@lists.sourceforge.net *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. *  * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  *  */package org.openscience.cdk.test;import java.util.Iterator;import java.util.List;import javax.vecmath.Point2d;import junit.framework.Test;import junit.framework.TestSuite;import org.openscience.cdk.CDKConstants;import org.openscience.cdk.DefaultChemObjectBuilder;import org.openscience.cdk.interfaces.IAtom;import org.openscience.cdk.interfaces.IAtomContainer;import org.openscience.cdk.interfaces.IAtomParity;import org.openscience.cdk.interfaces.IBond;import org.openscience.cdk.interfaces.IChemObjectBuilder;import org.openscience.cdk.interfaces.IChemObjectChangeEvent;import org.openscience.cdk.interfaces.IChemObjectListener;import org.openscience.cdk.interfaces.IElectronContainer;import org.openscience.cdk.interfaces.ILonePair;import org.openscience.cdk.interfaces.IMolecule;import org.openscience.cdk.interfaces.ISingleElectron;/** * Checks the funcitonality of the AtomContainer. * * @cdk.module test-data */public class AtomContainerTest extends CDKTestCase {	protected IChemObjectBuilder builder;	    public AtomContainerTest(String name) {        super(name);    }    public void setUp() {    	builder = DefaultChemObjectBuilder.getInstance();    }    public static Test suite() {        return new TestSuite(AtomContainerTest.class);    }    public void testSetAtoms_arrayIAtom() {        IAtom[] atoms = new IAtom[4];        atoms[0] = builder.newAtom("C");        atoms[1] = builder.newAtom("C");        atoms[2] = builder.newAtom("C");        atoms[3] = builder.newAtom("O");        IAtomContainer ac = builder.newAtomContainer();        ac.setAtoms(atoms);                assertEquals(4, ac.getAtomCount());        //assertEquals(4, ac.getAtoms().length);    }    /**     * Only test wether the atoms are correctly cloned.     */	public void testClone() throws Exception {        IAtomContainer molecule = builder.newAtomContainer();        Object clone = molecule.clone();        assertTrue(clone instanceof IAtomContainer);    }                public void testClone_IAtom() throws Exception {		IAtomContainer molecule = builder.newAtomContainer();		molecule.addAtom(builder.newAtom("C")); // 1		molecule.addAtom(builder.newAtom("C")); // 2		molecule.addAtom(builder.newAtom("C")); // 3		molecule.addAtom(builder.newAtom("C")); // 4		IAtomContainer clonedMol = (IAtomContainer)molecule.clone();		assertEquals(molecule.getAtomCount(), clonedMol.getAtomCount());		for (int f = 0; f < molecule.getAtomCount(); f++) {			for (int g = 0; g < clonedMol.getAtomCount(); g++) {				assertNotNull(molecule.getAtom(f));				assertNotNull(clonedMol.getAtom(g));				assertNotSame(molecule.getAtom(f), clonedMol.getAtom(g));			}		}            }    	public void testClone_IAtom2() throws Exception {		IMolecule molecule = builder.newMolecule();        IAtom carbon = builder.newAtom("C");        carbon.setPoint2d(new Point2d(2, 4));		molecule.addAtom(carbon); // 1        // test cloning of Atoms		IMolecule clonedMol = (IMolecule)molecule.clone();        carbon.setPoint2d(new Point2d(3, 1));		assertEquals(clonedMol.getAtom(0).getPoint2d().x, 2.0, 0.001);	}    public void testClone_IBond() throws Exception {		IAtomContainer molecule = builder.newAtomContainer();		molecule.addAtom(builder.newAtom("C")); // 1		molecule.addAtom(builder.newAtom("C")); // 2		molecule.addAtom(builder.newAtom("C")); // 3		molecule.addAtom(builder.newAtom("C")); // 4		molecule.addBond(0, 1, 2.0); // 1		molecule.addBond(1, 2, 1.0); // 2		molecule.addBond(2, 3, 1.0); // 3		IAtomContainer clonedMol = (IAtomContainer)molecule.clone();		assertNotNull(clonedMol);		assertEquals(molecule.getBondCount(), clonedMol.getBondCount());		for (int f = 0; f < molecule.getElectronContainerCount(); f++) {			for (int g = 0; g < clonedMol.getElectronContainerCount(); g++) {				assertNotNull(molecule.getBond(f));				assertNotNull(clonedMol.getBond(g));				assertNotSame(molecule.getBond(f), clonedMol.getBond(g));			}		}	}    public void testClone_IBond2() throws Exception {		IAtomContainer molecule = builder.newAtomContainer();        IAtom atom1 = builder.newAtom("C");        IAtom atom2 = builder.newAtom("C");		molecule.addAtom(atom1); // 1		molecule.addAtom(atom2); // 2		molecule.addBond(builder.newBond(atom1, atom2, 2.0)); // 1                // test cloning of atoms in bonds		IAtomContainer clonedMol = (IAtomContainer)molecule.clone();		assertNotNull(clonedMol);        assertNotSame(atom1, clonedMol.getBond(0).getAtom(0));        assertNotSame(atom2, clonedMol.getBond(0).getAtom(1));	}    public void testClone_IBond3() throws Exception {		IAtomContainer molecule = builder.newAtomContainer();        IAtom atom1 = builder.newAtom("C");        IAtom atom2 = builder.newAtom("C");		molecule.addAtom(atom1); // 1		molecule.addAtom(atom2); // 2		molecule.addBond(builder.newBond(atom1, atom2, 2.0)); // 1                // test that cloned bonds contain atoms from cloned atomcontainer		IAtomContainer clonedMol = (IAtomContainer)molecule.clone();		assertNotNull(clonedMol);        assertTrue(clonedMol.contains(clonedMol.getBond(0).getAtom(0)));        assertTrue(clonedMol.contains(clonedMol.getBond(0).getAtom(1)));	}    public void testClone_ILonePair() throws Exception {		IAtomContainer molecule = builder.newAtomContainer();        IAtom atom1 = builder.newAtom("C");        IAtom atom2 = builder.newAtom("C");		molecule.addAtom(atom1); // 1		molecule.addAtom(atom2); // 2		molecule.addLonePair(0);                 // test that cloned bonds contain atoms from cloned atomcontainer		IAtomContainer clonedMol = (IAtomContainer)molecule.clone();		assertNotNull(clonedMol);        assertEquals(1, clonedMol.getConnectedLonePairsCount(clonedMol.getAtom(0)));	}    public void testGetConnectedElectronContainersList_IAtom() {        // acetone molecule        IMolecule acetone = builder.newMolecule();                IAtom c1 = builder.newAtom("C");        IAtom c2 = builder.newAtom("C");        IAtom o = builder.newAtom("O");        IAtom c3 = builder.newAtom("C");        acetone.addAtom(c1);        acetone.addAtom(c2);        acetone.addAtom(c3);        acetone.addAtom(o);        IBond b1 = builder.newBond(c1, c2,1);        IBond b2 = builder.newBond(c1, o, 2);        IBond b3 = builder.newBond(c1, c3,1);        acetone.addBond(b1);        acetone.addBond(b2);        acetone.addBond(b3);                assertEquals(1, acetone.getConnectedElectronContainersList(o).size());        assertEquals(3, acetone.getConnectedElectronContainersList(c1).size());        assertEquals(1, acetone.getConnectedElectronContainersList(c2).size());        assertEquals(1, acetone.getConnectedElectronContainersList(c3).size());                // add lone pairs on oxygen        ILonePair lp1 = builder.newLonePair(o);        ILonePair lp2 = builder.newLonePair(o);        acetone.addLonePair(lp1);        acetone.addLonePair(lp2);        assertEquals(3, acetone.getConnectedElectronContainersList(o).size());        assertEquals(3, acetone.getConnectedElectronContainersList(c1).size());        assertEquals(1, acetone.getConnectedElectronContainersList(c2).size());        assertEquals(1, acetone.getConnectedElectronContainersList(c3).size());    }    public void testGetConnectedBondsList_IAtom() {        // acetone molecule        IMolecule acetone = builder.newMolecule();                IAtom c1 = builder.newAtom("C");        IAtom c2 = builder.newAtom("C");        IAtom o = builder.newAtom("O");        IAtom c3 = builder.newAtom("C");        acetone.addAtom(c1);        acetone.addAtom(c2);        acetone.addAtom(c3);        acetone.addAtom(o);        IBond b1 = builder.newBond(c1, c2,1);        IBond b2 = builder.newBond(c1, o, 2);        IBond b3 = builder.newBond(c1, c3,1);        acetone.addBond(b1);        acetone.addBond(b2);        acetone.addBond(b3);                assertEquals(1, acetone.getConnectedBondsList(o).size());        assertEquals(3, acetone.getConnectedBondsList(c1).size());        assertEquals(1, acetone.getConnectedBondsList(c2).size());        assertEquals(1, acetone.getConnectedBondsList(c3).size());                // add lone pairs on oxygen        ILonePair lp1 = builder.newLonePair(o);        ILonePair lp2 = builder.newLonePair(o);        acetone.addLonePair(lp1);        acetone.addLonePair(lp2);        assertEquals(1, acetone.getConnectedBondsList(o).size());        assertEquals(3, acetone.getConnectedBondsList(c1).size());        assertEquals(1, acetone.getConnectedBondsList(c2).size());        assertEquals(1, acetone.getConnectedBondsList(c3).size());    }//    public void testGetConnectedBonds_IAtom() {//        // acetone molecule//        IMolecule acetone = builder.newMolecule();//        //        IAtom c1 = builder.newAtom("C");//        IAtom c2 = builder.newAtom("C");//        IAtom o = builder.newAtom("O");//        IAtom c3 = builder.newAtom("C");//        acetone.addAtom(c1);//        acetone.addAtom(c2);//        acetone.addAtom(c3);//        acetone.addAtom(o);//        IBond b1 = builder.newBond(c1, c2,1);//        IBond b2 = builder.newBond(c1, o, 2);//        IBond b3 = builder.newBond(c1, c3,1);//        acetone.addBond(b1);//        acetone.addBond(b2);//        acetone.addBond(b3);//        //        assertEquals(1, acetone.getConnectedBondsVector(o).size());//        assertEquals(3, acetone.getConnectedBondsVector(c1).size());//        assertEquals(1, acetone.getConnectedBondsVector(c2).size());//        assertEquals(1, acetone.getConnectedBondsVector(c3).size());//        //        // add lone pairs on oxygen//        ILonePair lp1 = builder.newLonePair(o);//        ILonePair lp2 = builder.newLonePair(o);//        acetone.addElectronContainer(lp1);//        acetone.addElectronContainer(lp2);////        assertEquals(1, acetone.getConnectedBondsVector(o).size());//        assertEquals(3, acetone.getConnectedBondsVector(c1).size());//        assertEquals(1, acetone.getConnectedBondsVector(c2).size());//        assertEquals(1, acetone.getConnectedBondsVector(c3).size());//    }    public void testGetConnectedLonePairsList_IAtom() {        // acetone molecule        IMolecule acetone = builder.newMolecule();                IAtom c1 = builder.newAtom("C");        IAtom c2 = builder.newAtom("C");        IAtom o = builder.newAtom("O");        IAtom c3 = builder.newAtom("C");        acetone.addAtom(c1);        acetone.addAtom(c2);        acetone.addAtom(c3);        acetone.addAtom(o);        IBond b1 = builder.newBond(c1, c2,1);        IBond b2 = builder.newBond(c1, o, 2);        IBond b3 = builder.newBond(c1, c3,1);        acetone.addBond(b1);        acetone.addBond(b2);        acetone.addBond(b3);                assertEquals(0, acetone.getConnectedLonePairsList(o).size());        assertEquals(0, acetone.getConnectedLonePairsList(c1).size());        assertEquals(0, acetone.getConnectedLonePairsList(c2).size());        assertEquals(0, acetone.getConnectedLonePairsList(c3).size());        // add lone pairs on oxygen        ILonePair lp1 = builder.newLonePair(o);        ILonePair lp2 = builder.newLonePair(o);        acetone.addLonePair(lp1);        acetone.addLonePair(lp2);        assertEquals(2, acetone.getConnectedLonePairsList(o).size());        assertEquals(0, acetone.getConnectedLonePairsList(c1).size());        assertEquals(0, acetone.getConnectedLonePairsList(c2).size());        assertEquals(0, acetone.getConnectedLonePairsList(c3).size());    }        public void testRemoveAtomAndConnectedElectronContainers_IAtom() {        // acetone molecule        IMolecule acetone = builder.newMolecule();                IAtom c1 = builder.newAtom("C");        IAtom c2 = builder.newAtom("C");        IAtom o = builder.newAtom("O");        IAtom c3 = builder.newAtom("C");        acetone.addAtom(c1);        acetone.addAtom(c2);        acetone.addAtom(c3);        acetone.addAtom(o);        IBond b1 = builder.newBond(c1, c2,1);        IBond b2 = builder.newBond(c1, o, 2);        IBond b3 = builder.newBond(c1, c3,1);        acetone.addBond(b1);        acetone.addBond(b2);        acetone.addBond(b3);                // add lone pairs on oxygen

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -