| Index: third_party/cython/src/Cython/Build/Tests/TestInline.py
|
| diff --git a/third_party/cython/src/Cython/Build/Tests/TestInline.py b/third_party/cython/src/Cython/Build/Tests/TestInline.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..54fffcb9f99258d4296d9f6b9a697b387842fd91
|
| --- /dev/null
|
| +++ b/third_party/cython/src/Cython/Build/Tests/TestInline.py
|
| @@ -0,0 +1,59 @@
|
| +import os, tempfile
|
| +from Cython.Shadow import inline
|
| +from Cython.Build.Inline import safe_type
|
| +from Cython.TestUtils import CythonTest
|
| +
|
| +try:
|
| + import numpy
|
| + has_numpy = True
|
| +except:
|
| + has_numpy = False
|
| +
|
| +test_kwds = dict(force=True, quiet=True)
|
| +
|
| +global_value = 100
|
| +
|
| +class TestInline(CythonTest):
|
| + def setUp(self):
|
| + CythonTest.setUp(self)
|
| + self.test_kwds = dict(test_kwds)
|
| + if os.path.isdir('BUILD'):
|
| + lib_dir = os.path.join('BUILD','inline')
|
| + else:
|
| + lib_dir = tempfile.mkdtemp(prefix='cython_inline_')
|
| + self.test_kwds['lib_dir'] = lib_dir
|
| +
|
| + def test_simple(self):
|
| + self.assertEquals(inline("return 1+2", **self.test_kwds), 3)
|
| +
|
| + def test_types(self):
|
| + self.assertEquals(inline("""
|
| + cimport cython
|
| + return cython.typeof(a), cython.typeof(b)
|
| + """, a=1.0, b=[], **self.test_kwds), ('double', 'list object'))
|
| +
|
| + def test_locals(self):
|
| + a = 1
|
| + b = 2
|
| + self.assertEquals(inline("return a+b", **self.test_kwds), 3)
|
| +
|
| + def test_globals(self):
|
| + self.assertEquals(inline("return global_value + 1", **self.test_kwds), global_value + 1)
|
| +
|
| + def test_pure(self):
|
| + import cython as cy
|
| + b = inline("""
|
| + b = cy.declare(float, a)
|
| + c = cy.declare(cy.pointer(cy.float), &b)
|
| + return b
|
| + """, a=3)
|
| + self.assertEquals(type(b), float)
|
| +
|
| + if has_numpy:
|
| +
|
| + def test_numpy(self):
|
| + import numpy
|
| + a = numpy.ndarray((10, 20))
|
| + a[0,0] = 10
|
| + self.assertEquals(safe_type(a), 'numpy.ndarray[numpy.float64_t, ndim=2]')
|
| + self.assertEquals(inline("return a[0,0]", a=a, **self.test_kwds), 10.0)
|
|
|