📄 addhydrogenedittest.java
字号:
package org.openscience.cdk.test.applications.undoredo;import java.util.HashMap;import java.util.Iterator;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import org.openscience.cdk.ChemModel;import org.openscience.cdk.Molecule;import org.openscience.cdk.MoleculeSet;import org.openscience.cdk.applications.undoredo.AddHydrogenEdit;import org.openscience.cdk.exception.CDKException;import org.openscience.cdk.interfaces.IAtomContainer;import org.openscience.cdk.layout.HydrogenPlacer;import org.openscience.cdk.layout.StructureDiagramGenerator;import org.openscience.cdk.templates.MoleculeFactory;import org.openscience.cdk.tools.HydrogenAdder;import org.openscience.cdk.tools.manipulator.MoleculeSetManipulator;/** * Junit test for the ddHydrogenEditTest class * * @author tohel * @cdk.module test-extra * */public class AddHydrogenEditTest extends TestCase { private HydrogenAdder hydrogenAdder; private HashMap hydrogenAtomMap; private IAtomContainer changedAtomsAndBonds; public AddHydrogenEditTest() { hydrogenAdder = new HydrogenAdder( "org.openscience.cdk.tools.ValencyChecker"); } /** * @return */ public static Test suite() { return new TestSuite(AddHydrogenEditTest.class); } /* * Test method for * 'org.openscience.cdk.applications.undoredo.addHydrogenEdit.redo()' for * expicit hydrogens */ public void testRedoExplicitHydrogenAdding() throws Exception { Molecule molecule = addExplicitHydrogens(); ChemModel model = new ChemModel(); MoleculeSet som = new MoleculeSet(); som.addMolecule(molecule); model.setMoleculeSet(som); AddHydrogenEdit edit = new AddHydrogenEdit(model, changedAtomsAndBonds); edit.undo(); edit.redo(); IAtomContainer container = model.getBuilder().newAtomContainer(); Iterator containers = MoleculeSetManipulator.getAllAtomContainers(model.getMoleculeSet()).iterator(); while (containers.hasNext()) container.add((IAtomContainer)containers.next()); for (int i = 0; i < molecule.getAtomCount(); i++) { org.openscience.cdk.interfaces.IAtom atom = container.getAtom(i); org.openscience.cdk.interfaces.IAtom atom2 = changedAtomsAndBonds.getAtom(i); assertTrue(atom.getHydrogenCount() == atom2.getHydrogenCount()); } } /* * Test method for * 'org.openscience.cdk.applications.undoredo.addHydrogenEdit.redo()' * */ public void testRedoImplicitHydrogenAdding() throws CDKException { Molecule molecule = addImplicitHydrogens(); ChemModel model = new ChemModel(); MoleculeSet som = new MoleculeSet(); som.addMolecule(molecule); model.setMoleculeSet(som); AddHydrogenEdit edit = new AddHydrogenEdit(model, hydrogenAtomMap); edit.undo(); edit.redo(); for (int i = 0; i < molecule.getAtomCount(); i++) { org.openscience.cdk.interfaces.IAtom atom = molecule.getAtom(i); int[] hydrogens = (int[]) hydrogenAtomMap.get(atom); assertTrue(atom.getHydrogenCount() == hydrogens[1]); } } /* * Test method for * 'org.openscience.cdk.applications.undoredo.addHydrogenEdit.undo()' */ public void testUndoExplicitHydrogenAdding() throws Exception { Molecule molecule = addExplicitHydrogens(); ChemModel model = new ChemModel(); MoleculeSet som = new MoleculeSet(); som.addMolecule(molecule); model.setMoleculeSet(som); AddHydrogenEdit edit = new AddHydrogenEdit(model, changedAtomsAndBonds); edit.undo(); IAtomContainer container = model.getBuilder().newAtomContainer(); Iterator containers = MoleculeSetManipulator.getAllAtomContainers(model.getMoleculeSet()).iterator(); while (containers.hasNext()) container.add((IAtomContainer)containers.next()); for (int i = 0; i < molecule.getAtomCount(); i++) { org.openscience.cdk.interfaces.IAtom atom = container.getAtom(i); org.openscience.cdk.interfaces.IAtom atom2 = changedAtomsAndBonds.getAtom(i); assertTrue(atom.getHydrogenCount() == atom2.getHydrogenCount()); } } /* * Test method for * 'org.openscience.cdk.applications.undoredo.addHydrogenEdit.undo()' */ public void testUndoImplicitHydrogenAdding() throws CDKException { Molecule molecule = addImplicitHydrogens(); ChemModel model = new ChemModel(); MoleculeSet som = new MoleculeSet(); som.addMolecule(molecule); model.setMoleculeSet(som); AddHydrogenEdit edit = new AddHydrogenEdit(model, hydrogenAtomMap); edit.undo(); for (int i = 0; i < molecule.getAtomCount(); i++) { org.openscience.cdk.interfaces.IAtom atom = molecule.getAtom(i); int[] hydrogens = (int[]) hydrogenAtomMap.get(atom); assertTrue(atom.getHydrogenCount() == hydrogens[0]); } } /** * @return * @throws Exception */ private Molecule addExplicitHydrogens() throws Exception { Molecule explicitMolecule = MoleculeFactory.makeAlphaPinene(); StructureDiagramGenerator generator = new StructureDiagramGenerator( explicitMolecule); generator.generateCoordinates(); changedAtomsAndBonds = hydrogenAdder .addExplicitHydrogensToSatisfyValency(explicitMolecule); HydrogenPlacer hPlacer = new HydrogenPlacer(); hPlacer.placeHydrogens2D(explicitMolecule, 1.0); return explicitMolecule; } /** * @return * @throws CDKException */ private Molecule addImplicitHydrogens() throws CDKException { Molecule implicitMolecule = MoleculeFactory.makeAlphaPinene(); hydrogenAtomMap = hydrogenAdder .addImplicitHydrogensToSatisfyValency(implicitMolecule); return implicitMolecule; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -