Revision: 10798 http://cdk.svn.sourceforge.net/cdk/?rev=10798&view=rev Author: egonw Date: 2008-05-03 16:07:03 -0700 (Sat, 03 May 2008) Log Message: ----------- Backported a number of tests from trunk Modified Paths: -------------- cdk/branches/cdk-egonw-originalstructgen/src/org/openscience/cdk/test/structgen/deterministic/GENMDeterministicGeneratorTest.java Modified: cdk/branches/cdk-egonw-originalstructgen/src/org/openscience/cdk/test/structgen/deterministic/GENMDeterministicGeneratorTest.java =================================================================== --- cdk/branches/cdk-egonw-originalstructgen/src/org/openscience/cdk/test/structgen/deterministic/GENMDeterministicGeneratorTest.java 2008-05-03 22:48:41 UTC (rev 10797) +++ cdk/branches/cdk-egonw-originalstructgen/src/org/openscience/cdk/test/structgen/deterministic/GENMDeterministicGeneratorTest.java 2008-05-03 23:07:03 UTC (rev 10798) @@ -25,6 +25,9 @@ */ package org.openscience.cdk.test.structgen.deterministic; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; import java.util.Vector; import javax.vecmath.Vector2d; @@ -33,17 +36,15 @@ import junit.framework.TestCase; import junit.framework.TestSuite; -import org.openscience.cdk.*; -import org.openscience.cdk.structgen.deterministic.*; -import org.openscience.cdk.applications.swing.*; -import org.openscience.cdk.Bond; import org.openscience.cdk.Molecule; +import org.openscience.cdk.SetOfMolecules; import org.openscience.cdk.applications.swing.MoleculeListViewer; import org.openscience.cdk.applications.swing.MoleculeViewer2D; import org.openscience.cdk.layout.StructureDiagramGenerator; -import org.openscience.cdk.structgen.RandomGenerator; -import org.openscience.cdk.templates.MoleculeFactory; +import org.openscience.cdk.smiles.SmilesGenerator; import org.openscience.cdk.smiles.SmilesParser; +import org.openscience.cdk.structgen.deterministic.GENMDeterministicGenerator; +import org.openscience.cdk.tools.ConnectivityChecker; /** * @cdk.module test @@ -54,7 +55,8 @@ boolean standAlone = false; public MoleculeListViewer moleculeListViewer = null; - + private SmilesGenerator smilesGenerator = new SmilesGenerator(); + public GENMDeterministicGeneratorTest(String name) { super(name); } @@ -81,9 +83,12 @@ { try { - GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C8H10O1"); - Vector structures=gdg.getStructures(); - everythingOk(structures); + GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C6H10O1"); + Vector smiles=gdg.getSMILES(); + assertEquals(747, smiles.size()); + for(int i=0;i<smiles.size();i++) + System.out.println(smiles.get(i)); +// everythingOk(structures); } catch(Exception e) { @@ -91,8 +96,122 @@ } } + public void testEthane() throws Exception { + GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C2H6"); + List structures = gdg.getStructures(); + assertEquals(1, structures.size()); + assertUnique(structures); + assertOK(structures); + } + public void testEthanol() throws Exception { + GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C2H6O"); + List structures = gdg.getStructures(); + assertEquals(2, structures.size()); + assertUnique(structures); + assertOK(structures); + } + public void testPropene() throws Exception { + GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C3H6"); + List structures = gdg.getStructures(); + assertEquals(2, structures.size()); + assertOK(structures); + List uniqueSMILES = assertUnique(structures); + assertTrue(uniqueSMILES.contains("C1CC1")); + assertTrue(uniqueSMILES.contains("C=CC")); + } + + public void testButene() throws Exception { + GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C4H10"); + List structures = gdg.getStructures(); + assertEquals(2, structures.size()); + assertOK(structures); + List uniqueSMILES = assertUnique(structures); + assertTrue(uniqueSMILES.contains("CCCC")); + assertTrue(uniqueSMILES.contains("CC(C)C")); + } + + /** + * @cdk.bug 1678346 + */ + public void testPhosphate() throws Exception { + GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("H2P1O4"); + List structures = gdg.getStructures(); + assertEquals(2, structures.size()); + assertOK(structures); + List uniqueSMILES = assertUnique(structures); +// System.out.println("List: " + uniqueSMILES); + assertTrue(uniqueSMILES.contains("OP(=O)(=O)O")); + } + + public void testDichloroEthane() throws Exception { + GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C2H4F2"); + List structures = gdg.getStructures(); + assertEquals(2, structures.size()); + assertOK(structures); + List uniqueSMILES = assertUnique(structures); + System.out.println("List: " + uniqueSMILES); + assertTrue(uniqueSMILES.contains("FCCF")); + } + + public void testTMS() throws Exception { + GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C4H12Si1"); + List structures = gdg.getStructures(); + assertEquals(1, structures.size()); + assertOK(structures); + List uniqueSMILES = assertUnique(structures); + System.out.println("List: " + uniqueSMILES); + assertTrue(uniqueSMILES.contains("C[Si](C)(C)C")); + } + + public void testMMS() throws Exception { + GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C1H6Si1"); + List structures = gdg.getStructures(); + assertEquals(1, structures.size()); + assertOK(structures); + List uniqueSMILES = assertUnique(structures); + System.out.println("List: " + uniqueSMILES); + assertTrue(uniqueSMILES.contains("C[Si](C)(C)C")); + } + + public void testDMS() throws Exception { + GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C2H8Si1"); + List structures = gdg.getStructures(); + assertEquals(1, structures.size()); + assertOK(structures); + List uniqueSMILES = assertUnique(structures); + System.out.println("List: " + uniqueSMILES); + assertTrue(uniqueSMILES.contains("C[Si](C)(C)C")); + } + + private List assertUnique(List structures) { + List uniques = new ArrayList(); + Iterator structs = structures.iterator(); + while (structs.hasNext()) { + Molecule mol = (Molecule)structs.next(); + String SMILES = smilesGenerator.createSMILES(mol); + if (uniques.contains(SMILES)) { + fail("Duplicate structure generated: " + SMILES); + } + uniques.add(SMILES); + } + return uniques; + } + + private void assertOK(List structures) throws Exception { + Molecule mol = null; + for (int f = 0; f<structures.size(); f++) { + mol = (Molecule)structures.get(f); + assertNotNull(mol); + assertTrue(mol.getAtomCount() > 0); + assertTrue(mol.getBondCount() > 0); + // make sure the thing is connected + SetOfMolecules molSet = ConnectivityChecker.partitionIntoMolecules(mol); + assertEquals(1, molSet.getAtomContainerCount()); + } + } + /** * For SMILES test @@ -101,12 +220,12 @@ { try { - GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C8H12"); + GENMDeterministicGenerator gdg = new GENMDeterministicGenerator("C6H6"); Vector smiles=gdg.getSMILES(); - //for(int i=0;i<smiles.size();i++) - // System.out.println(smiles.get(i)); - //everythingOk(structures); - displaySMILES(smiles); + for(int i=0;i<smiles.size();i++) + System.out.println(smiles.get(i)); +// everythingOk(structures); +// displaySMILES(smiles); } catch(Exception e) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |