[Scipy-svn] r4491 - trunk/scipy/sandbox/mkufunc

scipy-svn at scipy.org scipy-svn at scipy.org
Sat Jun 28 11:40:19 EDT 2008


Author: ilan
Date: 2008-06-28 10:40:16 -0500 (Sat, 28 Jun 2008)
New Revision: 4491

Modified:
   trunk/scipy/sandbox/mkufunc/mkufunc.py
   trunk/scipy/sandbox/mkufunc/test_mkufunc.py
Log:
Moved some tests

Modified: trunk/scipy/sandbox/mkufunc/mkufunc.py
===================================================================
--- trunk/scipy/sandbox/mkufunc/mkufunc.py	2008-06-28 14:36:29 UTC (rev 4490)
+++ trunk/scipy/sandbox/mkufunc/mkufunc.py	2008-06-28 15:40:16 UTC (rev 4491)
@@ -32,6 +32,7 @@
     
     compilation is done upon initialization
     >>> x = Cfunc(sqr, signature)
+    <IGNORE_OUTPUT>
     >>> x.nin # number of input arguments
     1
     >>> x.nout # number of output arguments (must be 1 for now)
@@ -136,18 +137,6 @@
 ''' % locals()
 
 
-def test1():    
-    def sqr(x):
-        return x * x
-    #verbose = True
-    for argtypes in ([int, int], [float, float]):
-        x = Cfunc(sqr, argtypes)
-        print x.cname, x.nin, x.nout, x.sig
-        print x.cfunc()
-        print '{{{%s}}}' % x.decl()
-        print x.support_code()
-
-
 def write_pypyc(cfuncs):
     """ Given a list of Cfunc instances, write the C code containing the
     functions into a file.
@@ -248,28 +237,6 @@
                         sources=['pypy.c'])
 
 
-def test2():
-    from numpy import array
-
-    def sqr(x):
-        return x * x
-    
-    ufunc = genufunc(sqr, [
-        (float, float),
-        (int, int),
-        ])
-    
-    x = array([0.0, 1.0, 2.5, 12.0])
-    print "x =", x, x.dtype
-    y = ufunc(x)
-    print "y =", y, y.dtype
-    
-    x = array([0, 1, 2, 15])
-    print "x =", x, x.dtype
-    y = ufunc(x)
-    print "y =", y, y.dtype
-
-
 def mkufunc(arg0=[float]):
     """ The actual API function, to be used as decorator function.
         
@@ -324,19 +291,4 @@
 
 if __name__ == '__main__':
     import doctest
-    #doctest.testmod()
-    
-    test2()
-
-    exit()
-    
-
-    def sqr(x):
-        return x * x
-    
-    #sqr = mkufunc({})(sqr)
-    sqr = mkufunc([(float, float)])(sqr)
-    #sqr = mkufunc(int)(sqr)
-    #sqr = mkufunc(sqr)
-    
-    print sqr(8)
+    doctest.testmod()

Modified: trunk/scipy/sandbox/mkufunc/test_mkufunc.py
===================================================================
--- trunk/scipy/sandbox/mkufunc/test_mkufunc.py	2008-06-28 14:36:29 UTC (rev 4490)
+++ trunk/scipy/sandbox/mkufunc/test_mkufunc.py	2008-06-28 15:40:16 UTC (rev 4491)
@@ -5,13 +5,38 @@
 
 from mkufunc import Cfunc, genufunc, mkufunc
 
-def f(x):
-    return 3.2 * x * x - 18.3 * x + sin(x)
+class Internal_Tests(unittest.TestCase):
+    
+    def test_Cfunc(self):
+        def sqr(x):
+            return x * x
+        cf = Cfunc(sqr, [int, int], 42)
+        self.assertEqual(cf.nin, 1)
+        self.assertEqual(cf.nout, 1)
+        self.assertEqual(cf.cname, 'f42_pypy_g_sqr')
 
+    def test_genufunc(self):
+        def foo(x):
+            return x + 17
+        uf = genufunc(foo, [
+                (float, float),
+                (int, int),
+                ])
+        self.assertEqual(uf(4), 21)
+        x = array([1.1, 2.3])
+        y = uf(x)
+        self.assert_(allclose(y, [18.1, 19.3]))
+        self.assert_(str(y.dtype).startswith('float'))
+        
+        x = array([1, 4])
+        y = uf(x)
+        self.assertEqual(list(y), [18, 21])
+        self.assert_(str(y.dtype).startswith('int'))
+
+
 class Arg_Tests(unittest.TestCase):
     
     def check_ufunc(self, f):
-        #self.assert_(f.__type__
         for arg in (array([0.0, 1.0, 2.5]),
                     [0.0, 1.0, 2.5],
                     (0.0, 1.0, 2.5)):




More information about the Scipy-svn mailing list