[z3-checkins] r9821 - in z3/zemantic/trunk/src/zemantic: . tests
michelp at codespeak.net
michelp at codespeak.net
Wed Mar 16 13:26:04 MET 2005
Author: michelp
Date: Wed Mar 16 13:26:04 2005
New Revision: 9821
Modified:
z3/zemantic/trunk/src/zemantic/query.py
z3/zemantic/trunk/src/zemantic/tests/test_query.py
Log:
fixes for tarek
Modified: z3/zemantic/trunk/src/zemantic/query.py
==============================================================================
--- z3/zemantic/trunk/src/zemantic/query.py (original)
+++ z3/zemantic/trunk/src/zemantic/query.py Wed Mar 16 13:26:04 2005
@@ -286,7 +286,7 @@
def __call__(self, store):
results = Set()
for query in self._queries:
- BTrees.OOBTree.union(results, Set(query(store)))
+ results = BTrees.OOBTree.union(results, Set(list(query(store))))
for result in results:
yield result
@@ -304,7 +304,6 @@
def __call__(self, store):
results = Set()
for query in self._queries:
- results.intersection(query(store))
+ results = BTrees.OOBTree.intersection(results, Set(list(query(store))))
for result in results:
yield result
-
Modified: z3/zemantic/trunk/src/zemantic/tests/test_query.py
==============================================================================
--- z3/zemantic/trunk/src/zemantic/tests/test_query.py (original)
+++ z3/zemantic/trunk/src/zemantic/tests/test_query.py Wed Mar 16 13:26:04 2005
@@ -11,14 +11,89 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
-
import unittest
+
+from rdflib.URIRef import URIRef
+
from zope.testing.doctestunit import DocTestSuite
+from zemantic.triplestore import TripleStore
+from zemantic.query import UnionChain
+from zemantic.public import *
+
+class QueryTestCase(unittest.TestCase):
+
+ def _getSampleCatalog(self):
+ store = TripleStore()
+
+ store.add((URIRef(u'Tarek'), URIRef(u'likes'), URIRef(u'pizza')))
+ store.add((URIRef(u'Bob'), URIRef(u'likes'), URIRef(u'cheese')))
+ store.add((URIRef(u'Bob'), URIRef(u'hates'), URIRef(u'pizza')))
+ store.add((URIRef(u'Robert'), URIRef(u'likes'), URIRef(u'pizza')))
+ store.add((URIRef(u'Marie'), URIRef(u'likes'), URIRef(u'cheese')))
+
+ return store
+
+ def test_simpleQueries(self):
+ ob = self._getSampleCatalog()
+
+ res = ob.query(Query(Any, Any, Any))
+ res = list(res)
+ self.assertEquals(len(res), 5)
+
+ res = ob.query(Query(Any, u'<likes>', Any))
+ res = list(res)
+ self.assertEquals(len(res), 4)
+
+ res = ob.query(Query(Any, u'<hates>', Any))
+ res = list(res)
+ self.assertEquals(len(res), 1)
+
+ res = ob.query(Query(u'<Bob>', Any, Any))
+ res = list(res)
+ self.assertEquals(len(res), 2)
+
+ res = ob.query(Query(u'<Bob>', Any, u'<cheese>'))
+ res = list(res)
+ self.assertEquals(len(res), 1)
+
+ res = ob.query(Query(u'<Bob>', u'<likes>', u'<cheese>'))
+ res = list(res)
+ self.assertEquals(len(res), 1)
+
+
+ res = ob.query(Query(u'<Bob>', u'<hates>', u'<cheese>'))
+ res = list(res)
+ self.assertEquals(len(res), 0)
+
+ def test_unionQueries(self):
+ ob = self._getSampleCatalog()
+
+ q1 = Query(Any, Any, Any)
+ q1 = UnionChain(q1)
+ self.assertNotEquals(q1, None)
+
+ res = ob.query(q1)
+ self.assertNotEquals(res, None)
+ res = list(res)
+ self.assertEquals(len(res), 5)
+
+ q1 = Query(u'<Bob>', u'<likes>', Any)
+ q2 = Query(u'<Bob>', u'<hates>', Any)
+
+ q1_and_q2 = UnionChain(q1, q2)
+ self.assertNotEquals(q1_and_q2, None)
+
+ res = ob.query(q1_and_q2)
+ self.assertNotEquals(res, None)
+ res = list(res)
+ self.assertEquals(len(res), 2)
+
+
+
def test_suite():
- return unittest.TestSuite((
- DocTestSuite('zemantic.query'),
- ))
+ return unittest.TestSuite((unittest.makeSuite(QueryTestCase),
+ DocTestSuite('zemantic.query')))
if __name__ == '__main__':
unittest.main(defaultTest='test_suite')
More information about the z3-checkins
mailing list