summaryrefslogtreecommitdiff
path: root/numpy/f2py/lib/tests/test_module_scalar.py
diff options
context:
space:
mode:
authorPearu Peterson <pearu.peterson@gmail.com>2007-05-18 16:44:43 +0000
committerPearu Peterson <pearu.peterson@gmail.com>2007-05-18 16:44:43 +0000
commit0683bce893de37d134fe94cb6a19bc90c3ab26e7 (patch)
treefc931a36f21e79abdeb8aea1c02798bcec1402ef /numpy/f2py/lib/tests/test_module_scalar.py
parentb3caec68294618d217bdb26872b3c9d235c6ade6 (diff)
downloadnumpy-0683bce893de37d134fe94cb6a19bc90c3ab26e7.tar.gz
g3 f2py: impl. compiling Fortran codes online (function numpy.f2py.lib.compile), clean up testing.
Diffstat (limited to 'numpy/f2py/lib/tests/test_module_scalar.py')
-rw-r--r--numpy/f2py/lib/tests/test_module_scalar.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/numpy/f2py/lib/tests/test_module_scalar.py b/numpy/f2py/lib/tests/test_module_scalar.py
new file mode 100644
index 000000000..e11a1e0ae
--- /dev/null
+++ b/numpy/f2py/lib/tests/test_module_scalar.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+"""
+Tests for module with scalar derived types and subprograms.
+
+-----
+Permission to use, modify, and distribute this software is given under the
+terms of the NumPy License. See http://scipy.org.
+
+NO WARRANTY IS EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
+Author: Pearu Peterson <pearu@cens.ioc.ee>
+Created: Oct 2006
+-----
+"""
+
+import os
+import sys
+from numpy.testing import *
+set_package_path()
+from lib.main import build_extension, compile
+restore_path()
+
+fortran_code = '''
+module test_module_scalar_ext
+
+ contains
+ subroutine foo(a)
+ integer a
+!f2py intent(in,out) a
+ a = a + 1
+ end subroutine foo
+ function foo2(a)
+ integer a
+ integer foo2
+ foo2 = a + 2
+ end function foo2
+end module test_module_scalar_ext
+'''
+
+m, = compile(fortran_code, modulenames = ['test_module_scalar_ext'])
+
+from numpy import *
+
+class test_m(NumpyTestCase):
+
+ def check_foo_simple(self, level=1):
+ foo = m.foo
+ r = foo(2)
+ assert isinstance(r,int32),`type(r)`
+ assert_equal(r,3)
+
+ def check_foo2_simple(self, level=1):
+ foo2 = m.foo2
+ r = foo2(2)
+ assert isinstance(r,int32),`type(r)`
+ assert_equal(r,4)
+
+if __name__ == "__main__":
+ NumpyTest().run()