[Checkins] SVN: Sandbox/adamg/ocql/trunk/src/ocql/ improve code coverage

Charith Paranaliyanage paranaliyanage at gmail.com
Mon Aug 18 02:15:47 EDT 2008


Log message for revision 89952:
  improve code coverage

Changed:
  U   Sandbox/adamg/ocql/trunk/src/ocql/compiler/compiler.txt
  U   Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.py
  U   Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt

-=-
Modified: Sandbox/adamg/ocql/trunk/src/ocql/compiler/compiler.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/compiler/compiler.txt	2008-08-18 01:54:48 UTC (rev 89951)
+++ Sandbox/adamg/ocql/trunk/src/ocql/compiler/compiler.txt	2008-08-18 06:15:45 UTC (rev 89952)
@@ -81,14 +81,25 @@
     >>> print str(run)
     RunnableQuery: reduce(operator.add, map(lambda i: [i], list(metadata.getAll("ICourse"))), [])
 
-    ##bag not implemented
-    ##>>> qo = QueryParser("size set [ i in ICourse | i ]")(TestMetadata())
-    ##>>> opt = QueryOptimizer(qo)()
-    ##>>> alg = Rewriter(opt)()
-    ##>>> print str(alg)
-    ##Iter(<type 'set'>,Lambda i: Single(<type 'set'>,i),Make(<type 'set'>,<type 'set'>,ICourse))
+    >>> metadata = TestMetadata()
+    >>> qo = QueryParser("len(set [ i in ICourse | i ])")(TestMetadata())
+    >>> opt = QueryOptimizer(qo)()
+    >>> alg = Rewriter(opt)()
+    >>> aopt = AlgebraOptimizer(alg)(metadata)
+    >>> run = AlgebraCompiler(aopt)(metadata, alg)
+    >>> print str(run)
+    RunnableQuery: reduce(operator.add, map(lambda i: 1, reduce(set.union, map(lambda i: set([i]), set(metadata.getAll("ICourse"))), set())), 0)
 
     >>> metadata = TestMetadata()
+    >>> qo = QueryParser("len(list [ i in ICourse | i ])")(TestMetadata())
+    >>> opt = QueryOptimizer(qo)()
+    >>> alg = Rewriter(opt)()
+    >>> aopt = AlgebraOptimizer(alg)(metadata)
+    >>> run = AlgebraCompiler(aopt)(metadata, alg)
+    >>> print str(run)
+    RunnableQuery: reduce(operator.add, map(lambda i: 1, reduce(operator.add, map(lambda i: [i], list(metadata.getAll("ICourse"))), [])), 0)
+
+    >>> metadata = TestMetadata()
     >>> qo = QueryParser("set [ c in ICourse | c.code ]")(TestMetadata())
     >>> opt = QueryOptimizer(qo)()
     >>> alg = Rewriter(opt)()

Modified: Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.py
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.py	2008-08-18 01:54:48 UTC (rev 89951)
+++ Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.py	2008-08-18 06:15:45 UTC (rev 89952)
@@ -209,11 +209,11 @@
 
     def __call__(self):
         return Reduce(
-            bag, # FIXME milyen bag
-            0,
+            self.context.expression.collection_type, # FIXME milyen bag
+            Constant(0),
             Lambda('i', Constant(1)),
             Operator('+'),
-            make(bag, set, IRewriter(self.context.expression)())
+            IRewriter(self.context.expression)()
             # FIXME ?set? must be determined by type(self.expression)
         )
 

Modified: Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt	2008-08-18 01:54:48 UTC (rev 89951)
+++ Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt	2008-08-18 06:15:45 UTC (rev 89952)
@@ -69,6 +69,18 @@
     >>> print str(alg)
     Iter(<type 'list'>, Lambda i: Single(<type 'list'>, i), Make(<type 'list'>, <type 'set'>, ICourse))
 
+    >>> qo = QueryParser("len(set [ i in ICourse | i ])")(TestMetadata())
+    >>> opt = QueryOptimizer(qo)()
+    >>> alg = Rewriter(opt)()
+    >>> print str(alg)
+    Reduce(<type 'set'>, `0`, Lambda i: `1`, +, Iter(<type 'set'>, Lambda i: Single(<type 'set'>, i), Make(<type 'set'>, <type 'set'>, ICourse)))
+
+    >>> qo = QueryParser("len(list [ i in ICourse | i ])")(TestMetadata())
+    >>> opt = QueryOptimizer(qo)()
+    >>> alg = Rewriter(opt)()
+    >>> print str(alg)
+    Reduce(<type 'list'>, `0`, Lambda i: `1`, +, Iter(<type 'list'>, Lambda i: Single(<type 'list'>, i), Make(<type 'list'>, <type 'set'>, ICourse)))
+
     >>> qo = QueryParser("set [ c in ICourse; c.credits>3 | c.code ]")(TestMetadata())
     >>> opt = QueryOptimizer(qo)()
     >>> alg = Rewriter(opt)()



More information about the Checkins mailing list