Skip to content

Commit

Permalink
a)IMatch to Match and constructor call for state used TargetPropertie…
Browse files Browse the repository at this point in the history
…s for faster processing Signed-off-by: Syed Asad Rahman <s9asad@gmail.com>
  • Loading branch information
asad authored and egonw committed Aug 30, 2010
1 parent a420b61 commit 4a2f9c1
Showing 1 changed file with 35 additions and 33 deletions.
68 changes: 35 additions & 33 deletions src/test/org/openscience/cdk/smsd/algorithm/vflib/VFLibTest.java
Expand Up @@ -38,19 +38,20 @@
import org.openscience.cdk.interfaces.IAtomContainer;
import org.openscience.cdk.interfaces.IBond;
import org.openscience.cdk.interfaces.IMolecule;
import org.openscience.cdk.smsd.algorithm.vflib.builder.TargetProperties;
import org.openscience.cdk.smsd.algorithm.vflib.interfaces.IMapper;
import org.openscience.cdk.smsd.algorithm.vflib.interfaces.INode;
import org.openscience.cdk.smsd.algorithm.vflib.interfaces.IQuery;
import org.openscience.cdk.smsd.algorithm.vflib.interfaces.IState;
import org.openscience.cdk.smsd.algorithm.vflib.interfaces.IMatch;
import org.openscience.cdk.smsd.algorithm.vflib.map.Match;
import org.openscience.cdk.smsd.algorithm.vflib.map.VFMapper;
import org.openscience.cdk.smsd.algorithm.vflib.map.VFState;
import org.openscience.cdk.smsd.algorithm.vflib.query.QueryCompiler;
import org.openscience.cdk.smsd.tools.ExtAtomContainerManipulator;
import org.openscience.cdk.tools.manipulator.AtomContainerManipulator;

/**
* Unit testing for the {@link VFMapper}, {@link VFState}, {@link IMatch} class.
* Unit testing for the {@link VFMapper}, {@link VFState}, {@link Match} class.
* @author Syed Asad Rahman <asad@ebi.ac.uk>
* @cdk.module test-smsd
*/
Expand All @@ -68,18 +69,19 @@ public static void setUp() throws CDKException {
ExtAtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(hexane);
hexane = ExtAtomContainerManipulator.removeHydrogensExceptSingleAndPreserveAtomID(hexane);
CDKHueckelAromaticityDetector.detectAromaticity(hexane);
hexaneQuery = QueryCompiler.compile(hexane, true);
hexaneQuery = new QueryCompiler(hexane, true).compile();
Assert.assertEquals(6, hexaneQuery.countNodes());
benzene = createBenzene();
ExtAtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(benzene);
hexane = ExtAtomContainerManipulator.removeHydrogensExceptSingleAndPreserveAtomID(benzene);
CDKHueckelAromaticityDetector.detectAromaticity(benzene);
benzeneQuery = QueryCompiler.compile(benzene, true);
benzeneQuery = new QueryCompiler(benzene, true).compile();
}

@Test
public void testItShouldFindAllMatchCandidatesInTheRootState() {
IState state = new VFState(benzeneQuery, benzene);

IState state = new VFState(benzeneQuery, new TargetProperties(benzene));
int count = 0;

while (state.hasNextCandidate()) {
Expand All @@ -91,10 +93,10 @@ public void testItShouldFindAllMatchCandidatesInTheRootState() {

@Test
public void testItShoudFindAllMatchCandidatesInThePrimaryState() {
IState state = new VFState(benzeneQuery, benzene);
IMatch match = new IMatch(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state = new VFState(benzeneQuery, new TargetProperties(benzene));
Match match = new Match(benzeneQuery.getNode(0), benzene.getAtom(0));
IState newState = state.nextState(match);
List<IMatch> candidates = new ArrayList<IMatch>();
List<Match> candidates = new ArrayList<Match>();

while (newState.hasNextCandidate()) {
candidates.add(newState.nextCandidate());
Expand All @@ -105,12 +107,12 @@ public void testItShoudFindAllMatchCandidatesInThePrimaryState() {

@Test
public void testItShouldFindAllMatchCandidatesInTheSecondaryState() {
IState state0 = new VFState(benzeneQuery, benzene);
IMatch match0 = new IMatch(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state0 = new VFState(benzeneQuery, new TargetProperties(benzene));
Match match0 = new Match(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state1 = state0.nextState(match0);
IMatch match1 = new IMatch(benzeneQuery.getNode(1), benzene.getAtom(1));
Match match1 = new Match(benzeneQuery.getNode(1), benzene.getAtom(1));
IState state2 = state1.nextState(match1);
List<IMatch> candidates = new ArrayList<IMatch>();
List<Match> candidates = new ArrayList<Match>();

while (state2.hasNextCandidate()) {
candidates.add(state2.nextCandidate());
Expand All @@ -121,10 +123,10 @@ public void testItShouldFindAllMatchCandidatesInTheSecondaryState() {

@Test
public void testItShouldMapAllAtomsInTheSecondaryState() {
IState state0 = new VFState(benzeneQuery, benzene);
IMatch match0 = new IMatch(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state0 = new VFState(benzeneQuery, new TargetProperties(benzene));
Match match0 = new Match(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state1 = state0.nextState(match0);
IMatch match1 = new IMatch(benzeneQuery.getNode(1), benzene.getAtom(1));
Match match1 = new Match(benzeneQuery.getNode(1), benzene.getAtom(1));
IState state2 = state1.nextState(match1);

Map<INode, IAtom> map = state2.getMap();
Expand All @@ -136,14 +138,14 @@ public void testItShouldMapAllAtomsInTheSecondaryState() {

@Test
public void testItShouldFindAllMatchCandidatesFromTheTeriaryState() {
IState state0 = new VFState(benzeneQuery, benzene);
IMatch match0 = new IMatch(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state0 = new VFState(benzeneQuery, new TargetProperties(benzene));
Match match0 = new Match(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state1 = state0.nextState(match0);
IMatch match1 = new IMatch(benzeneQuery.getNode(1), benzene.getAtom(1));
Match match1 = new Match(benzeneQuery.getNode(1), benzene.getAtom(1));
IState state2 = state1.nextState(match1);
IMatch match2 = new IMatch(benzeneQuery.getNode(2), benzene.getAtom(2));
Match match2 = new Match(benzeneQuery.getNode(2), benzene.getAtom(2));
IState state3 = state2.nextState(match2);
List<IMatch> candidates = new ArrayList<IMatch>();
List<Match> candidates = new ArrayList<Match>();

while (state3.hasNextCandidate()) {
candidates.add(state3.nextCandidate());
Expand All @@ -154,12 +156,12 @@ public void testItShouldFindAllMatchCandidatesFromTheTeriaryState() {

@Test
public void testItShouldMapAllAtomsInTheTertiaryState() {
IState state0 = new VFState(benzeneQuery, benzene);
IMatch match0 = new IMatch(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state0 = new VFState(benzeneQuery, new TargetProperties(benzene));
Match match0 = new Match(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state1 = state0.nextState(match0);
IMatch match1 = new IMatch(benzeneQuery.getNode(1), benzene.getAtom(1));
Match match1 = new Match(benzeneQuery.getNode(1), benzene.getAtom(1));
IState state2 = state1.nextState(match1);
IMatch match2 = new IMatch(benzeneQuery.getNode(2), benzene.getAtom(2));
Match match2 = new Match(benzeneQuery.getNode(2), benzene.getAtom(2));
IState state3 = state2.nextState(match2);
Map<INode, IAtom> map = state3.getMap();

Expand All @@ -171,30 +173,30 @@ public void testItShouldMapAllAtomsInTheTertiaryState() {

@Test
public void testItShouldReachGoalWhenAllAtomsAreMapped() {
IState state0 = new VFState(benzeneQuery, benzene);
IMatch match0 = new IMatch(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state0 = new VFState(benzeneQuery, new TargetProperties(benzene));
Match match0 = new Match(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state1 = state0.nextState(match0);
IMatch match1 = new IMatch(benzeneQuery.getNode(1), benzene.getAtom(1));
Match match1 = new Match(benzeneQuery.getNode(1), benzene.getAtom(1));
IState state2 = state1.nextState(match1);
IMatch match2 = new IMatch(benzeneQuery.getNode(2), benzene.getAtom(2));
Match match2 = new Match(benzeneQuery.getNode(2), benzene.getAtom(2));
IState state3 = state2.nextState(match2);
IMatch match3 = new IMatch(benzeneQuery.getNode(3), benzene.getAtom(3));
Match match3 = new Match(benzeneQuery.getNode(3), benzene.getAtom(3));
IState state4 = state3.nextState(match3);
IMatch match4 = new IMatch(benzeneQuery.getNode(4), benzene.getAtom(4));
Match match4 = new Match(benzeneQuery.getNode(4), benzene.getAtom(4));
IState state5 = state4.nextState(match4);

Assert.assertFalse(state5.isGoal());

IMatch match5 = new IMatch(benzeneQuery.getNode(5), benzene.getAtom(5));
Match match5 = new Match(benzeneQuery.getNode(5), benzene.getAtom(5));
IState state6 = state5.nextState(match5);

Assert.assertTrue(state6.isGoal());
}

@Test
public void testItShouldHaveANextCandidateInTheSecondaryState() {
IState state = new VFState(benzeneQuery, benzene);
IMatch match = new IMatch(benzeneQuery.getNode(0), benzene.getAtom(0));
IState state = new VFState(benzeneQuery, new TargetProperties(benzene));
Match match = new Match(benzeneQuery.getNode(0), benzene.getAtom(0));
IState nextState = state.nextState(match);
Assert.assertTrue(nextState.hasNextCandidate());
}
Expand Down

0 comments on commit 4a2f9c1

Please sign in to comment.