From: <mig...@us...> - 2008-03-04 13:56:37
|
Revision: 10292 http://cdk.svn.sourceforge.net/cdk/?rev=10292&view=rev Author: miguelrojasch Date: 2008-03-04 05:56:20 -0800 (Tue, 04 Mar 2008) Log Message: ----------- Synchronized with trunk; merged 10272:10291 Modified Paths: -------------- branches/miguelrojasch/reaction/src/main/org/openscience/cdk/CDKConstants.java branches/miguelrojasch/reaction/src/main/org/openscience/cdk/config/data/html.xsl branches/miguelrojasch/reaction/src/test/org/openscience/cdk/atomtype/AbstractAtomTypeTest.java branches/miguelrojasch/reaction/src/test/org/openscience/cdk/atomtype/CDKAtomTypeMatcherTest.java Modified: branches/miguelrojasch/reaction/src/main/org/openscience/cdk/CDKConstants.java =================================================================== --- branches/miguelrojasch/reaction/src/main/org/openscience/cdk/CDKConstants.java 2008-03-04 13:49:43 UTC (rev 10291) +++ branches/miguelrojasch/reaction/src/main/org/openscience/cdk/CDKConstants.java 2008-03-04 13:56:20 UTC (rev 10292) @@ -206,22 +206,22 @@ ****************************************/ /** The title for a IChemObject. */ - public static final String TITLE = "Title"; + public static final String TITLE = "cdk:Title"; /** A remark for a IChemObject.*/ - public static final String REMARK = "Remark"; + public static final String REMARK = "cdk:Remark"; /** A String comment. */ - public static final String COMMENT = "Comment"; + public static final String COMMENT = "cdk:Comment"; /** A List of names. */ - public static final String NAMES = "Names"; + public static final String NAMES = "cdk:Names"; /** A List of annotation remarks. */ - public static final String ANNOTATIONS = "Annotations"; + public static final String ANNOTATIONS = "cdk:Annotations"; /** A description for a IChemObject. */ - public static final String DESCRIPTION = "Description"; + public static final String DESCRIPTION = "cdk:Description"; /**************************************** @@ -230,37 +230,37 @@ ****************************************/ /** The Daylight SMILES. */ - public static final String SMILES = "SMILES"; + public static final String SMILES = "cdk:SMILES"; /** The IUPAC International Chemical Identifier. */ - public static final String INCHI = "InChI"; + public static final String INCHI = "cdk:InChI"; /** The IUPAC compatible name generated with AutoNom. */ - public static final String AUTONOMNAME = "AutonomName"; + public static final String AUTONOMNAME = "cdk:AutonomName"; /** The Beilstein Registry Number. */ - public static final String BEILSTEINRN = "BeilsteinRN"; + public static final String BEILSTEINRN = "cdk:BeilsteinRN"; /** The CAS Registry Number. */ - public static final String CASRN = "CasRN"; + public static final String CASRN = "cdk:CasRN"; /** A set of all rings computed for this molecule. */ - public static final String ALL_RINGS = "AllRings"; + public static final String ALL_RINGS = "cdk:AllRings"; /** A smallest set of smallest rings computed for this molecule. */ - public static final String SMALLEST_RINGS = "SmallestRings"; + public static final String SMALLEST_RINGS = "cdk:SmallestRings"; /** The essential rings computed for this molecule. * The concept of Essential Rings is defined in * SSSRFinder */ - public static final String ESSENTIAL_RINGS = "EssentialRings"; + public static final String ESSENTIAL_RINGS = "cdk:EssentialRings"; /** The relevant rings computed for this molecule. * The concept of relevant Rings is defined in * SSSRFinder */ - public static final String RELEVANT_RINGS = "RelevantRings"; + public static final String RELEVANT_RINGS = "cdk:RelevantRings"; /**************************************** @@ -273,24 +273,24 @@ * element of the list indicates the size of the ring the given * atom belongs to (if it is a ring atom at all). */ - public static final String RING_SIZES = "RingSizes"; + public static final String RING_SIZES = "cdk:RingSizes"; /** * This property indicates how many ring bonds are connected to * the given atom. */ - public static final String RING_CONNECTIONS = "RingConnections"; + public static final String RING_CONNECTIONS = "cdk:RingConnections"; /* *This property indicate how many bond are present on the atom. * */ - public static final String TOTAL_CONNECTIONS = "TotalConnections"; + public static final String TOTAL_CONNECTIONS = "cdk:TotalConnections"; /* *Hydrogen count * */ - public static final String TOTAL_H_COUNT = "TotalHydrogenCount"; + public static final String TOTAL_H_COUNT = "cdk:TotalHydrogenCount"; /** The Isotropic Shielding, usually calculated by * a quantum chemistry program like Gaussian. @@ -298,7 +298,7 @@ * shifts by subtracting the value from the * isotropic shielding value of a standard (e.g. TMS). */ - public static final String ISOTROPIC_SHIELDING = "IsotropicShielding"; + public static final String ISOTROPIC_SHIELDING = "cdk:IsotropicShielding"; /**************************************** * Some predefined property names for * @@ -306,19 +306,19 @@ ****************************************/ /** Used as property key for indicating the ring size of a certain atom type. */ - public static final String PART_OF_RING_OF_SIZE = "Part of ring of size"; + public static final String PART_OF_RING_OF_SIZE = "cdk:Part of ring of size"; /** Used as property key for indicating the chemical group of a certain atom type. */ - public static final String CHEMICAL_GROUP_CONSTANT = "Chemical Group"; + public static final String CHEMICAL_GROUP_CONSTANT = "cdk:Chemical Group"; /** Used as property key for indicating the HOSE code for a certain atom type. */ - public static final String SPHERICAL_MATCHER = "HOSE code spherical matcher"; + public static final String SPHERICAL_MATCHER = "cdk:HOSE code spherical matcher"; /** Used as property key for indicating the HOSE code for a certain atom type. */ - public static final String PI_BOND_COUNT = "Pi Bond Count"; + public static final String PI_BOND_COUNT = "cdk:Pi Bond Count"; /** Used as property key for indicating the HOSE code for a certain atom type. */ - public static final String LONE_PAIR_COUNT = "Lone Pair Count"; + public static final String LONE_PAIR_COUNT = "cdk:Lone Pair Count"; } Modified: branches/miguelrojasch/reaction/src/main/org/openscience/cdk/config/data/html.xsl =================================================================== --- branches/miguelrojasch/reaction/src/main/org/openscience/cdk/config/data/html.xsl 2008-03-04 13:49:43 UTC (rev 10291) +++ branches/miguelrojasch/reaction/src/main/org/openscience/cdk/config/data/html.xsl 2008-03-04 13:56:20 UTC (rev 10292) @@ -3,41 +3,43 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cml="http://www.xml-cml.org/schema" exclude-result-prefixes="cml"> - + <xsl:output method="html" encoding="utf-8" indent="yes"/> - <!-- Change this depending on where we are using the development or the production server --> - <xsl:parameter name="serverRoot" select="'http://cb.openmolecules.net/'"/> - <xsl:template match="/"> <html> <head> <title> <xsl:value-of select="cml:atomTypeList/@title"/> - <style type="text/css"> + </title> + <style type="text/css"> body { font-family: Verdana,Arial,Helvetica, sans-serif; font-size: 11px; } + th { font-weight: bold; text-align: left; } td { font-family: Verdana,Arial,Helvetica, sans-serif; font-size: 11px; } .header { text-align:right; font-weight:bold; color:rgb(0,0,0); } - </style> - </title> + </style> </head> <body> <h2>Atom Types</h2> - <xsl:element name="div"> - <table> - <td><b>identifier</b></td> - <td><b>element</b></td> - <td><b>formal charge</b></td> - <td><b>hybridization</b></td> - <td><b>neighbours</b></td> - <td><b>pi bonds</b></td> - <td><b>lone pairs</b></td> - <xsl:for-each select="cml:atomTypeList/cml:atomType"> - <xsl:sort select="./cml:atom/@elementType"/> - <xsl:apply-templates select="."/> - </xsl:for-each> - </table> - </xsl:element> + <table> + <thead> + <tr> + <th>identifier</th> + <th>element</th> + <th>formal charge</th> + <th>hybridization</th> + <th>neighbours</th> + <th>pi bonds</th> + <th>lone pairs</th> + <th>unpaired electron</th> + </tr> + </thead> + <tbody> + <xsl:apply-templates select="cml:atomTypeList/cml:atomType"> + <xsl:sort select="cml:atom/@elementType"/> + </xsl:apply-templates> + </tbody> + </table> </body> </html> </xsl:template> @@ -51,6 +53,7 @@ <td><xsl:value-of select="cml:atom/cml:scalar[@dictRef='cdk:formalNeighbourCount']"/></td> <td><xsl:value-of select="cml:atom/cml:scalar[@dictRef='cdk:piBondCount']"/></td> <td><xsl:value-of select="cml:atom/cml:scalar[@dictRef='cdk:lonePairCount']"/></td> + <td><xsl:if test="cml:atom/cml:scalar[@dictRef='cdk:radicalElectronCount']"><xsl:text>yes</xsl:text></xsl:if></td> </tr> </xsl:template> Modified: branches/miguelrojasch/reaction/src/test/org/openscience/cdk/atomtype/AbstractAtomTypeTest.java =================================================================== --- branches/miguelrojasch/reaction/src/test/org/openscience/cdk/atomtype/AbstractAtomTypeTest.java 2008-03-04 13:49:43 UTC (rev 10291) +++ branches/miguelrojasch/reaction/src/test/org/openscience/cdk/atomtype/AbstractAtomTypeTest.java 2008-03-04 13:56:20 UTC (rev 10292) @@ -26,13 +26,15 @@ import org.junit.Assert; import org.openscience.cdk.CDKConstants; -import org.openscience.cdk.atomtype.CDKAtomTypeMatcher; +import org.openscience.cdk.NewCDKTestCase; +import org.openscience.cdk.config.AtomTypeFactory; import org.openscience.cdk.exception.CDKException; +import org.openscience.cdk.exception.NoSuchAtomTypeException; import org.openscience.cdk.interfaces.IAtom; import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.interfaces.IAtomType; import org.openscience.cdk.interfaces.IBond; -import org.openscience.cdk.NewCDKTestCase; +import org.openscience.cdk.nonotify.NoNotificationChemObjectBuilder; import org.openscience.cdk.tools.manipulator.AtomTypeManipulator; /** @@ -45,6 +47,22 @@ */ abstract public class AbstractAtomTypeTest extends NewCDKTestCase { + private final static String ATOMTYPE_LIST = "cdk_atomtypes.xml"; + + private final static AtomTypeFactory factory = AtomTypeFactory.getInstance( + "org/openscience/cdk/config/data/" + ATOMTYPE_LIST, NoNotificationChemObjectBuilder.getInstance() + ); + + /** + * Helper method to test if atom types are correctly perceived. Meanwhile, it maintains a list + * of atom types that have been tested so far, which allows testing afterwards that all atom + * types are at least tested once. + * + * @param testedAtomTypes List of atom types tested so far. + * @param expectedTypes Expected atom types for the atoms given in <code>mol</code>. + * @param mol The <code>IAtomContainer</code> with <code>IAtom</code>s for which atom types should be perceived. + * @throws CDKException Thrown if something went wrong during the atom type perception. + */ public void assertAtomTypes(Map<String, Integer> testedAtomTypes, String[] expectedTypes, IAtomContainer mol) throws CDKException { Assert.assertEquals( "The number of expected atom types is unequal to the number of atoms", @@ -70,6 +88,9 @@ } /** + * Method that tests if the matched <code>IAtomType</code> and the <code>IAtom</code> are + * consistent. For example, it tests if hybridization states and formal charges are equal. + * * @cdk.bug 1897589 */ private void assertConsistentProperties(IAtomContainer mol, IAtom atom, IAtomType matched) { @@ -117,7 +138,19 @@ if (testedAtomTypes == null) { testedAtomTypes = new HashMap<String, Integer>(); } - + + try { + IAtomType type = factory.getAtomType(expectedID); + Assert.assertNotNull( + "Attempt to test atom type which is not defined in the " + ATOMTYPE_LIST + ": " + expectedID, + type + ); + } catch (NoSuchAtomTypeException exception) { + Assert.assertNotNull( + "Attempt to test atom type which is not defined in the " + ATOMTYPE_LIST + ": " + + exception.getMessage() + ); + } if (testedAtomTypes.containsKey(expectedID)) { // increase the count, so that redundancy can be calculated testedAtomTypes.put(expectedID, @@ -128,4 +161,19 @@ } } + public void countTestedAtomTypes(Map<String, Integer> testedAtomTypes) { + IAtomType[] expectedTypes = factory.getAllAtomTypes(); + if (expectedTypes.length != testedAtomTypes.size()) { + String errorMessage = "Atom types not tested:"; + for (int i=0; i<expectedTypes.length; i++) { + if (!testedAtomTypes.containsKey(expectedTypes[i].getAtomTypeName())) + errorMessage += " " + expectedTypes[i].getAtomTypeName(); + } + Assert.assertEquals(errorMessage, + factory.getAllAtomTypes().length, + testedAtomTypes.size() + ); + } + } + } Modified: branches/miguelrojasch/reaction/src/test/org/openscience/cdk/atomtype/CDKAtomTypeMatcherTest.java =================================================================== --- branches/miguelrojasch/reaction/src/test/org/openscience/cdk/atomtype/CDKAtomTypeMatcherTest.java 2008-03-04 13:49:43 UTC (rev 10291) +++ branches/miguelrojasch/reaction/src/test/org/openscience/cdk/atomtype/CDKAtomTypeMatcherTest.java 2008-03-04 13:56:20 UTC (rev 10292) @@ -1799,7 +1799,7 @@ String[] expectedTypes = {"C.sp3", "C.radical.planar", "C.sp3", "C.sp3"}; assertAtomTypes(testedAtomTypes, expectedTypes, mol); } - + @Test public void testEthoxyEthaneRadical() throws Exception { IMolecule mol = new Molecule(); IAtom atom = new Atom("O"); @@ -1906,23 +1906,7 @@ } @Test public void countTestedAtomTypes() { - AtomTypeFactory factory = AtomTypeFactory.getInstance( - "org/openscience/cdk/config/data/cdk_atomtypes.xml", - NoNotificationChemObjectBuilder.getInstance() - ); - - IAtomType[] expectedTypes = factory.getAllAtomTypes(); - if (expectedTypes.length != testedAtomTypes.size()) { - String errorMessage = "Atom types not tested:"; - for (int i=0; i<expectedTypes.length; i++) { - if (!testedAtomTypes.containsKey(expectedTypes[i].getAtomTypeName())) - errorMessage += " " + expectedTypes[i].getAtomTypeName(); - } - Assert.assertEquals(errorMessage, - factory.getAllAtomTypes().length, - testedAtomTypes.size() - ); - } + super.countTestedAtomTypes(testedAtomTypes); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |