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

📄 chemfilemanipulatortest.java

📁 化学图形处理软件
💻 JAVA
字号:
/* $Revision: 7691 $ $Author: egonw $ $Date: 2007-01-11 12:47:48 +0100 (Thu, 11 Jan 2007) $ *  * Copyright (C) 2007  Egon Willighagen <egonw@users.sf.net> *  * 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.tools.manipulator;import java.io.InputStream;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;import junit.framework.Test;import junit.framework.TestSuite;import org.openscience.cdk.Atom;import org.openscience.cdk.Bond;import org.openscience.cdk.ChemFile;import org.openscience.cdk.ChemModel;import org.openscience.cdk.ChemObject;import org.openscience.cdk.ChemSequence;import org.openscience.cdk.Molecule;import org.openscience.cdk.MoleculeSet;import org.openscience.cdk.Reaction;import org.openscience.cdk.ReactionSet;import org.openscience.cdk.interfaces.IAtom;import org.openscience.cdk.interfaces.IBond;import org.openscience.cdk.interfaces.IChemFile;import org.openscience.cdk.interfaces.IChemModel;import org.openscience.cdk.interfaces.IChemSequence;import org.openscience.cdk.interfaces.IMolecule;import org.openscience.cdk.interfaces.IMoleculeSet;import org.openscience.cdk.interfaces.IReaction;import org.openscience.cdk.interfaces.IReactionSet;import org.openscience.cdk.io.MDLReader;import org.openscience.cdk.test.CDKTestCase;import org.openscience.cdk.tools.IDCreator;import org.openscience.cdk.tools.LoggingTool;import org.openscience.cdk.tools.manipulator.ChemFileManipulator;/** * @cdk.module test-standard */public class ChemFileManipulatorTest extends CDKTestCase {    	private final static LoggingTool logger = new LoggingTool(ChemFileManipulatorTest.class);		IMolecule molecule1 = null;	IMolecule molecule2 = null;	IAtom atomInMol1 = null;	IBond bondInMol1 = null;	IAtom atomInMol2 = null;	IMoleculeSet moleculeSet = null;	IReaction reaction = null;	IReactionSet reactionSet = null;	IChemModel chemModel = null;	IChemSequence chemSequence1 = null;	IChemSequence chemSequence2 = null;	IChemFile chemFile = null;	    public ChemFileManipulatorTest(String name) {        super(name);    }        public void setUp() {		molecule1 = new Molecule();		atomInMol1 = new Atom("Cl");		molecule1.addAtom(atomInMol1);		molecule1.addAtom(new Atom("Cl"));		bondInMol1 = new Bond(atomInMol1, molecule1.getAtom(1));		molecule1.addBond(bondInMol1);		molecule2 = new Molecule();		atomInMol2 = new Atom("O");		atomInMol2.setHydrogenCount(2);		molecule2.addAtom(atomInMol2);		moleculeSet = new MoleculeSet();		moleculeSet.addAtomContainer(molecule1);		moleculeSet.addAtomContainer(molecule2);		reaction = new Reaction();		reaction.addReactant(molecule1);		reaction.addProduct(molecule2);		reactionSet = new ReactionSet();		reactionSet.addReaction(reaction);		chemModel = new ChemModel();		chemModel.setMoleculeSet(moleculeSet);		chemModel.setReactionSet(reactionSet);		chemSequence1 = new ChemSequence();		chemSequence1.addChemModel(chemModel);		chemSequence2 = new ChemSequence();		chemFile = new ChemFile();		chemFile.addChemSequence(chemSequence1);		chemFile.addChemSequence(chemSequence2);	}    	public static Test suite() {		return new TestSuite(ChemFileManipulatorTest.class);	}    public void testGetAllAtomContainers_IChemFile() throws Exception {        String filename = "data/mdl/prev2000.sd";        logger.info("Testing: " + filename);        InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename);        MDLReader reader = new MDLReader(ins);        ChemFile chemFile = (ChemFile)reader.read((ChemObject)new ChemFile());        assertNotNull(chemFile);        List containersList = ChemFileManipulator.getAllAtomContainers(chemFile);        assertEquals(2, containersList.size());    }        public void testGetAllIDs_IChemFile() {    	assertEquals(0, ChemFileManipulator.getAllIDs(chemFile).size());    	IDCreator.createIDs(chemFile);    	List allIDs = ChemFileManipulator.getAllIDs(chemFile);    	assertEquals(19, ChemFileManipulator.getAllIDs(chemFile).size());    	Set uniq = new HashSet(allIDs);    	assertEquals(13, uniq.size());    }        public void testGetAtomCount_IChemFile()    {    	int count = ChemFileManipulator.getAtomCount(chemFile);    	assertEquals(6, count);    }        public void testGetBondCount_IChemFile()    {    	int count = ChemFileManipulator.getBondCount(chemFile);    	assertEquals(2, count);    }        public void testGetAllChemObjects_IChemFile()    {    	List list = ChemFileManipulator.getAllChemObjects(chemFile);    	assertEquals(8, list.size()); // not the file itself    	int atomCount = 0;    	int bondCount = 0;    	int molCount = 0;    	int molSetCount = 0;    	int reactionCount = 0;    	int reactionSetCount = 0;    	int chemModelCount = 0;    	int chemSequenceCount = 0;    	for (Iterator iter = list.iterator(); iter.hasNext();) {    		Object o = iter.next();    		if (o instanceof IAtom) ++atomCount;    		if (o instanceof IBond) ++bondCount;    		if (o instanceof IMolecule) ++molCount;    		else if (o instanceof IMoleculeSet) ++molSetCount;    		else if (o instanceof IReaction) ++reactionCount;    		else if (o instanceof IReactionSet) ++reactionSetCount;    		else if (o instanceof IChemModel) ++chemModelCount;    		else if (o instanceof IChemSequence) ++chemSequenceCount;    		else fail("Unexpected Object of type " + o.getClass());    	}    	assertEquals(0, atomCount); /// it does not recurse into IAtomContainer    	assertEquals(0, bondCount);    	assertEquals(2, molCount);    	assertEquals(1, molSetCount);    	assertEquals(1, reactionCount);    	assertEquals(1, reactionSetCount);    	assertEquals(1, chemModelCount);    	assertEquals(2, chemSequenceCount);    }        public void testGetAllChemModels_IChemFile()    {    	List list = ChemFileManipulator.getAllChemModels(chemFile);    	assertEquals(1, list.size());    }    }

⌨️ 快捷键说明

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