Skip to content

Commit

Permalink
Molecule signature tests
Browse files Browse the repository at this point in the history
  • Loading branch information
gilleain authored and egonw committed Jun 23, 2010
1 parent 0d0a95e commit b64c4e5
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 1 deletion.
8 changes: 8 additions & 0 deletions src/main/org/openscience/cdk/signature/MoleculeSignature.java
Expand Up @@ -26,6 +26,7 @@
import java.util.List;

import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.interfaces.IAtomContainer;
import org.openscience.cdk.interfaces.IChemObjectBuilder;
import org.openscience.cdk.interfaces.IMolecule;
Expand Down Expand Up @@ -70,11 +71,13 @@ public MoleculeSignature(IMolecule molecule, int height) {
}

@Override /** {@inheritDoc} */
@TestMethod("getVertexCountTest")
public int getVertexCount() {
return this.molecule.getAtomCount();
}

@Override /** {@inheritDoc} */
@TestMethod("getSignatureStringForVertexTest")
public String signatureStringForVertex(int vertexIndex) {
AtomSignature atomSignature;
int height = super.getHeight();
Expand All @@ -88,13 +91,15 @@ public String signatureStringForVertex(int vertexIndex) {
}

@Override /** {@inheritDoc} */
@TestMethod("getSignatureStringForVertexTest_height")
public String signatureStringForVertex(int vertexIndex, int height) {
AtomSignature atomSignature =
new AtomSignature(vertexIndex, height, this.molecule);
return atomSignature.toCanonicalString();
}

@Override /** {@inheritDoc} */
@TestMethod("getSignatureForVertexTest")
public AbstractVertexSignature signatureForVertex(int vertexIndex) {
return new AtomSignature(vertexIndex, this.molecule);
}
Expand All @@ -104,6 +109,7 @@ public AbstractVertexSignature signatureForVertex(int vertexIndex) {
*
* @return a list of orbits
*/
@TestMethod("calculateOrbitsTest")
public List<Orbit> calculateOrbits() {
List<Orbit> orbits = new ArrayList<Orbit>();
List<SymmetryClass> symmetryClasses = super.getSymmetryClasses();
Expand All @@ -125,6 +131,7 @@ public List<Orbit> calculateOrbits() {
* @param coBuilder {@link IChemObjectBuilder} to build the returned atom container from
* @return an atom container
*/
@TestMethod("fromSignatureStringTest")
public static IAtomContainer fromSignatureString(String signatureString,
IChemObjectBuilder coBuilder) {
ColoredTree tree = AtomSignature.parse(signatureString);
Expand All @@ -134,6 +141,7 @@ public static IAtomContainer fromSignatureString(String signatureString,
return builder.getAtomContainer();
}

@TestMethod("toCanonicalSignatureStringTest")
public String toCanonicalSignatureString(int height) {
String canonicalSignature = null;
for (int i = 0; i < getVertexCount(); i++) {
Expand Down
Expand Up @@ -30,6 +30,7 @@
import junit.framework.Assert;

import org.junit.Assume;
import org.junit.Before;
import org.junit.Test;
import org.openscience.cdk.CDKTestCase;
import org.openscience.cdk.DefaultChemObjectBuilder;
Expand All @@ -55,9 +56,57 @@ public class MoleculeSignatureTest extends CDKTestCase {

private IChemObjectBuilder builder;

public MoleculeSignatureTest() {
private IAtomContainer mol;

private MoleculeSignature molSig;

@Before
public void setUp() {
this.parser = new SmilesParser(DefaultChemObjectBuilder.getInstance());
this.builder = DefaultChemObjectBuilder.getInstance();
mol = builder.newInstance(IAtomContainer.class);
mol.addAtom(builder.newInstance(IAtom.class, "C"));
mol.addAtom(builder.newInstance(IAtom.class, "C"));
mol.addBond(0, 1, IBond.Order.SINGLE);
molSig = new MoleculeSignature(mol);
}

@Test
public void getVertexCountTest() {
Assert.assertEquals(mol.getAtomCount(), molSig.getVertexCount());
}

@Test
public void getSignatureStringForVertexTest() {
Assert.assertEquals("[C]([C])", molSig.signatureStringForVertex(0));
}

@Test
public void getSignatureStringForVertexTest_height() {
Assert.assertEquals("[C]", molSig.signatureStringForVertex(0, 0));
}

@Test
public void getSignatureForVertexTest() {
Assert.assertNotNull(molSig.getVertexSignatures());
}

@Test
public void calculateOrbitsTest() {
Assert.assertEquals(1, molSig.calculateOrbits().size());
}

@Test
public void fromSignatureStringTest() {
String signatureString = molSig.toCanonicalString();
IAtomContainer reconstructed =
MoleculeSignature.fromSignatureString(signatureString, builder);
Assert.assertEquals(mol.getAtomCount(), reconstructed.getAtomCount());
}

@Test
public void toCanonicalSignatureStringTest() {
Assert.assertEquals("[C]", molSig.toCanonicalSignatureString(0));
}

public void toMolfileString(IMolecule mol) {
Expand Down

0 comments on commit b64c4e5

Please sign in to comment.