From: <mig...@us...> - 2008-02-04 16:29:49
|
Revision: 10023 http://cdk.svn.sourceforge.net/cdk/?rev=10023&view=rev Author: miguelrojasch Date: 2008-02-04 08:29:03 -0800 (Mon, 04 Feb 2008) Log Message: ----------- Added test mapping Modified Paths: -------------- branches/miguelrojasch/reaction/src/org/openscience/cdk/test/reaction/type/CleavageBondReactionTest.java Modified: branches/miguelrojasch/reaction/src/org/openscience/cdk/test/reaction/type/CleavageBondReactionTest.java =================================================================== --- branches/miguelrojasch/reaction/src/org/openscience/cdk/test/reaction/type/CleavageBondReactionTest.java 2008-02-04 16:13:07 UTC (rev 10022) +++ branches/miguelrojasch/reaction/src/org/openscience/cdk/test/reaction/type/CleavageBondReactionTest.java 2008-02-04 16:29:03 UTC (rev 10023) @@ -47,6 +47,7 @@ import org.openscience.cdk.test.reaction.ReactionProcessTest; import org.openscience.cdk.tools.LonePairElectronChecker; import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; +import org.openscience.cdk.tools.manipulator.ReactionManipulator; /** * TestSuite that runs a test for the CleavageBondReactionTest. @@ -64,21 +65,22 @@ @BeforeClass public static void setUp() throws Exception { setReaction(CleavageBondReaction.class); } - + /** - * A unit test suite for JUnit. Reaction: + * A unit test suite for JUnit. Reaction: Ethylbenzaldehyde. * CCc1ccc(C=O)cc1 => C+ Cc1ccc(C=O)cc1 * CCc1ccc(C=O)cc1 => CC + c1ccc(C=O)cc1 * Automatic looking for active center. + * + * @cdk.inchi InChI=1/C9H10O/c1-2-8-3-5-9(7-10)6-4-8/h3-7H,2H2,1H3 * * @return The test suite */ - @Test public void test1() throws Exception { + @Test public void testEthylbenzaldehydeManual() throws Exception { IReactionProcess type = new CleavageBondReaction(); IMoleculeSet setOfReactants = DefaultChemObjectBuilder.getInstance().newMoleculeSet(); -// IMolecule molecule = (new SmilesParser(org.openscience.cdk.DefaultChemObjectBuilder.getInstance())).parseSmiles("CCc1ccc(C=O)cc1"); - // Ethylbenzaldehyde. InChI=1/C9H10O/c1-2-8-3-5-9(7-10)6-4-8/h3-7H,2H2,1H3, smiles CCc1ccc(C=O)cc1 + //smiles("CCc1ccc(C=O)cc1") IMolecule molecule = builder.newMolecule(); molecule.addAtom(builder.newAtom("C")); molecule.addAtom(builder.newAtom("C")); @@ -126,7 +128,6 @@ IMolecule product = setOfReactions.getReaction(0).getProducts().getMolecule(0); /*C*/ -// IMolecule molecule2 = (new SmilesParser(org.openscience.cdk.DefaultChemObjectBuilder.getInstance())).parseSmiles("C"); IMolecule molecule2 = builder.newMolecule(); molecule2.addAtom(builder.newAtom("C")); molecule2.addAtom(builder.newAtom("H")); @@ -141,7 +142,6 @@ product = setOfReactions.getReaction(0).getProducts().getMolecule(1); /*Cc1ccc(C=O)cc1*/ -// IMolecule molecule3 = (new SmilesParser(org.openscience.cdk.DefaultChemObjectBuilder.getInstance())).parseSmiles("Cc1ccc(C=O)cc1"); IMolecule molecule3 = builder.newMolecule(); molecule3.addAtom(builder.newAtom("C")); molecule3.getAtom(0).setFormalCharge(1); @@ -171,7 +171,6 @@ product = setOfReactions.getReaction(1).getProducts().getMolecule(0); /*CC*/ -// molecule2 = (new SmilesParser(org.openscience.cdk.DefaultChemObjectBuilder.getInstance())).parseSmiles("CC"); molecule2 = builder.newMolecule(); molecule2.addAtom(builder.newAtom("C")); molecule2.addAtom(builder.newAtom("C")); @@ -186,7 +185,6 @@ product = setOfReactions.getReaction(1).getProducts().getMolecule(1); /*c1ccc(C=O)cc1*/ -// molecule3 = (new SmilesParser(org.openscience.cdk.DefaultChemObjectBuilder.getInstance())).parseSmiles("c1ccc(C=O)cc1"); molecule3 = builder.newMolecule(); molecule3.addAtom(builder.newAtom("C")); molecule3.addAtom(builder.newAtom("C")); @@ -218,6 +216,82 @@ } /** + * A unit test suite for JUnit. Reaction: Ethylbenzaldehyde. + * CCc1ccc(C=O)cc1 => C+ Cc1ccc(C=O)cc1 + * CCc1ccc(C=O)cc1 => CC + c1ccc(C=O)cc1 + * Automatic looking for active center. + * + * @cdk.inchi InChI=1/C9H10O/c1-2-8-3-5-9(7-10)6-4-8/h3-7H,2H2,1H3 + * + * @see #testEthylbenzaldehydeManual() + * @return The test suite + */ + @Test public void testEthylbenzaldehydeMapping() throws Exception { + IReactionProcess type = new CleavageBondReaction(); + IMoleculeSet setOfReactants = DefaultChemObjectBuilder.getInstance().newMoleculeSet(); + + //smiles("CCc1ccc(C=O)cc1") + IMolecule molecule = builder.newMolecule(); + molecule.addAtom(builder.newAtom("C")); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(0, 1, IBond.Order.SINGLE); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(1, 2, IBond.Order.SINGLE); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(2, 3, IBond.Order.SINGLE); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(3, 4, IBond.Order.DOUBLE); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(4, 5, IBond.Order.SINGLE); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(5, 6, IBond.Order.SINGLE); + molecule.addAtom(builder.newAtom("O")); + molecule.addBond(6, 7, IBond.Order.DOUBLE); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(5, 8, IBond.Order.DOUBLE); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(8, 9, IBond.Order.SINGLE); + molecule.addBond(9, 2, IBond.Order.DOUBLE); + addExplicitHydrogens(molecule); + AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule); + + LonePairElectronChecker lpcheck = new LonePairElectronChecker(); + lpcheck.saturate(molecule); + + molecule.getBond(0).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule.getBond(1).setFlag(CDKConstants.REACTIVE_CENTER,true); + + setOfReactants.addMolecule(molecule); + + /*has active center*/ + Object[] params = {Boolean.TRUE}; + type.setParameters(params); + + /* initiate */ + makeSureAtomTypesAreRecognized(molecule); + + IReactionSet setOfReactions = type.initiate(setOfReactants, null); + + IMolecule product11 = setOfReactions.getReaction(0).getProducts().getMolecule(0); + IMolecule product12 = setOfReactions.getReaction(0).getProducts().getMolecule(1); + + Assert.assertEquals(2,setOfReactions.getReaction(0).getMappingCount()); + IAtom mappedProductA1 = (IAtom)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0), molecule.getAtom(0)); + Assert.assertEquals(mappedProductA1, product11.getAtom(0)); + IAtom mappedProductA2 = (IAtom)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0), molecule.getAtom(1)); + Assert.assertEquals(mappedProductA2, product12.getAtom(0)); + + IMolecule product21 = setOfReactions.getReaction(1).getProducts().getMolecule(0); + IMolecule product22 = setOfReactions.getReaction(1).getProducts().getMolecule(1); + + Assert.assertEquals(2,setOfReactions.getReaction(0).getMappingCount()); + mappedProductA1 = (IAtom)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(1), molecule.getAtom(1)); + Assert.assertEquals(mappedProductA1, product21.getAtom(1)); + mappedProductA2 = (IAtom)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(1), molecule.getAtom(2)); + Assert.assertEquals(mappedProductA2, product22.getAtom(0)); + + } + /** * Test to recognize if a IMolecule matcher correctly the CDKAtomTypes. * * @param molecule The IMolecule to analyze This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |