Update of /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26709/src/org/tmapiutils/query/tolog/predicates/test Added Files: AssociationPredicateTest.java AssociationRolePredicateTest.java BaseLocatorPredicateTest.java DirectInstanceOfPredicateTest.java DynamicAssociationPredicateTest.java InstanceOfPredicateTest.java OccurrencePredicateTest.java PredicateTestBase.java ReifiesPredicateTest.java ResourcePredicateTest.java TopicMapPredicateTest.java TopicNameTest.java TypePredicateTest.java ValueLikePredicateTest.java ValuePredicateTest.java VariantPredicateTest.java Log Message: Initial tolog import --- NEW FILE: ResourcePredicateTest.java --- /* Copyright (c) 2000-2004 The TM4J Project. All rights reserved. The license for this source code can be found in the file LICENSE.TXT with this distribution or at http://tm4j.org/LICENSE.txt */ /* *$Header: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test/ResourcePredicateTest.java,v 1.1 2005/03/06 17:33:23 lheuer Exp $ */ package org.tmapiutils.query.tolog.predicates.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.tm4j.net.Locator; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.ResourcePredicate; import org.tmapiutils.query.tolog.utils.VariableSet; import org.tmapi.core.Occurrence; /** * * @author Kal Ahmed (ka...@te...) */ public class ResourcePredicateTest extends PredicateTestBase { /** * @param name */ public ResourcePredicateTest(String name) { super(name); } private static final String TESTMAP = "[techquila]\n" + "{techquila, homepage, \"http://www.techquila.com/\"}\n" + "{techquila, contact-details, \"http://www.techquila.com/contact.html\"}" + "[tm4j]\n" + "{tm4j, homepage, \"http://www.tm4j.org/\"}"; /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getTestMap() */ public String getTestMap() { return TESTMAP; } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getPredicateClass() */ public Class getPredicateClass() { return ResourcePredicate.class; } public static void main(String[] args) { junit.textui.TestRunner.run(OccurrencePredicateTest.class); } public void testOpenMatch() throws Exception { List params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(3, out.getRows().size()); Iterator it = m_tm.getTopicByID("techquila").getOccurrences().iterator(); while (it.hasNext()) { Occurrence o = (Occurrence)it.next(); int ix = out.getColumn(a).indexOf(o); assertTrue("Expected occurrence to be in results set.", ix > -1); Locator l = (Locator)out.getColumn(b).get(ix); assertTrue(l.equals(o.getResource())); } it = m_tm.getTopicByID("tm4j").getOccurrences().iterator(); while (it.hasNext()) { Occurrence o = (Occurrence)it.next(); int ix = out.getColumn(a).indexOf(o); assertTrue("Expected occurrence to be in results set.", ix > -1); Locator l = (Locator)out.getColumn(b).get(ix); assertTrue(l.equals(o.getResource())); } } public void testOccurrenceByLocator() throws Exception { List params = new ArrayList(); Variable a = new Variable("A"); Locator l = m_tm.getLocatorFactory().createLocator("URI", "http://www.techquila.com/"); params.add(a); params.add(l); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(1, out.getRows().size()); Iterator it = m_tm.getTopicByID("techquila").getOccurrences().iterator(); while (it.hasNext()) { Occurrence o = (Occurrence)it.next(); if (o.getResource().equals(l)) { assertTrue(out.getColumn(a).contains(o)); } else { assertFalse(out.getColumn(a).contains(o)); } } } public void testLocatorByOccurrence() throws Exception { List params = new ArrayList(); Variable b = new Variable("B"); Locator l = m_tm.getLocatorFactory().createLocator("URI", "http://www.techquila.com/"); Occurrence o = null; Iterator it = m_tm.getTopicByID("techquila").getOccurrences().iterator(); while (it.hasNext()) { o = (Occurrence)it.next(); if (o.getResource().equals(l)) { break; } } assertNotNull("INTERNAL ERROR: Did not find occurrence to use in the query test.", o); params.add(o); params.add(b); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(1, out.getRows().size()); assertTrue(out.getColumn(b).contains(l)); } // TODO: Implement tests for closed matches. } /* * $Log: ResourcePredicateTest.java,v $ * Revision 1.1 2005/03/06 17:33:23 lheuer * Initial tolog import * * Revision 1.1 2004/07/27 10:15:57 kal_ahmed * Initial version * */ --- NEW FILE: PredicateTestBase.java --- /* Copyright (c) 2000-2004 The TM4J Project. All rights reserved. The license for this source code can be found in the file LICENSE.TXT with this distribution or at http://tm4j.org/LICENSE.txt */ /* *$Header: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test/PredicateTestBase.java,v 1.1 2005/03/06 17:33:23 lheuer Exp $ */ package org.tmapiutils.query.tolog.predicates.test; import java.io.StringReader; import junit.framework.TestCase; import org.tm4j.net.Locator; import org.tmapiutils.query.tolog.parser.Predicate; import org.tmapiutils.query.tolog.utils.TologContext; import org.tmapi.core.TopicMap; import org.tmapi.core.TopicMapProvider; import org.tmapi.core.TopicMapProviderFactory; import org.tmapi.core.memory.TopicMapProviderFactoryImpl; import org.tmapi.core.source.SerializedTopicMapSource; import org.tmapi.core.utils.LTMBuilder; import org.tmapi.core.utils.TopicMapBuilder; /** * @author Kal * * Describe PredicateTestBase here. */ public abstract class PredicateTestBase extends TestCase { protected Predicate m_predicate; protected TopicMap m_tm; protected TopicMapProvider m_provider; protected TologContext m_context; public abstract String getTestMap(); public abstract Class getPredicateClass(); public PredicateTestBase(String name) { super(name); } public TopicMapBuilder getBuilder() { return new LTMBuilder(); } public void setUp() throws Exception { TopicMapProviderFactory tmpf = new TopicMapProviderFactoryImpl(); m_provider = tmpf.newTopicMapProvider(); Locator loc = m_provider.getLocatorFactory().createLocator("URI", "http://www.techquila.com/test/tolog1.0.xtm"); SerializedTopicMapSource src = new SerializedTopicMapSource(new StringReader(getTestMap()), loc, getBuilder()); m_tm = m_provider.addTopicMap(src); m_predicate = (Predicate) getPredicateClass().newInstance(); m_predicate.initialise(m_tm); m_context = new TologContext(); } } /* * $Log: PredicateTestBase.java,v $ * Revision 1.1 2005/03/06 17:33:23 lheuer * Initial tolog import * * Revision 1.4 2004/06/14 20:09:46 kal_ahmed * Updated test code to work with new Predicate interface. * * Revision 1.3 2004/06/13 11:30:26 kal_ahmed * Initial implementation of value-like predicate. * * Revision 1.2 2004/06/10 17:09:35 kal_ahmed * Added reifies and instance-of predicates. * */ --- NEW FILE: TopicMapPredicateTest.java --- /* Copyright (c) 2000-2004 The TM4J Project. All rights reserved. The license for this source code can be found in the file LICENSE.TXT with this distribution or at http://tm4j.org/LICENSE.txt */ /* *$Header: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test/TopicMapPredicateTest.java,v 1.1 2005/03/06 17:33:23 lheuer Exp $ */ package org.tmapiutils.query.tolog.predicates.test; import java.util.ArrayList; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.TopicMapPredicate; import org.tmapiutils.query.tolog.utils.VariableSet; /** * * @author Kal Ahmed (ka...@te...) */ public class TopicMapPredicateTest extends PredicateTestBase { /** * @param name */ public TopicMapPredicateTest(String name) { super(name); } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getTestMap() */ public String getTestMap() { return "[hello-world]"; } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getPredicateClass() */ public Class getPredicateClass() { return TopicMapPredicate.class; } public void testOpenMatch() throws Exception { ArrayList params = new ArrayList(); params.add(new Variable("A")); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); assertEquals(m_tm, out.getRow(0).get(0)); } public void testClosedMatch() throws Exception { ArrayList params = new ArrayList(); params.add(new Variable("A")); m_predicate.setParameters(params); params.set(0, m_tm); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); assertEquals(m_tm, out.getRow(0).get(0)); params.set(0, m_tm.getTopicByID("hello-world")); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(0, out.getRows().size()); } } /* * $Log: TopicMapPredicateTest.java,v $ * Revision 1.1 2005/03/06 17:33:23 lheuer * Initial tolog import * * Revision 1.2 2004/06/14 20:09:46 kal_ahmed * Updated test code to work with new Predicate interface. * * Revision 1.1 2004/06/13 10:32:29 kal_ahmed * Initial implementation of topicmap() predicate. * */ --- NEW FILE: ReifiesPredicateTest.java --- /* Copyright (c) 2000-2004 The TM4J Project. All rights reserved. The license for this source code can be found in the file LICENSE.TXT with this distribution or at http://tm4j.org/LICENSE.txt */ /* *$Header: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test/ReifiesPredicateTest.java,v 1.1 2005/03/06 17:33:23 lheuer Exp $ */ package org.tmapiutils.query.tolog.predicates.test; import java.util.ArrayList; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.ReifiesPredicate; import org.tmapiutils.query.tolog.utils.VariableSet; import org.tmapi.core.utils.TopicMapBuilder; import org.tmapi.core.utils.XTMBuilder; /** * @author Kal * * Describe ReifiesPredicateTest here. */ public class ReifiesPredicateTest extends PredicateTestBase { /** * @param name */ public ReifiesPredicateTest(String name) { super(name); } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getTestMap() */ public String getTestMap() { return "<topicMap xmlns=\"http://www.topicmaps.org/xtm/1.0/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">" + "<topic id=\"fred\"/> <topic id=\"bigco\"/> <topic id=\"worksfor\"/>" + "<association id=\"assoc1\">" + "<instanceOf><topicRef xlink:href=\"#worksfor\"/></instanceOf>" + "<member id=\"m1\"><topicRef xlink:href=\"#fred\"/></member>" + "<member id=\"m2\"><topicRef xlink:href=\"#bigco\"/></member>" + "</association>" + "<topic id=\"fredemp\"> <subjectIdentity><resourceRef xlink:href=\"#assoc1\"/> </subjectIdentity> </topic>" + "</topicMap>"; } public TopicMapBuilder getBuilder() { return new XTMBuilder(); } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getPredicateClass() */ public Class getPredicateClass() { return ReifiesPredicate.class; } public void testMatchReifier() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); params.add(a); params.add(m_tm.getObjectByID("assoc1")); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(1, out.getRows().size()); assertTrue(out.getRow(0).contains(m_tm.getObjectByID("fredemp"))); } public void testMatchReified() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); params.add(m_tm.getObjectByID("fredemp")); params.add(a); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(1, out.getRows().size()); assertTrue(out.getRow(0).contains(m_tm.getObjectByID("assoc1"))); } public void testOpenMatch() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(1, out.getRows().size()); assertTrue(out.getRow(0).get(0).equals(m_tm.getObjectByID("fredemp"))); assertTrue(out.getRow(0).get(1).equals(m_tm.getObjectByID("assoc1"))); } public void testClosedMatch() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); params.set(0, m_tm.getObjectByID("fredemp")); params.set(1, m_tm.getObjectByID("assoc1")); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(1, out.getRows().size()); params.set(0, m_tm.getObjectByID("fredemp")); params.set(1, m_tm.getObjectByID("m1")); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(0, out.getRows().size()); } } /* * $Log: ReifiesPredicateTest.java,v $ * Revision 1.1 2005/03/06 17:33:23 lheuer * Initial tolog import * * Revision 1.2 2004/06/14 20:09:46 kal_ahmed * Updated test code to work with new Predicate interface. * * Revision 1.1 2004/06/10 17:09:35 kal_ahmed * Added reifies and instance-of predicates. * */ --- NEW FILE: AssociationRolePredicateTest.java --- /* Copyright (c) 2000-2004 The TM4J Project. All rights reserved. The license for this source code can be found in the file LICENSE.TXT with this distribution or at http://tm4j.org/LICENSE.txt */ /* *$Header: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test/AssociationRolePredicateTest.java,v 1.1 2005/03/06 17:33:23 lheuer Exp $ */ package org.tmapiutils.query.tolog.predicates.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.AssociationRolePredicate; import org.tmapiutils.query.tolog.utils.VariableSet; import org.tmapi.core.Association; import org.tmapi.core.AssociationRole; import org.tmapi.core.Topic; /** * @author Kal * * Describe AssociationRolePredicateTest here. */ public class AssociationRolePredicateTest extends PredicateTestBase { /** * @param name */ public AssociationRolePredicateTest(String name) { super(name); } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getTestMap() */ public String getTestMap() { return "works-for(fred:employee, bigco:employer)\n" + "works-for(barney:employee, bigco:employer)\n"; } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getPredicateClass() */ public Class getPredicateClass() { return AssociationRolePredicate.class; } public void testMatchAssociation() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); AssociationRole m = (AssociationRole) m_tm.getTopicByID("fred").getRolesPlayed().iterator().next(); params.add(a); params.add(m); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(1, out.getRows().size()); assertEquals(m.getParent(), out.getRow(0).get(0)); } public void testMatchRoles() throws Exception { ArrayList params = new ArrayList(); Association assoc = ((AssociationRole)m_tm.getTopicByID("barney").getRolesPlayed().iterator().next()).getParent(); Variable a = new Variable("A"); params.add(assoc); params.add(a); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(2, out.getRows().size()); assertEquals(assoc, ((AssociationRole)out.getRow(0).get(0)).getParent()); assertEquals(assoc, ((AssociationRole)out.getRow(1).get(0)).getParent()); } public void testOpenMatch() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(4, out.getRows().size()); Iterator it = out.getRows().iterator(); while (it.hasNext()) { List row = (List)it.next(); assertEquals(row.get(0), ((AssociationRole)row.get(1)).getParent()); } } public void testClosedMatch() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); Topic fred = m_tm.getTopicByID("fred"); AssociationRole m = (AssociationRole) fred.getRolesPlayed().iterator().next(); Association assoc = m.getParent(); params.set(0, assoc); params.set(1, m); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(1, out.getRows().size()); Topic barney = m_tm.getTopicByID("barney"); AssociationRole m2 = (AssociationRole)barney.getRolesPlayed().iterator().next(); params.set(1, m2); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(0, out.getRows().size()); } } /* * $Log: AssociationRolePredicateTest.java,v $ * Revision 1.1 2005/03/06 17:33:23 lheuer * Initial tolog import * * Revision 1.2 2004/06/14 20:09:46 kal_ahmed * Updated test code to work with new Predicate interface. * * Revision 1.1 2004/06/11 08:29:29 kal_ahmed * Added association and association-role predicates. * */ --- NEW FILE: DirectInstanceOfPredicateTest.java --- /* * Created on 10-Jun-2004 * @author Kal */ package org.tmapiutils.query.tolog.predicates.test; import java.io.StringReader; import java.util.ArrayList; import java.util.List; import org.tm4j.net.Locator; import org.tmapiutils.query.tolog.parser.Predicate; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.DirectInstanceOfPredicate; import org.tmapiutils.query.tolog.utils.TologContext; import org.tmapiutils.query.tolog.utils.VariableSet; import org.tmapi.core.TopicMap; import org.tmapi.core.TopicMapProvider; import org.tmapi.core.TopicMapProviderFactory; import org.tmapi.core.memory.TopicMapProviderFactoryImpl; import org.tmapi.core.source.SerializedTopicMapSource; import org.tmapi.core.utils.LTMBuilder; import junit.framework.TestCase; /** * @author Kal * * Describe DirectInstanceOfPredicateTest here. */ public class DirectInstanceOfPredicateTest extends TestCase { private Predicate m_predicate; private TopicMap m_tm; private TopicMapProvider m_provider; private TologContext m_context; /** * Constructor for DirectInstanceOfPredicateTest. * @param arg0 */ public DirectInstanceOfPredicateTest(String arg0) { super(arg0); } public static void main(String[] args) { junit.textui.TestRunner.run(DirectInstanceOfPredicateTest.class); } public void testOpenMatch() throws Exception { List params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(5, out.getRows().size()); assertTrue(out.getColumn(a).contains(m_tm.getObjectByID("digestive"))); assertTrue(out.getColumn(a).contains(m_tm.getObjectByID("battenburg"))); assertTrue(out.getColumn(a).contains(m_tm.getObjectByID("custardcream"))); assertTrue(out.getColumn(a).contains(m_tm.getObjectByID("jaffacake"))); assertTrue(out.getColumn(b).contains(m_tm.getObjectByID("biscuit"))); assertTrue(out.getColumn(b).contains(m_tm.getObjectByID("cake"))); } public void testClassMatch() throws Exception { List params = new ArrayList(); Variable a = new Variable("A"); params.add(a); params.add(m_tm.getTopicByID("cake")); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(2, out.getRows().size()); assertTrue(out.getColumn(a).contains(m_tm.getObjectByID("battenburg"))); assertTrue(out.getColumn(a).contains(m_tm.getObjectByID("jaffacake"))); } public void testInstanceMatch() throws Exception { List params = new ArrayList(); Variable a = new Variable("A"); params.add(m_tm.getTopicByID("jaffacake")); params.add(a); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(2, out.getRows().size()); assertTrue(out.getColumn(a).contains(m_tm.getObjectByID("cake"))); assertTrue(out.getColumn(a).contains(m_tm.getObjectByID("biscuit"))); } public void testClosedMatch() throws Exception { List params = new ArrayList(); Variable a = new Variable("A"); params.add(a); params.add(m_tm.getTopicByID("cake")); m_predicate.setParameters(params); params.set(0, m_tm.getTopicByID("jaffacake")); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(1, out.getRows().size()); assertTrue(out.getColumn(a).contains(m_tm.getObjectByID("jaffacake"))); } protected void setUp() throws Exception { TopicMapProviderFactory tmpf = new TopicMapProviderFactoryImpl(); m_provider = tmpf.newTopicMapProvider(); Locator loc = m_provider.getLocatorFactory().createLocator("URI", "http://www.techquila.com/test/tolog1.0.xtm"); SerializedTopicMapSource src = new SerializedTopicMapSource(new StringReader(TESTMAP), loc, new LTMBuilder()); m_tm = m_provider.addTopicMap(src); m_predicate = new DirectInstanceOfPredicate(); m_predicate.initialise(m_tm); m_context = new TologContext(); } private static final String TESTMAP = "[digestive:biscuit]\n" + "[battenburg:cake]\n" + "[jaffacake:cake]\n" + "[jaffacake:biscuit]\n" + "[custardcream:biscuit]\n"; } --- NEW FILE: BaseLocatorPredicateTest.java --- /* * Created on 11-Jun-2004 * @author Kal */ package org.tmapiutils.query.tolog.predicates.test; import java.util.ArrayList; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.BaseLocatorPredicate; import org.tmapiutils.query.tolog.utils.VariableSet; /** * @author Kal * * Describe BaseLocatorPredicateTest here. */ public class BaseLocatorPredicateTest extends PredicateTestBase { /** * @param name */ public BaseLocatorPredicateTest(String name) { super(name); } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getTestMap() */ public String getTestMap() { return "[test]"; } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getPredicateClass() */ public Class getPredicateClass() { return BaseLocatorPredicate.class; } public void testOpenMatch() throws Exception { ArrayList params = new ArrayList(); params.add(new Variable("A")); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(1, out.getRows().size()); assertEquals(m_tm.getBaseLocator(), out.getRow(0).get(0)); } public void testClosedMatch() throws Exception { ArrayList params = new ArrayList(); params.add(new Variable("A")); m_predicate.setParameters(params); params.set(0, m_tm.getBaseLocator()); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(1, out.getRows().size()); assertEquals(m_tm.getBaseLocator(), out.getRow(0).get(0)); params.set(0, m_tm.getBaseLocator().resolveRelative("foobar")); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(0, out.getRows().size()); } } --- NEW FILE: DynamicAssociationPredicateTest.java --- /* Copyright (c) 2000-2004 The TM4J Project. All rights reserved. The license for this source code can be found in the file LICENSE.TXT with this distribution or at http://tm4j.org/LICENSE.txt */ /* *$Header: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test/DynamicAssociationPredicateTest.java,v 1.1 2005/03/06 17:33:23 lheuer Exp $ */ package org.tmapiutils.query.tolog.predicates.test; import java.io.StringReader; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; import org.apache.log4j.BasicConfigurator; import org.tm4j.net.Locator; import org.tmapiutils.query.tolog.parser.ClauseList; import org.tmapiutils.query.tolog.parser.PlayerRoleVarPair; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.DynamicAssociationPredicate; import org.tmapiutils.query.tolog.utils.TologContext; import org.tmapiutils.query.tolog.utils.VariableSet; import org.tmapi.core.TopicMap; import org.tmapi.core.TopicMapProvider; import org.tmapi.core.TopicMapProviderFactory; import org.tmapi.core.memory.TopicMapProviderFactoryImpl; import org.tmapi.core.source.SerializedTopicMapSource; import org.tmapi.core.utils.LTMBuilder; /** * * @author Kal Ahmed (ka...@te...) */ public class DynamicAssociationPredicateTest extends TestCase { private TopicMap m_tm; private TopicMapProvider m_provider; private TologContext m_context; /** * Constructor for AssociationPredicateTest. * @param arg0 */ public DynamicAssociationPredicateTest(String arg0) { super(arg0); BasicConfigurator.configure(); } public static void main(String[] args) { junit.textui.TestRunner.run(DynamicAssociationPredicateTest.class); BasicConfigurator.configure(); } public void testSimpleMatch() throws Exception { ClauseList c = new ClauseList(); DynamicAssociationPredicate p = new DynamicAssociationPredicate(); ArrayList params = new ArrayList(); params.add(m_tm.getTopicByID("worksfor")); params.add(new PlayerRoleVarPair(m_tm.getTopicByID("kal"), m_tm.getTopicByID("employee"))); params.add(new PlayerRoleVarPair(new Variable("A"), m_tm.getTopicByID("employer"))); p.setParameters(params); c.addPredicate(p); VariableSet varsIn = new VariableSet(); varsIn.addColumn(new Variable("A")); VariableSet varsOut = c.execute(varsIn, m_context); assertEquals(1, varsOut.size()); List r = varsOut.getRow(0); assertNotNull(r); assertEquals(r.size(), 1); assertEquals(m_tm.getTopicByID("techquila"), r.get(0)); } public void testMultipleMatch() throws Exception { ClauseList c = new ClauseList(); DynamicAssociationPredicate p = new DynamicAssociationPredicate(); p.initialise(m_tm); ArrayList params = new ArrayList(); params.add(m_tm.getTopicByID("worksfor")); params.add(new PlayerRoleVarPair(new Variable("PERSON"), m_tm.getTopicByID("employee"))); params.add(new PlayerRoleVarPair(new Variable("COMPANY"), m_tm.getTopicByID("employer"))); p.setParameters(params); c.addPredicate(p); VariableSet varsIn = new VariableSet(); varsIn.addColumn(new Variable("PERSON")); varsIn.addColumn(new Variable("COMPANY")); VariableSet varsOut = c.execute(varsIn, m_context); assertEquals(2, varsOut.size()); for (int i = 0; i < 2; i++) { List row = varsOut.getRow(i); assertNotNull(row); assertEquals(row.size(), 2); assertTrue( row.get(0).equals(m_tm.getTopicByID("kal")) || row.get(0).equals(m_tm.getTopicByID("fred"))); assertTrue( row.get(1).equals(m_tm.getTopicByID("techquila")) || row.get(1).equals(m_tm.getTopicByID("bigcorp"))); } } public void testRoleMatch() throws Exception { ClauseList c = new ClauseList(); DynamicAssociationPredicate p = new DynamicAssociationPredicate(); p.initialise(m_tm); ArrayList params = new ArrayList(); params.add(new Variable("ASSOC")); params.add(new PlayerRoleVarPair(new Variable("PERSON"), m_tm.getTopicByID("employee"))); params.add(new PlayerRoleVarPair(new Variable("COMPANY"), m_tm.getTopicByID("employer"))); p.setParameters(params); c.addPredicate(p); VariableSet varsIn = new VariableSet(); varsIn.addColumn(new Variable("ASSOC")); varsIn.addColumn(new Variable("PERSON")); varsIn.addColumn(new Variable("COMPANY")); VariableSet varsOut = c.execute(varsIn, m_context); assertEquals(2, varsOut.size()); for (int i = 0; i < 2; i++) { List row = varsOut.getRow(i); assertNotNull(row); assertEquals(row.size(), 3); assertEquals(m_tm.getTopicByID("worksfor"), row.get(0)); assertTrue( row.get(1).equals(m_tm.getTopicByID("kal")) || row.get(1).equals(m_tm.getTopicByID("fred"))); assertTrue( row.get(2).equals(m_tm.getTopicByID("techquila")) || row.get(2).equals(m_tm.getTopicByID("bigcorp"))); } } /* (non-Javadoc) * @see junit.framework.TestCase#setUp() */ protected void setUp() throws Exception { TopicMapProviderFactory tmpf = new TopicMapProviderFactoryImpl(); m_provider = tmpf.newTopicMapProvider(); Locator loc = m_provider.getLocatorFactory().createLocator("URI", "http://www.techquila.com/test/tolog1.0.xtm"); SerializedTopicMapSource src = new SerializedTopicMapSource(new StringReader(TESTMAP), loc, new LTMBuilder()); m_tm = m_provider.addTopicMap(src); assertNotNull(m_tm.getTopicByID("worksfor")); m_context = new TologContext(); } private static final String TESTMAP ="worksfor(kal:employee, techquila:employer)\n" + "worksfor(fred:employee, bigcorp:employer)\n"; } /* * $Log: DynamicAssociationPredicateTest.java,v $ * Revision 1.1 2005/03/06 17:33:23 lheuer * Initial tolog import * * Revision 1.3 2004/06/14 20:09:46 kal_ahmed * Updated test code to work with new Predicate interface. * * Revision 1.2 2004/06/09 20:20:30 kal_ahmed * Major reworking of the predicate interfaces and internal implementation of VariableSet to reduce the use of HashMaps. * * Revision 1.1 2004/06/07 20:42:24 kal_ahmed * Added infrastructure for backend-specific implementations and start of a default in-memory implementation. * * Revision 1.3 2004/06/03 20:04:56 kal_ahmed * Completed initial package restructuring. * * Revision 1.2 2004/06/03 19:55:17 kal_ahmed * Created utils package to hold common utility classes for Tolog implementations. * * Revision 1.1 2004/05/30 22:08:25 kal_ahmed * Initial version of tolog 1.0 engine * */ --- NEW FILE: VariantPredicateTest.java --- /* Copyright (c) 2000-2004 The TM4J Project. All rights reserved. The license for this source code can be found in the file LICENSE.TXT with this distribution or at http://tm4j.org/LICENSE.txt */ /* *$Header: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test/VariantPredicateTest.java,v 1.1 2005/03/06 17:33:24 lheuer Exp $ */ package org.tmapiutils.query.tolog.predicates.test; import java.util.ArrayList; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.VariantPredicate; import org.tmapiutils.query.tolog.utils.VariableSet; import org.tmapi.core.TopicName; import org.tmapi.core.Variant; /** * * @author Kal Ahmed (ka...@te...) */ public class VariantPredicateTest extends PredicateTestBase { /** * @param name */ public VariantPredicateTest(String name) { super(name); } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getTestMap() */ public String getTestMap() { return "[fred = \"Fred Flinstone\";\"Flintstone, F.\"]\n" + "[barney = \"Barney Rubble\";\"Rubble, B.\"]"; } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getPredicateClass() */ public Class getPredicateClass() { return VariantPredicate.class; } public void testGetVariants() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); TopicName fredName = (TopicName) m_tm.getTopicByID("fred").getTopicNames().iterator().next(); params.set(0, fredName); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); assertEquals(fredName.getVariants().iterator().next(), out.getRow(0).get(1)); } public void testGetTopicName() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); TopicName fredName = (TopicName) m_tm.getTopicByID("fred").getTopicNames().iterator().next(); Variant fredVar = (Variant) fredName.getVariants().iterator().next(); params.set(1, fredVar); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); assertEquals(fredName, out.getRow(0).get(0)); } public void testClosedMatch() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); TopicName fredName = (TopicName) m_tm.getTopicByID("fred").getTopicNames().iterator().next(); Variant fredVar = (Variant) fredName.getVariants().iterator().next(); params.set(0, fredName); params.set(1, fredVar); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); assertEquals(fredName, out.getRow(0).get(0)); assertEquals(fredVar, out.getRow(0).get(1)); } public void testOpenMatch() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getRows().size()); } } /* * $Log: VariantPredicateTest.java,v $ * Revision 1.1 2005/03/06 17:33:24 lheuer * Initial tolog import * * Revision 1.2 2004/06/14 20:09:46 kal_ahmed * Updated test code to work with new Predicate interface. * * Revision 1.1 2004/06/13 10:56:32 kal_ahmed * Initial implementation of variant() predicate. * */ --- NEW FILE: ValuePredicateTest.java --- /* Copyright (c) 2000-2004 The TM4J Project. All rights reserved. The license for this source code can be found in the file LICENSE.TXT with this distribution or at http://tm4j.org/LICENSE.txt */ /* *$Header: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test/ValuePredicateTest.java,v 1.1 2005/03/06 17:33:23 lheuer Exp $ */ package org.tmapiutils.query.tolog.predicates.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.ValuePredicate; import org.tmapiutils.query.tolog.utils.VariableSet; import org.tmapi.core.TopicName; import org.tmapi.core.DataObject; import org.tmapi.core.Occurrence; /** * * @author Kal Ahmed (ka...@te...) */ public class ValuePredicateTest extends PredicateTestBase { /** * @param name */ public ValuePredicateTest(String name) { super(name); } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getTestMap() */ public String getTestMap() { return "[bond = \"James Bond\";\"bond, james\";\"James Bond\"\n" + " = \"007\" / hmg]" + "{bond, favourite-drink, [[\"Vodka martini. Shaken not stirred\"]]}"; } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getPredicateClass() */ public Class getPredicateClass() { return ValuePredicate.class; } public void testMatchOnValue() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); params.add(a); params.add("James Bond"); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); // TODO: This should be 2 when indexing of Variant names is supported. assertEquals(1, out.getRows().size()); Iterator it = out.getColumn(a).iterator(); while (it.hasNext()) { Object o = it.next(); if (o instanceof TopicName) { assertEquals("James Bond", ((TopicName)o).getValue()); } else if (o instanceof Occurrence) { assertEquals("James Bond", ((Occurrence)o).getValue()); } } } public void testMatchOnObject() throws Exception { ArrayList params = new ArrayList(); Variable a= new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); TopicName bn = (TopicName)m_tm.getTopicByID("bond").getTopicNames().iterator().next(); params.set(0, bn); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(1, out.getRows().size()); Iterator it = out.getColumn(b).iterator(); while (it.hasNext()) { Object o = it.next(); assertTrue(o instanceof String); assertEquals(bn.getValue(), o); } Occurrence o = (Occurrence)m_tm.getTopicByID("bond").getOccurrences().iterator().next(); assertNotNull(o.getValue()); params.set(0, o); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(1, out.getRows().size()); assertEquals(o.getValue(), out.getRow(0).get(1)); } public void testClosedMatch() throws Exception { ArrayList params = new ArrayList(); Variable a= new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); TopicName bn = (TopicName)m_tm.getTopicByID("bond").getTopicNames().iterator().next(); params.set(0, bn); params.set(1, bn.getValue()); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(1, out.getRows().size()); Iterator it = out.getColumn(b).iterator(); while (it.hasNext()) { Object o = it.next(); assertTrue(o instanceof String); assertEquals(bn.getValue(), o); } params.set(1, "NOMATCH"); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(0, out.getRows().size()); Occurrence o = (Occurrence)m_tm.getTopicByID("bond").getOccurrences().iterator().next(); assertNotNull(o.getValue()); params.set(0, o); params.set(1, o.getValue()); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(1, out.getRows().size()); assertEquals(o.getValue(), out.getRow(0).get(1)); params.set(1, "NOMATCH"); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(0, out.getRows().size()); } public void testOpenMatch() throws Exception { ArrayList params = new ArrayList(); Variable a= new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(5, out.getRows().size()); Iterator it = out.getRows().iterator(); while (it.hasNext()) { List row = (List)it.next(); Object o = row.get(0); String v = (String)row.get(1); if (o instanceof TopicName) { assertEquals(v, ((TopicName)o).getValue()); } else if (o instanceof DataObject) { assertEquals(v, ((DataObject)o).getValue()); } } } } /* * $Log: ValuePredicateTest.java,v $ * Revision 1.1 2005/03/06 17:33:23 lheuer * Initial tolog import * * Revision 1.2 2004/06/14 20:09:46 kal_ahmed * Updated test code to work with new Predicate interface. * * Revision 1.1 2004/06/13 09:06:43 kal_ahmed * Initial version of value() predicate. * */ --- NEW FILE: TopicNameTest.java --- /* * Created on 14-Jun-2004 * @author Kal */ package org.tmapiutils.query.tolog.predicates.test; import java.util.ArrayList; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.TopicNamePredicate; import org.tmapiutils.query.tolog.utils.TologContext; import org.tmapiutils.query.tolog.utils.VariableSet; import org.tmapi.core.TopicName; import org.tmapi.core.Topic; /** * @author Kal * * Describe TopicNameTest here. */ public class TopicNameTest extends PredicateTestBase { /** * @param name */ public TopicNameTest(String name) { super(name); } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getTestMap() */ public String getTestMap() { return "[topic1 = \"Topic1\"]\n" + "[topic2 = \"Topic2\"]\n" + "[topic3 = \"Topic3\";\"topic3\"" + " = \"Topic Three\"]\n" + "[topic4]"; } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getPredicateClass() */ public Class getPredicateClass() { return TopicNamePredicate.class; } public void testMatchOnName() throws Exception { Topic topic1 = m_tm.getTopicByID("topic1"); TopicName bn = (TopicName) topic1.getTopicNames().iterator().next(); ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); params.set(1, bn); VariableSet out = m_predicate.matches(params, new TologContext()); assertNotNull(out); assertEquals(1, out.getRows().size()); assertEquals(topic1, out.getRow(0).get(0)); } public void testMatchOnTopic() throws Exception { Topic topic3 = m_tm.getTopicByID("topic3"); ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); params.set(0, topic3); VariableSet out = m_predicate.matches(params, new TologContext()); assertNotNull(out); assertEquals(2, out.getRows().size()); assertEquals(topic3, out.getRow(0).get(0)); String data = ((TopicName)out.getRow(0).get(1)).getValue(); assertTrue(data.equals("Topic3") || data.equals("Topic Three")); data = ((TopicName)out.getRow(1).get(1)).getValue(); assertTrue(data.equals("Topic3") || data.equals("Topic Three")); } public void testOpenMatch() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, new TologContext()); assertNotNull(out); assertEquals(4, out.getRows().size()); assertFalse(out.getColumn(a).contains(m_tm.getTopicByID("topic4"))); } public void testClosedMatch() throws Exception { Topic topic1 = m_tm.getTopicByID("topic1"); TopicName bn1 = (TopicName) topic1.getTopicNames().iterator().next(); Topic topic2 = m_tm.getTopicByID("topic2"); ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); params.set(0, topic1); params.set(1, bn1); VariableSet out = m_predicate.matches(params, new TologContext()); assertNotNull(out); assertEquals(1, out.getRows().size()); params.set(0, topic2); out = m_predicate.matches(params, new TologContext()); assertNotNull(out); assertEquals(0, out.getRows().size()); } } --- NEW FILE: TypePredicateTest.java --- /* Copyright (c) 2000-2004 The TM4J Project. All rights reserved. The license for this source code can be found in the file LICENSE.TXT with this distribution or at http://tm4j.org/LICENSE.txt */ /* *$Header: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test/TypePredicateTest.java,v 1.1 2005/03/06 17:33:23 lheuer Exp $ */ package org.tmapiutils.query.tolog.predicates.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.TypePredicate; import org.tmapiutils.query.tolog.utils.VariableSet; import org.tmapi.core.Association; import org.tmapi.core.AssociationRole; import org.tmapi.core.Occurrence; import org.tmapi.core.Topic; /** * * @author Kal Ahmed (ka...@te...) */ public class TypePredicateTest extends PredicateTestBase { /** * @param name */ public TypePredicateTest(String name) { super(name); } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getTestMap() */ public String getTestMap() { return "[fred:person]\n{fred, bootsize, [[12]]}\n[bigco:company]\nworks-for(fred:employee,bigco:employer)"; } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getPredicateClass() */ public Class getPredicateClass() { return TypePredicate.class; } public void testMatchOnTyped() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); Topic fred = m_tm.getTopicByID("fred"); params.set(0, fred.getOccurrences().iterator().next()); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); assertEquals(m_tm.getTopicByID("bootsize"), out.getRow(0).get(1)); AssociationRole fredRole = (AssociationRole) fred.getRolesPlayed().iterator().next(); params.set(0, fredRole); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); assertEquals(m_tm.getTopicByID("employee"), out.getRow(0).get(1)); params.set(0, fredRole.getParent()); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); assertEquals(m_tm.getTopicByID("works-for"), out.getRow(0).get(1)); } public void testMatchOnType() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); params.set(1, m_tm.getTopicByID("bootsize")); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); assertTrue(out.getRow(0).get(0) instanceof Occurrence); params.set(1, m_tm.getTopicByID("employee")); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); assertTrue(out.getRow(0).get(0) instanceof AssociationRole); params.set(1, m_tm.getTopicByID("works-for")); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); assertTrue(out.getRow(0).get(0) instanceof Association); } public void testClosedMatch() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); Topic fred = m_tm.getTopicByID("fred"); params.set(0, fred.getOccurrences().iterator().next()); params.set(1, m_tm.getTopicByID("bootsize")); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); AssociationRole fredRole = (AssociationRole) fred.getRolesPlayed().iterator().next(); params.set(0, fredRole); params.set(1, m_tm.getTopicByID("employee")); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); params.set(0, fredRole.getParent()); params.set(1, m_tm.getTopicByID("works-for")); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getRows().size()); } public void testOpenMatch() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertEquals(4, out.getRows().size()); Iterator it = (out.getRows().iterator()); while (it.hasNext()) { List row = (List)it.next(); Object typed = row.get(0); Topic type = (Topic) row.get(1); if (typed instanceof Association) { assertEquals(((Association)typed).getType(), type); } else if (typed instanceof AssociationRole) { assertEquals(((AssociationRole)typed).getType(), type); } else if (typed instanceof Occurrence) { assertEquals(((Occurrence)typed).getType(), type); } } } } /* * $Log: TypePredicateTest.java,v $ * Revision 1.1 2005/03/06 17:33:23 lheuer * Initial tolog import * * Revision 1.2 2004/06/14 20:09:46 kal_ahmed * Updated test code to work with new Predicate interface. * * Revision 1.1 2004/06/13 10:16:48 kal_ahmed * Initial implementation of type() predicate. * */ --- NEW FILE: AssociationPredicateTest.java --- /* Copyright (c) 2000-2004 The TM4J Project. All rights reserved. The license for this source code can be found in the file LICENSE.TXT with this distribution or at http://tm4j.org/LICENSE.txt */ /* *$Header: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test/AssociationPredicateTest.java,v 1.1 2005/03/06 17:33:23 lheuer Exp $ */ package org.tmapiutils.query.tolog.predicates.test; import java.util.ArrayList; import java.util.Iterator; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.AssociationPredicate; import org.tmapiutils.query.tolog.utils.VariableSet; import org.tmapi.core.Association; /** * @author Kal * * Describe AssociationPredicateTest here. */ public class AssociationPredicateTest extends PredicateTestBase { /** * @param name */ public AssociationPredicateTest(String name) { super(name); } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getTestMap() */ public String getTestMap() { return "works-for(fred:employee, bigco:employer)\n" + "works-for(barney:employee, bigco:employer)\n"; } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getPredicateClass() */ public Class getPredicateClass() { return AssociationPredicate.class; } public void testAssociationsMatch() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); params.add(a); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(2, out.getRows().size()); Iterator it = out.getColumn(a).iterator(); while (it.hasNext()) { assertTrue(it.next() instanceof Association); } } public void testClosedMatch() throws Exception { ArrayList params = new ArrayList(); Variable a = new Variable("A"); params.add(a); m_predicate.setParameters(params); params.set(0, m_tm.getAssociations().iterator().next()); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(1, out.getRows().size()); params.set(0, m_tm.getTopicByID("fred")); out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(0, out.getRows().size()); } } /* * $Log: AssociationPredicateTest.java,v $ * Revision 1.1 2005/03/06 17:33:23 lheuer * Initial tolog import * * Revision 1.2 2004/06/14 20:09:46 kal_ahmed * Updated test code to work with new Predicate interface. * * Revision 1.1 2004/06/11 08:29:29 kal_ahmed * Added association and association-role predicates. * */ --- NEW FILE: OccurrencePredicateTest.java --- /* Copyright (c) 2000-2004 The TM4J Project. All rights reserved. The license for this source code can be found in the file LICENSE.TXT with this distribution or at http://tm4j.org/LICENSE.txt */ /* *$Header: /cvsroot/tmapi-utils/tmapi-utils/src/org/tmapiutils/query/tolog/predicates/test/OccurrencePredicateTest.java,v 1.1 2005/03/06 17:33:23 lheuer Exp $ */ package org.tmapiutils.query.tolog.predicates.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.tmapiutils.query.tolog.parser.Variable; import org.tmapiutils.query.tolog.predicates.OccurrencePredicate; import org.tmapiutils.query.tolog.utils.VariableSet; /** * @author Kal * * Describe OccurrencePredicateTest here. */ public class OccurrencePredicateTest extends PredicateTestBase { private static final String TESTMAP = "[techquila]\n" + "{techquila, homepage, \"http://www.techquila.com/\"}\n" + "{techquila, contact-details, \"http://www.techquila.com/contact.html\"}" + "[tm4j]\n" + "{tm4j, homepage, \"http://www.tm4j.org/\"}"; /** * Constructor for OccurrencePredicateTest. * @param arg0 */ public OccurrencePredicateTest(String arg0) { super(arg0); } public static void main(String[] args) { junit.textui.TestRunner.run(OccurrencePredicateTest.class); } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getTestMap() */ public String getTestMap() { return TESTMAP; } /* (non-Javadoc) * @see org.tmapiutils.query.tolog.predicates.test.PredicateTestBase#getPredicateClass() */ public Class getPredicateClass() { return OccurrencePredicate.class; } public void testOpenMatch() throws Exception { List params = new ArrayList(); Variable a = new Variable("A"); Variable b = new Variable("B"); params.add(a); params.add(b); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(2, out.getColumns().size()); assertEquals(3, out.getRows().size()); assertTrue(out.getColumn(a).contains(m_tm.getObjectByID("techquila"))); assertTrue(out.getColumn(a).contains(m_tm.getObjectByID("tm4j"))); Iterator it = m_tm.getTopicByID("techquila").getOccurrences().iterator(); while (it.hasNext()) { assertTrue(out.getColumn(b).contains(it.next())); } it = m_tm.getTopicByID("tm4j").getOccurrences().iterator(); while (it.hasNext()) { assertTrue(out.getColumn(b).contains(it.next())); } } public void testTopicMatch() throws Exception { List params = new ArrayList(); Variable a = new Variable("A"); params.add(a); params.add(m_tm.getTopicByID("techquila").getOccurrences().iterator().next()); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(1, out.getRows().size()); assertTrue(out.getRow(0).contains(m_tm.getTopicByID("techquila"))); } public void testOccurrenceMatch() throws Exception { List params = new ArrayList(); Variable a = new Variable("A"); params.add(m_tm.getTopicByID("techquila")); params.add(a); m_predicate.setParameters(params); VariableSet out = m_predicate.matches(params, m_context); assertNotNull(out); assertEquals(1, out.getColumns().size()); assertEquals(2, out.getRows().size()); Iterator it = m_tm.getTopicByID("techquila").getOccurrences().iterator(); while (it.hasNext()) { assertTrue(out.getColumn(a).contains(it.next())); } } public void testClosedMatch() throws Exception { List params = new ArrayList(); Variable a = new Variab... [truncated message content] |