From: <mig...@us...> - 2008-05-01 16:18:33
|
Revision: 10747 http://cdk.svn.sourceforge.net/cdk/?rev=10747&view=rev Author: miguelrojasch Date: 2008-05-01 09:00:55 -0700 (Thu, 01 May 2008) Log Message: ----------- adjusted the hyperconjugationReaction to RearrangementChargeMechanishm Modified Paths: -------------- cdk/branches/miguelrojasch-charges/src/main/org/openscience/cdk/reaction/type/HyperconjugationReaction.java cdk/branches/miguelrojasch-charges/src/test/org/openscience/cdk/reaction/type/HyperconjugationReactionTest.java cdk/branches/miguelrojasch-charges/src/test/org/openscience/cdk/reaction/type/PiBondingMovemetReactionTest.java Modified: cdk/branches/miguelrojasch-charges/src/main/org/openscience/cdk/reaction/type/HyperconjugationReaction.java =================================================================== --- cdk/branches/miguelrojasch-charges/src/main/org/openscience/cdk/reaction/type/HyperconjugationReaction.java 2008-05-01 15:00:15 UTC (rev 10746) +++ cdk/branches/miguelrojasch-charges/src/main/org/openscience/cdk/reaction/type/HyperconjugationReaction.java 2008-05-01 16:00:55 UTC (rev 10747) @@ -25,27 +25,23 @@ package org.openscience.cdk.reaction.type; +import java.util.ArrayList; import java.util.Iterator; import org.openscience.cdk.CDKConstants; -import org.openscience.cdk.DefaultChemObjectBuilder; -import org.openscience.cdk.atomtype.CDKAtomTypeMatcher; import org.openscience.cdk.exception.CDKException; -import org.openscience.cdk.graph.ConnectivityChecker; import org.openscience.cdk.interfaces.IAtom; -import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.interfaces.IBond; -import org.openscience.cdk.interfaces.IMapping; 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.nonotify.NoNotificationChemObjectBuilder; +import org.openscience.cdk.reaction.IReactionMechanism; import org.openscience.cdk.reaction.IReactionProcess; import org.openscience.cdk.reaction.ReactionEngine; import org.openscience.cdk.reaction.ReactionSpecification; +import org.openscience.cdk.reaction.mechanism.RearrangementChargeMechanism; import org.openscience.cdk.tools.LoggingTool; -import org.openscience.cdk.tools.manipulator.BondManipulator; /** * <p>HyperconjugationReaction is the stabilizing interaction that results @@ -83,7 +79,7 @@ **/ public class HyperconjugationReaction extends ReactionEngine implements IReactionProcess{ private LoggingTool logger; - private CDKAtomTypeMatcher atMatcher; + private IReactionMechanism mechanism; /** * Constructor of the HyperconjugationReaction object @@ -91,10 +87,7 @@ */ public HyperconjugationReaction(){ logger = new LoggingTool(this); - atMatcher = CDKAtomTypeMatcher.getInstance( - NoNotificationChemObjectBuilder.getInstance(), - CDKAtomTypeMatcher.REQUIRE_EXPLICIT_HYDROGENS - ); + mechanism = new RearrangementChargeMechanism(); } /** * Gets the specification attribute of the HyperconjugationReaction object @@ -136,84 +129,50 @@ if(!(Boolean)paramsMap.get("hasActiveCenter")){ setActiveCenters(reactant); } - Iterator<IAtom> atoms = reactants.getMolecule(0).atoms(); - while (atoms.hasNext()) { - IAtom atomi = atoms.next(); - if(atomi.getFlag(CDKConstants.REACTIVE_CENTER) && atomi.getFormalCharge() == 1){ + Iterator<IAtom> atomis = reactant.atoms(); + while(atomis.hasNext()){ + IAtom atomi = atomis.next(); + if(atomi.getFlag(CDKConstants.REACTIVE_CENTER)&& atomi.getFormalCharge() == 1 ){ Iterator<IBond> bondis = reactant.getConnectedBondsList(atomi).iterator(); - - while (bondis.hasNext()) { - IBond bondi = bondis.next(); - + while(bondis.hasNext()){ + IBond bondi = bondis.next(); + if(bondi.getFlag(CDKConstants.REACTIVE_CENTER)&& bondi.getOrder() == IBond.Order.SINGLE){ IAtom atomj = bondi.getConnectedAtom(atomi); - if(atomj.getFlag(CDKConstants.REACTIVE_CENTER) && atomj.getFormalCharge() == 0){ - + if(atomj.getFlag(CDKConstants.REACTIVE_CENTER) + && (atomj.getFormalCharge() == CDKConstants.UNSET ? 0 : atomj.getFormalCharge()) == 0 + && reactant.getConnectedSingleElectronsCount(atomj) == 0){ Iterator<IBond> bondjs = reactant.getConnectedBondsList(atomj).iterator(); - while (bondjs.hasNext()) { - IBond bondj = bondjs.next(); - - if(bondj.equals(bondi)) - continue; - - if(bondj.getFlag(CDKConstants.REACTIVE_CENTER) && bondj.getOrder() == IBond.Order.SINGLE){ + while(bondjs.hasNext()){ + IBond bondj = bondjs.next(); + + if(bondj.equals(bondi)) + continue; + + if(bondj.getFlag(CDKConstants.REACTIVE_CENTER) && bondj.getOrder() == IBond.Order.SINGLE){ + IAtom atomk = bondj.getConnectedAtom(atomj); + if(atomk.getFlag(CDKConstants.REACTIVE_CENTER)&& + reactant.getConnectedSingleElectronsCount(atomk) == 0 && + (atomk.getFormalCharge() == CDKConstants.UNSET ? 0 : atomk.getFormalCharge()) == 0 && + atomk.getSymbol().equals("H")){ - IAtom atomk = bondj.getConnectedAtom(atomj); - if(atomk.getFlag(CDKConstants.REACTIVE_CENTER) && atomk.getSymbol().equals("H") - && atomk.getFormalCharge() == 0 ){ - - IReaction reaction = DefaultChemObjectBuilder.getInstance().newReaction(); - reaction.addReactant(reactant); - - /* positions atoms and bonds */ - int atomiP = reactant.getAtomNumber(atomi); - int atomjP = reactant.getAtomNumber(atomj); - int atomkP = reactant.getAtomNumber(atomk); - int bondiP = reactant.getBondNumber(bondi); - int bondjP = reactant.getBondNumber(bondj); - - /* action */ - IAtomContainer reactantCloned; - try { - reactantCloned = (IMolecule)reactant.clone(); - } catch (CloneNotSupportedException e) { - throw new CDKException("Could not clone IMolecule!", e); - } + ArrayList<IAtom> atomList = new ArrayList<IAtom>(); + atomList.add(atomi); + atomList.add(atomj); + atomList.add(atomk); + ArrayList<IBond> bondList = new ArrayList<IBond>(); + bondList.add(bondi); + bondList.add(bondj); - BondManipulator.increaseBondOrder(reactantCloned.getBond(bondiP)); - - int charge = reactantCloned.getAtom(atomiP).getFormalCharge(); - reactantCloned.getAtom(atomiP).setFormalCharge(charge-1); - - charge = reactantCloned.getAtom(atomkP).getFormalCharge(); - reactantCloned.getAtom(atomkP).setFormalCharge(charge+1); - - reactantCloned.removeBond(reactantCloned.getBond(bondjP)); - -// // check if resulting atom type is reasonable -// IAtomType type = atMatcher.findMatchingAtomType(reactantCloned, reactantCloned.getAtom(atomiP)); -// if (type == null)continue; -// type = atMatcher.findMatchingAtomType(reactantCloned, reactantCloned.getAtom(atomkP)); -// if (type == null)continue; - - /* mapping */ - IMapping mapping = atomi.getBuilder().newMapping(atomi, reactantCloned.getAtom(atomiP)); - reaction.addMapping(mapping); - mapping = atomi.getBuilder().newMapping(atomj, reactantCloned.getAtom(atomjP)); - reaction.addMapping(mapping); - mapping = atomi.getBuilder().newMapping(atomk, reactantCloned.getAtom(atomkP)); - reaction.addMapping(mapping); - mapping = atomi.getBuilder().newMapping(bondi, reactantCloned.getBond(bondiP)); - reaction.addMapping(mapping); - - IMoleculeSet moleculeSet = ConnectivityChecker.partitionIntoMolecules(reactantCloned); - for(int z = 0; z < moleculeSet.getAtomContainerCount() ; z++){ - reaction.addProduct(moleculeSet.getMolecule(z)); - } - - setOfReactions.addReaction(reaction); + IMoleculeSet moleculeSet = reactant.getBuilder().newMoleculeSet(); + moleculeSet.addMolecule(reactant); + IReaction reaction = mechanism.initiate(moleculeSet, atomList, bondList); + if(reaction == null) + continue; + else + setOfReactions.addReaction(reaction); } } } @@ -222,8 +181,6 @@ } } } - - return setOfReactions; @@ -241,45 +198,47 @@ * @throws CDKException */ private void setActiveCenters(IMolecule reactant) throws CDKException { - Iterator<IAtom> atoms = reactant.atoms(); - while (atoms.hasNext()) { - IAtom atomi = atoms.next(); - if(atomi.getFormalCharge() == 1){ + Iterator<IAtom> atomis = reactant.atoms(); + while(atomis.hasNext()){ + IAtom atomi = atomis.next(); + if(atomi.getFormalCharge() == 1 ){ Iterator<IBond> bondis = reactant.getConnectedBondsList(atomi).iterator(); - - while (bondis.hasNext()) { - IBond bondi = bondis.next(); - + while(bondis.hasNext()){ + IBond bondi = bondis.next(); + if(bondi.getOrder() == IBond.Order.SINGLE){ IAtom atomj = bondi.getConnectedAtom(atomi); - if(atomj.getFormalCharge() == 0){ - + if((atomj.getFormalCharge() == CDKConstants.UNSET ? 0 : atomj.getFormalCharge()) == 0 + && reactant.getConnectedSingleElectronsCount(atomj) == 0){ + Iterator<IBond> bondjs = reactant.getConnectedBondsList(atomj).iterator(); - while (bondjs.hasNext()) { - IBond bondj = bondjs.next(); - - if(bondj.equals(bondi)) - continue; - - if(bondj.getOrder() == IBond.Order.SINGLE){ + while(bondjs.hasNext()){ + IBond bondj = bondjs.next(); + + if(bondj.equals(bondi)) + continue; + + if(bondj.getOrder() == IBond.Order.SINGLE){ + IAtom atomk = bondj.getConnectedAtom(atomj); + if(reactant.getConnectedSingleElectronsCount(atomk) == 0 && + (atomk.getFormalCharge() == CDKConstants.UNSET ? 0 : atomk.getFormalCharge()) == 0 && + atomk.getSymbol().equals("H")){ - IAtom atomk = bondj.getConnectedAtom(atomj); - if(atomk.getSymbol().equals("H")){ - atomi.setFlag(CDKConstants.REACTIVE_CENTER,true); - atomj.setFlag(CDKConstants.REACTIVE_CENTER,true); - atomk.setFlag(CDKConstants.REACTIVE_CENTER,true); - bondi.setFlag(CDKConstants.REACTIVE_CENTER,true); - bondj.setFlag(CDKConstants.REACTIVE_CENTER,true); + atomi.setFlag(CDKConstants.REACTIVE_CENTER,true); + atomj.setFlag(CDKConstants.REACTIVE_CENTER,true); + atomk.setFlag(CDKConstants.REACTIVE_CENTER,true); + bondi.setFlag(CDKConstants.REACTIVE_CENTER,true); + bondj.setFlag(CDKConstants.REACTIVE_CENTER,true); } - } + + } } } - } } } } } -} +} \ No newline at end of file Modified: cdk/branches/miguelrojasch-charges/src/test/org/openscience/cdk/reaction/type/HyperconjugationReactionTest.java =================================================================== --- cdk/branches/miguelrojasch-charges/src/test/org/openscience/cdk/reaction/type/HyperconjugationReactionTest.java 2008-05-01 15:00:15 UTC (rev 10746) +++ cdk/branches/miguelrojasch-charges/src/test/org/openscience/cdk/reaction/type/HyperconjugationReactionTest.java 2008-05-01 16:00:55 UTC (rev 10747) @@ -30,6 +30,7 @@ import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; +import org.openscience.cdk.CDKConstants; import org.openscience.cdk.DefaultChemObjectBuilder; import org.openscience.cdk.atomtype.CDKAtomTypeMatcher; import org.openscience.cdk.exception.CDKException; @@ -40,10 +41,12 @@ import org.openscience.cdk.interfaces.IMoleculeSet; import org.openscience.cdk.interfaces.IReactionSet; import org.openscience.cdk.isomorphism.UniversalIsomorphismTester; +import org.openscience.cdk.isomorphism.matchers.IQueryAtomContainer; +import org.openscience.cdk.isomorphism.matchers.QueryAtomContainerCreator; import org.openscience.cdk.nonotify.NoNotificationChemObjectBuilder; import org.openscience.cdk.reaction.IReactionProcess; -import org.openscience.cdk.reaction.type.HyperconjugationReaction; import org.openscience.cdk.reaction.ReactionProcessTest; +import org.openscience.cdk.tools.manipulator.ReactionManipulator; /** * TestSuite that runs a test for the HyperconjugationReactionTest. @@ -73,7 +76,6 @@ IMoleculeSet setOfReactants = DefaultChemObjectBuilder.getInstance().newMoleculeSet(); /*[C+]CC*/ -// IMolecule molecule = (new SmilesParser(org.openscience.cdk.DefaultChemObjectBuilder.getInstance())).parseSmiles("[C+]CC"); IMolecule molecule = builder.newMolecule(); molecule.addAtom(builder.newAtom("C")); molecule.getAtom(0).setFormalCharge(1); @@ -83,15 +85,6 @@ molecule.addBond(1, 2, IBond.Order.SINGLE); addExplicitHydrogens(molecule); -// for(int i = 0; i < 7 ; i++) -// molecule.addAtom(new Atom("H")); -// molecule.addBond(0, 3, IBond.Order.SINGLE); -// molecule.addBond(0, 4, IBond.Order.SINGLE); -// molecule.addBond(1, 5, IBond.Order.SINGLE); -// molecule.addBond(1, 6, IBond.Order.SINGLE); -// molecule.addBond(2, 7, IBond.Order.SINGLE); -// molecule.addBond(2, 8, IBond.Order.SINGLE); -// molecule.addBond(2, 9, IBond.Order.SINGLE); setOfReactants.addMolecule(molecule); /*automatic search of the center active*/ @@ -109,7 +102,6 @@ IMolecule product = setOfReactions.getReaction(0).getProducts().getMolecule(0); /*C=CC*/ -// IMolecule molecule2 = (new SmilesParser(org.openscience.cdk.DefaultChemObjectBuilder.getInstance())).parseSmiles("C=CC"); IMolecule molecule2 = builder.newMolecule(); molecule2.addAtom(builder.newAtom("C")); molecule2.addAtom(builder.newAtom("C")); @@ -122,7 +114,6 @@ product = setOfReactions.getReaction(0).getProducts().getMolecule(1); /*[H+]*/ -// molecule2 = (new SmilesParser(org.openscience.cdk.DefaultChemObjectBuilder.getInstance())).parseSmiles("[H+]"); molecule2 = builder.newMolecule(); molecule2.addAtom(builder.newAtom("H")); molecule2.getAtom(0).setFormalCharge(1); @@ -148,4 +139,217 @@ } } + /** + * A unit test suite for JUnit. Reaction: [C-][C+]-C => [C-]C=C + [H+] + * Manually put of the center active. + * + * @return The test suite + */ + @Test public void testManuallyCentreActive() throws Exception { + IReactionProcess type = new HyperconjugationReaction(); + + IMoleculeSet setOfReactants = DefaultChemObjectBuilder.getInstance().newMoleculeSet(); + IMolecule molecule = getMolecule1(); + setOfReactants.addMolecule(molecule); + + /*manually put the center active*/ + molecule.getAtom(1).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule.getAtom(2).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule.getAtom(6).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule.getBond(1).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule.getBond(5).setFlag(CDKConstants.REACTIVE_CENTER,true); + + + HashMap<String,Object> params = new HashMap<String,Object>(); + params.put("hasActiveCenter",Boolean.TRUE);; + type.setParameters(params); + + /* initiate */ + + IReactionSet setOfReactions = type.initiate(setOfReactants, null); + + Assert.assertEquals(1, setOfReactions.getReactionCount()); + Assert.assertEquals(2, setOfReactions.getReaction(0).getProductCount()); + + IMolecule product = setOfReactions.getReaction(0).getProducts().getMolecule(0); + + IMolecule molecule2 = getMolecule2(); + + IQueryAtomContainer queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product); + Assert.assertTrue(UniversalIsomorphismTester.isIsomorph(molecule2,queryAtom)); + + } + /** + * A unit test suite for JUnit. + * + * @return The test suite + */ + @Test public void testCentreActive() throws Exception { + IReactionProcess type = new HyperconjugationReaction(); + + HashMap<String,Object> params = type.getParameters(); + Assert.assertTrue(params.get("hasActiveCenter") instanceof Boolean); + Assert.assertFalse((Boolean)params.get("hasActiveCenter")); + + params = new HashMap<String,Object>(); + params.put("hasActiveCenter",Boolean.TRUE); + type.setParameters(params); + Assert.assertTrue((Boolean)params.get("hasActiveCenter")); + } + + /** + * A unit test suite for JUnit. Reaction: [C-][C+]-C => [C-]C=C + [H+] + * Automatic search of the center active. + * + * @return The test suite + */ + @Test public void testWithNegativeCharge() throws Exception { + IReactionProcess type = new HyperconjugationReaction(); + IMoleculeSet setOfReactants = DefaultChemObjectBuilder.getInstance().newMoleculeSet(); + + IMolecule molecule = getMolecule1(); + setOfReactants.addMolecule(molecule); + + /*automatic search of the center active*/ + HashMap<String,Object> params = new HashMap<String,Object>(); + params.put("hasActiveCenter",Boolean.FALSE);; + type.setParameters(params); + + /* initiate */ + makeSureAtomTypesAreRecognized(molecule); + + IReactionSet setOfReactions = type.initiate(setOfReactants, null); + + Assert.assertEquals(3, setOfReactions.getReactionCount()); + Assert.assertEquals(2, setOfReactions.getReaction(0).getProductCount()); + + IMolecule product = setOfReactions.getReaction(0).getProducts().getMolecule(0); + + IMolecule molecule2 = getMolecule2(); + + IQueryAtomContainer queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(molecule2); + Assert.assertTrue(UniversalIsomorphismTester.isIsomorph(product,queryAtom)); + + product = setOfReactions.getReaction(0).getProducts().getMolecule(1); + + molecule2 = builder.newMolecule(); + molecule2.addAtom(builder.newAtom("H")); + molecule2.getAtom(0).setFormalCharge(1); + + queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product); + Assert.assertTrue(UniversalIsomorphismTester.isIsomorph(molecule2,queryAtom)); + } + + /** + * A unit test suite for JUnit. + * + * @return The test suite + */ + @Test public void testCDKConstants_REACTIVE_CENTER() throws Exception { + IReactionProcess type = new HyperconjugationReaction(); + IMoleculeSet setOfReactants = builder.newMoleculeSet(); + + IMolecule molecule = getMolecule1(); + + /*manually put the reactive center*/ + molecule.getAtom(1).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule.getAtom(2).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule.getAtom(6).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule.getBond(1).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule.getBond(5).setFlag(CDKConstants.REACTIVE_CENTER,true); + + setOfReactants.addMolecule(molecule); + HashMap<String,Object> params = new HashMap<String,Object>(); + params.put("hasActiveCenter",Boolean.TRUE);; + type.setParameters(params); + + /* initiate */ + IReactionSet setOfReactions = type.initiate(setOfReactants, null); + + IMolecule reactant1 = setOfReactions.getReaction(0).getReactants().getMolecule(0); + + Assert.assertTrue(molecule.getAtom(1).getFlag(CDKConstants.REACTIVE_CENTER)); + Assert.assertTrue(reactant1.getAtom(1).getFlag(CDKConstants.REACTIVE_CENTER)); + Assert.assertTrue(molecule.getAtom(2).getFlag(CDKConstants.REACTIVE_CENTER)); + Assert.assertTrue(reactant1.getAtom(2).getFlag(CDKConstants.REACTIVE_CENTER)); + Assert.assertTrue(molecule.getAtom(6).getFlag(CDKConstants.REACTIVE_CENTER)); + Assert.assertTrue(reactant1.getAtom(6).getFlag(CDKConstants.REACTIVE_CENTER)); + Assert.assertTrue(molecule.getBond(1).getFlag(CDKConstants.REACTIVE_CENTER)); + Assert.assertTrue(reactant1.getBond(1).getFlag(CDKConstants.REACTIVE_CENTER)); + Assert.assertTrue(molecule.getBond(5).getFlag(CDKConstants.REACTIVE_CENTER)); + Assert.assertTrue(reactant1.getBond(5).getFlag(CDKConstants.REACTIVE_CENTER)); + } + /** + * A unit test suite for JUnit. + * + * @return The test suite + */ + @Test public void testMapping() throws Exception { + IReactionProcess type = new HyperconjugationReaction(); + IMoleculeSet setOfReactants = DefaultChemObjectBuilder.getInstance().newMoleculeSet(); + + IMolecule molecule = getMolecule1(); + setOfReactants.addMolecule(molecule); + + /*automatic search of the center active*/ + HashMap<String,Object> params = new HashMap<String,Object>(); + params.put("hasActiveCenter",Boolean.FALSE);; + type.setParameters(params); + + /* initiate */ + makeSureAtomTypesAreRecognized(molecule); + + IReactionSet setOfReactions = type.initiate(setOfReactants, null); + + IMolecule product1 = setOfReactions.getReaction(0).getProducts().getMolecule(0); + IMolecule product2 = setOfReactions.getReaction(0).getProducts().getMolecule(1); + + Assert.assertEquals(3, setOfReactions.getReactionCount()); + Assert.assertEquals(2, setOfReactions.getReaction(0).getProductCount()); + + IAtom mappedProductA1 = (IAtom)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0), molecule.getAtom(1)); + Assert.assertEquals(mappedProductA1, product1.getAtom(1)); + IBond mappedProductB1 = (IBond)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0), molecule.getBond(1)); + Assert.assertEquals(mappedProductB1, product1.getBond(3)); + mappedProductA1 = (IAtom)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0), molecule.getAtom(2)); + Assert.assertEquals(mappedProductA1, product1.getAtom(4)); + mappedProductA1 = (IAtom)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0), molecule.getAtom(6)); + Assert.assertEquals(mappedProductA1, product2.getAtom(0)); + } + /** + * get the molecule 1: [C-]-[C+] - C + * + * @return The IMolecule + */ + private IMolecule getMolecule1()throws Exception { + IMolecule molecule = builder.newMolecule(); + molecule.addAtom(builder.newAtom("C")); + molecule.getAtom(0).setFormalCharge(-1); + molecule.addAtom(builder.newAtom("C")); + molecule.getAtom(1).setFormalCharge(+1); + molecule.addBond(0, 1, IBond.Order.SINGLE); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(1, 2, IBond.Order.SINGLE); + addExplicitHydrogens(molecule); + + return molecule; + } + /** + * get the molecule 2: [C-]-C = C + * + * @return The IMolecule + */ + private IMolecule getMolecule2()throws Exception { + IMolecule molecule = builder.newMolecule(); + molecule.addAtom(builder.newAtom("C")); + molecule.getAtom(0).setFormalCharge(-1); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(0, 1, IBond.Order.SINGLE); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(1, 2, IBond.Order.DOUBLE); + addExplicitHydrogens(molecule); + + return molecule; + } + } Modified: cdk/branches/miguelrojasch-charges/src/test/org/openscience/cdk/reaction/type/PiBondingMovemetReactionTest.java =================================================================== --- cdk/branches/miguelrojasch-charges/src/test/org/openscience/cdk/reaction/type/PiBondingMovemetReactionTest.java 2008-05-01 15:00:15 UTC (rev 10746) +++ cdk/branches/miguelrojasch-charges/src/test/org/openscience/cdk/reaction/type/PiBondingMovemetReactionTest.java 2008-05-01 16:00:55 UTC (rev 10747) @@ -52,8 +52,6 @@ * TestSuite that runs a test for the PiBondingMovemetReactionTest. * Generalized Reaction: C1=C(C)-C(C)=C-C=C1 -> C1(C)=C(C)-C=C-C=C1. * - * FIXME: REACT: The tests fail if I don't put the smiles, strange - * * @cdk.module test-reaction */ public class PiBondingMovemetReactionTest extends ReactionProcessTest { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |