From: Christoph S. <ste...@us...> - 2002-05-31 21:26:17
|
Update of /cvsroot/cdk/cdk/org/openscience/cdk/test In directory usw-pr-cvs1:/tmp/cvs-serv4509/openscience/cdk/test Modified Files: FingerprinterTest.java HueckelAromaticityDetectorTest.java MoleculeFactory.java Log Message: Bug fixes in Aromaticity detection and Fingerprinting Index: FingerprinterTest.java =================================================================== RCS file: /cvsroot/cdk/cdk/org/openscience/cdk/test/FingerprinterTest.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** FingerprinterTest.java 19 May 2002 19:45:29 -0000 1.7 --- FingerprinterTest.java 31 May 2002 21:26:14 -0000 1.8 *************** *** 33,36 **** --- 33,40 ---- import org.openscience.cdk.fingerprint.*; import org.openscience.cdk.io.*; + import org.openscience.cdk.renderer.*; + import org.openscience.cdk.layout.*; + + import javax.swing.JFrame; import java.io.*; import java.util.*; *************** *** 40,43 **** --- 44,49 ---- { + boolean standAlone = false; + public FingerprinterTest(String name) { *************** *** 50,72 **** } ! public void testFingerprinter() { ! Molecule mol = MoleculeFactory.makeAlphaPinene(); BitSet bs = Fingerprinter.getFingerprint(mol); ! Molecule frag1 = makeFragment1(); ! Molecule frag2 = makeFragment2(); ! Molecule frag3 = makeFragment3(); ! Molecule frag4 = makeFragment4(); BitSet bs1 = Fingerprinter.getFingerprint(frag1); ! BitSet bs2 = Fingerprinter.getFingerprint(frag2); ! BitSet bs3 = Fingerprinter.getFingerprint(frag3); ! BitSet bs4 = Fingerprinter.getFingerprint(frag4); System.out.println("bs1: " + bs1); ! System.out.println("bs2: " + bs2); ! System.out.println("bs3: " + bs3); ! System.out.println("bs4: " + bs4); ! assertTrue(Fingerprinter.isSubset(bs, bs1)); ! assertTrue(!Fingerprinter.isSubset(bs, bs2)); ! assertTrue(!Fingerprinter.isSubset(bs, bs3)); } --- 56,74 ---- } ! public void testFingerprinter() throws java.lang.Exception { ! Molecule mol = MoleculeFactory.makeIndole(); ! //display(mol); BitSet bs = Fingerprinter.getFingerprint(mol); ! Molecule frag1 = MoleculeFactory.makePyrrole(); ! //display(frag1); BitSet bs1 = Fingerprinter.getFingerprint(frag1); ! System.out.println("bs: " + bs); System.out.println("bs1: " + bs1); ! if (Fingerprinter.isSubset(bs, bs1)) ! { ! System.out.println("Pyrrole is subset of Indole"); ! } ! if (!standAlone) assertTrue(Fingerprinter.isSubset(bs, bs1)); } *************** *** 143,151 **** } public static void main(String[] args) { ! FingerprinterTest fpt = new FingerprinterTest("FingerprinterTest"); ! fpt.testFingerprinter(); } } --- 145,184 ---- } + private void display(Molecule molecule) + { + StructureDiagramGenerator sdg = new StructureDiagramGenerator(); + MoleculeViewer2D mv = new MoleculeViewer2D(); + mv.getFrame().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + Renderer2DModel r2dm = mv.getRenderer2DModel(); + r2dm.setDrawNumbers(true); + + try + { + sdg.setMolecule((Molecule)molecule.clone()); + sdg.generateCoordinates(); + mv.setAtomContainer(sdg.getMolecule()); + mv.display(); + } + catch(Exception exc) + { + System.out.println("*** Exit due to an unexpected error during coordinate generation ***"); + exc.printStackTrace(); + } + } + + public static void main(String[] args) { ! try{ ! FingerprinterTest fpt = new FingerprinterTest("FingerprinterTest"); ! fpt.standAlone = true; ! fpt.testFingerprinter(); ! ! } ! catch(Exception exc) ! { ! exc.printStackTrace(); ! } } } Index: HueckelAromaticityDetectorTest.java =================================================================== RCS file: /cvsroot/cdk/cdk/org/openscience/cdk/test/HueckelAromaticityDetectorTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HueckelAromaticityDetectorTest.java 19 May 2002 19:45:29 -0000 1.2 --- HueckelAromaticityDetectorTest.java 31 May 2002 21:26:14 -0000 1.3 *************** *** 59,66 **** } ! public void testBenzene() { ! Molecule mol = MoleculeFactory.makeBenzene(); ! System.out.println("Testing benzene"); boolean isAromatic = false; try --- 59,68 ---- } ! public void testAzulene() { ! Molecule mol = MoleculeFactory.makeAzulene(); ! display(mol ! ); ! System.out.println("Testing Azulene"); boolean isAromatic = false; try *************** *** 77,91 **** if (standAlone && isAromatic) { ! System.out.println("Benzene is aromatic"); } assertTrue(isAromatic == true); } ! public void testAzulene() { ! Molecule mol = MoleculeFactory.makeAzulene(); ! display(mol ! ); ! System.out.println("Testing Azulene"); boolean isAromatic = false; try --- 79,94 ---- if (standAlone && isAromatic) { ! System.out.println("Azulene is aromatic"); } assertTrue(isAromatic == true); + } ! ! public void testIndole() { ! Molecule mol = MoleculeFactory.makeIndole(); ! display(mol); ! System.out.println("Testing Indole"); boolean isAromatic = false; try *************** *** 102,106 **** if (standAlone && isAromatic) { ! System.out.println("Azulene is aromatic"); } assertTrue(isAromatic == true); --- 105,109 ---- if (standAlone && isAromatic) { ! System.out.println("Indole is aromatic"); } assertTrue(isAromatic == true); *************** *** 108,121 **** } ! ! public void testIndole() { ! Molecule mol = MoleculeFactory.makeIndole(); display(mol); ! System.out.println("Testing Indole"); boolean isAromatic = false; try { ! //isAromatic = HueckelAromaticityDetector.detectAromaticity(mol); } catch(Exception exc) --- 111,123 ---- } ! public void testPyrrole() { ! Molecule mol = MoleculeFactory.makePyrrole(); display(mol); ! System.out.println("Testing Pyrrole"); boolean isAromatic = false; try { ! isAromatic = HueckelAromaticityDetector.detectAromaticity(mol); } catch(Exception exc) *************** *** 128,148 **** if (standAlone && isAromatic) { ! System.out.println("Indole is aromatic"); } assertTrue(isAromatic == true); - - } - - public void testAlphaPinene() - { - } - public void testPorphyrine() - { - - } - private void display(Molecule molecule) --- 130,139 ---- if (standAlone && isAromatic) { ! System.out.println("Pyrrole is aromatic"); } assertTrue(isAromatic == true); } private void display(Molecule molecule) *************** *** 172,179 **** HueckelAromaticityDetectorTest hadt = new HueckelAromaticityDetectorTest("HueckelAromaticityDetectorTest"); hadt.setStandAlone(true); ! hadt.testBenzene(); //hadt.testAlphaPinene(); ! hadt.testAzulene(); ! //hadt.testIndole(); //hadt.testPorphyrine(); } --- 163,171 ---- HueckelAromaticityDetectorTest hadt = new HueckelAromaticityDetectorTest("HueckelAromaticityDetectorTest"); hadt.setStandAlone(true); ! //hadt.testBenzene(); //hadt.testAlphaPinene(); ! //hadt.testAzulene(); ! hadt.testIndole(); ! hadt.testPyrrole(); //hadt.testPorphyrine(); } Index: MoleculeFactory.java =================================================================== RCS file: /cvsroot/cdk/cdk/org/openscience/cdk/test/MoleculeFactory.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** MoleculeFactory.java 10 May 2002 12:18:05 -0000 1.12 --- MoleculeFactory.java 31 May 2002 21:26:14 -0000 1.13 *************** *** 403,406 **** --- 403,425 ---- } + + static Molecule makePyrrole() + { + Molecule mol = new Molecule(); + mol.addAtom(new Atom("C")); // 0 + mol.addAtom(new Atom("N")); // 1 + mol.addAtom(new Atom("C")); // 2 + mol.addAtom(new Atom("C")); // 3 + mol.addAtom(new Atom("C")); // 4 + + mol.addBond(0, 1, 1); // 1 + mol.addBond(1, 2, 1); // 2 + mol.addBond(2, 3, 2); // 3 + mol.addBond(3, 4, 1); // 4 + mol.addBond(4, 0, 2); // 5 + + return mol; + } + |