summaryrefslogtreecommitdiff
path: root/numpy/f2py/lib/tests
diff options
context:
space:
mode:
authorRobert Kern <robert.kern@gmail.com>2008-07-03 19:57:24 +0000
committerRobert Kern <robert.kern@gmail.com>2008-07-03 19:57:24 +0000
commit484c100392601f4942ceecbedf32e6df0201d473 (patch)
tree5e5a58b30a39bd1b5481333ae4a4b9c34e466841 /numpy/f2py/lib/tests
parent0c817a5d51c2c16db9df5c015ff846002d991d74 (diff)
downloadnumpy-484c100392601f4942ceecbedf32e6df0201d473.tar.gz
Removing G3 f2py code. Development has moved to https://launchpad.net/f2py/
Diffstat (limited to 'numpy/f2py/lib/tests')
-rw-r--r--numpy/f2py/lib/tests/test_derived_scalar.py72
-rw-r--r--numpy/f2py/lib/tests/test_module_module.py59
-rw-r--r--numpy/f2py/lib/tests/test_module_scalar.py56
-rw-r--r--numpy/f2py/lib/tests/test_scalar_function_in.py531
-rw-r--r--numpy/f2py/lib/tests/test_scalar_in_out.py528
5 files changed, 0 insertions, 1246 deletions
diff --git a/numpy/f2py/lib/tests/test_derived_scalar.py b/numpy/f2py/lib/tests/test_derived_scalar.py
deleted file mode 100644
index 60c082171..000000000
--- a/numpy/f2py/lib/tests/test_derived_scalar.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env python
-"""
-Tests for intent(in,out) derived type arguments in Fortran subroutine's.
-
------
-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 *
-from numpy.f2py.lib.main import build_extension, compile
-
-fortran_code = '''
-subroutine foo(a)
- type myt
- integer flag
- end type myt
- type(myt) a
-!f2py intent(in,out) a
- a % flag = a % flag + 1
-end
-function foo2(a)
- type myt
- integer flag
- end type myt
- type(myt) a
- type(myt) foo2
- foo2 % flag = a % flag + 2
-end
-'''
-
-m, = compile(fortran_code, 'test_derived_scalar_ext')
-
-from numpy import *
-
-class TestM(TestCase):
-
- def test_foo_simple(self, level=1):
- a = m.myt(2)
- assert_equal(a.flag,2)
- assert isinstance(a,m.myt),`a`
- r = m.foo(a)
- assert isinstance(r,m.myt),`r`
- assert r is a
- assert_equal(r.flag,3)
- assert_equal(a.flag,3)
-
- a.flag = 5
- assert_equal(r.flag,5)
-
- #s = m.foo((5,))
-
- def test_foo2_simple(self, level=1):
- a = m.myt(2)
- assert_equal(a.flag,2)
- assert isinstance(a,m.myt),`a`
- r = m.foo2(a)
- assert isinstance(r,m.myt),`r`
- assert r is not a
- assert_equal(a.flag,2)
- assert_equal(r.flag,4)
-
-
-if __name__ == "__main__":
- run_module_suite()
diff --git a/numpy/f2py/lib/tests/test_module_module.py b/numpy/f2py/lib/tests/test_module_module.py
deleted file mode 100644
index 5a3fefa32..000000000
--- a/numpy/f2py/lib/tests/test_module_module.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/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 *
-
-from numpy.f2py.lib.main import build_extension, compile
-
-fortran_code = '''
-module test_module_module_ext2
- type rat
- integer n,d
- end type rat
- contains
- subroutine foo2()
- print*,"In foo2"
- end subroutine foo2
-end module
-module test_module_module_ext
- contains
- subroutine foo
- use test_module_module_ext2
- print*,"In foo"
- call foo2
- end subroutine foo
- subroutine bar(a)
- use test_module_module_ext2
- type(rat) a
- print*,"In bar,a=",a
- end subroutine bar
-end module test_module_module_ext
-'''
-
-m,m2 = compile(fortran_code, modulenames=['test_module_module_ext',
- 'test_module_module_ext2',
- ])
-
-from numpy import *
-
-class TestM(TestCase):
-
- def test_foo_simple(self, level=1):
- foo = m.foo
- foo()
-
-if __name__ == "__main__":
- run_module_suite()
diff --git a/numpy/f2py/lib/tests/test_module_scalar.py b/numpy/f2py/lib/tests/test_module_scalar.py
deleted file mode 100644
index acaae0517..000000000
--- a/numpy/f2py/lib/tests/test_module_scalar.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/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 *
-from numpy.f2py.lib.main import build_extension, compile
-
-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 TestM(TestCase):
-
- def test_foo_simple(self, level=1):
- foo = m.foo
- r = foo(2)
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,3)
-
- def test_foo2_simple(self, level=1):
- foo2 = m.foo2
- r = foo2(2)
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,4)
-
-if __name__ == "__main__":
- run_module_suite()
diff --git a/numpy/f2py/lib/tests/test_scalar_function_in.py b/numpy/f2py/lib/tests/test_scalar_function_in.py
deleted file mode 100644
index bbc37d9f8..000000000
--- a/numpy/f2py/lib/tests/test_scalar_function_in.py
+++ /dev/null
@@ -1,531 +0,0 @@
-#!/usr/bin/env python
-"""
-Tests for intent(in) arguments in subroutine-wrapped Fortran functions.
-
------
-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 *
-
-from numpy.f2py.lib.main import build_extension, compile
-
-fortran_code = '''\
-! -*- f77 -*-
- function fooint1(a)
- integer*1 a
- integer*1 fooint1
- fooint1 = a + 1
- end
- function fooint2(a)
- integer*2 a
- integer*2 fooint2
- fooint2 = a + 1
- end
- function fooint4(a)
- integer*4 a
- integer*4 fooint4
- fooint4 = a + 1
- end
- function fooint8(a)
- integer*8 a
- integer*8 fooint8
- fooint8 = a + 1
- end
- function foofloat4(a)
- real*4 a
- real*4 foofloat4
- foofloat4 = a + 1.0e0
- end
- function foofloat8(a)
- real*8 a
- real*8 foofloat8
- foofloat8 = a + 1.0d0
- end
- function foocomplex8(a)
- complex*8 a
- complex*8 foocomplex8
- foocomplex8 = a + 1.0e0
- end
- function foocomplex16(a)
- complex*16 a
- complex*16 foocomplex16
- foocomplex16 = a + 1.0d0
- end
- function foobool1(a)
- logical*1 a
- logical*1 foobool1
- foobool1 = .not. a
- end
- function foobool2(a)
- logical*2 a
- logical*2 foobool2
- foobool2 = .not. a
- end
- function foobool4(a)
- logical*4 a
- logical*4 foobool4
- foobool4 = .not. a
- end
- function foobool8(a)
- logical*8 a
- logical*8 foobool8
- foobool8 = .not. a
- end
- function foostring1(a)
- character*1 a
- character*1 foostring1
- foostring1 = "1"
- end
- function foostring5(a)
- character*5 a
- character*5 foostring5
- foostring5 = a
- foostring5(1:2) = "12"
- end
-! function foostringstar(a)
-! character*(*) a
-! character*(*) foostringstar
-! if (len(a).gt.0) then
-! foostringstar = a
-! foostringstar(1:1) = "1"
-! endif
-! end
-'''
-
-m, = compile(fortran_code, 'test_scalar_function_in_ext')
-
-from numpy import *
-
-class TestM(TestCase):
-
- def test_foo_integer1(self, level=1):
- i = int8(2)
- e = int8(3)
- func = m.fooint1
- assert isinstance(i,int8),`type(i)`
- r = func(i)
- assert isinstance(r,int8),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,int8),`type(r)`
- assert_equal(r,e)
-
- for intx in [int64,int16,int32]:
- r = func(intx(2))
- assert isinstance(r,int8),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,int8),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,int8),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,int8),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_integer2(self, level=1):
- i = int16(2)
- e = int16(3)
- func = m.fooint2
- assert isinstance(i,int16),`type(i)`
- r = func(i)
- assert isinstance(r,int16),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,int16),`type(r)`
- assert_equal(r,e)
-
- for intx in [int8,int64,int32]:
- r = func(intx(2))
- assert isinstance(r,int16),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,int16),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,int16),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,int16),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_integer4(self, level=1):
- i = int32(2)
- e = int32(3)
- func = m.fooint4
- assert isinstance(i,int32),`type(i)`
- r = func(i)
- assert isinstance(r,int32),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,e)
-
- for intx in [int8,int16,int64]:
- r = func(intx(2))
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_integer8(self, level=1):
- i = int64(2)
- e = int64(3)
- func = m.fooint8
- assert isinstance(i,int64),`type(i)`
- r = func(i)
- assert isinstance(r,int64),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,int64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,int64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,int64),`type(r)`
- assert_equal(r,e)
-
- for intx in [int8,int16,int32]:
- r = func(intx(2))
- assert isinstance(r,int64),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,int64),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_real4(self, level=1):
- i = float32(2)
- e = float32(3)
- func = m.foofloat4
- assert isinstance(i,float32),`type(i)`
- r = func(i)
- assert isinstance(r,float32),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,float32),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,float32),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,float32),`type(r)`
- assert_equal(r,e+float32(0.2))
-
- r = func(float64(2.0))
- assert isinstance(r,float32),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,float32),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_real8(self, level=1):
- i = float64(2)
- e = float64(3)
- func = m.foofloat8
- assert isinstance(i,float64),`type(i)`
- r = func(i)
- assert isinstance(r,float64),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,float64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,float64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,float64),`type(r)`
- assert_equal(r,e+float64(0.2))
-
- r = func(float32(2.0))
- assert isinstance(r,float64),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,float64),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_complex8(self, level=1):
- i = complex64(2)
- e = complex64(3)
- func = m.foocomplex8
- assert isinstance(i,complex64),`type(i)`
- r = func(i)
- assert isinstance(r,complex64),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e+complex64(0.2))
-
- r = func(2+1j)
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e+complex64(1j))
-
- r = func(complex128(2.0))
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e)
-
- r = func([2,3])
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e+complex64(3j))
-
- self.assertRaises(TypeError,lambda :func([2,1,3]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_complex16(self, level=1):
- i = complex128(2)
- e = complex128(3)
- func = m.foocomplex16
- assert isinstance(i,complex128),`type(i)`
- r = func(i)
- assert isinstance(r,complex128),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e+complex128(0.2))
-
- r = func(2+1j)
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e+complex128(1j))
-
- r = func([2])
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e)
-
- r = func([2,3])
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e+complex128(3j))
-
- r = func(complex64(2.0))
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func([2,1,3]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_bool1(self, level=1):
- i = bool8(True)
- e = bool8(False)
- func = m.foobool1
- assert isinstance(i,bool8),`type(i)`
- r = func(i)
- assert isinstance(r,bool8),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- for tv in [1,2,2.1,-1j,[0],True]:
- r = func(tv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,e)
-
- for fv in [0,0.0,0j,False,(),{},[]]:
- r = func(fv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,not e)
-
- def test_foo_bool2(self, level=1):
- i = bool8(True)
- e = bool8(False)
- func = m.foobool2
- assert isinstance(i,bool8),`type(i)`
- r = func(i)
- assert isinstance(r,bool8),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- for tv in [1,2,2.1,-1j,[0],True]:
- r = func(tv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,e)
-
- for fv in [0,0.0,0j,False,(),{},[]]:
- r = func(fv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,not e)
-
- def test_foo_bool4(self, level=1):
- i = bool8(True)
- e = bool8(False)
- func = m.foobool4
- assert isinstance(i,bool8),`type(i)`
- r = func(i)
- assert isinstance(r,bool8),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- for tv in [1,2,2.1,-1j,[0],True]:
- r = func(tv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,e)
-
- for fv in [0,0.0,0j,False,(),{},[]]:
- r = func(fv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,not e)
-
- def test_foo_bool8(self, level=1):
- i = bool8(True)
- e = bool8(False)
- func = m.foobool8
- assert isinstance(i,bool8),`type(i)`
- r = func(i)
- assert isinstance(r,bool8),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- for tv in [1,2,2.1,-1j,[0],True]:
- r = func(tv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,e)
-
- for fv in [0,0.0,0j,False,(),{},[]]:
- r = func(fv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,not e)
-
- def test_foo_string1(self, level=1):
- i = string0('a')
- e = string0('1')
- func = m.foostring1
- assert isinstance(i,string0),`type(i)`
- r = func(i)
- assert isinstance(r,string0),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func('ab')
- assert isinstance(r,string0),`type(r)`
- assert_equal(r,e)
-
- r = func('')
- assert isinstance(r,string0),`type(r)`
- assert_equal(r,e)
-
- def test_foo_string5(self, level=1):
- i = string0('abcde')
- e = string0('12cde')
- func = m.foostring5
- assert isinstance(i,string0),`type(i)`
- r = func(i)
- assert isinstance(r,string0),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func('abc')
- assert isinstance(r,string0),`type(r)`
- assert_equal(r,'12c ')
-
- r = func('abcdefghi')
- assert isinstance(r,string0),`type(r)`
- assert_equal(r,'12cde')
-
- r = func([1])
- assert isinstance(r,string0),`type(r)`
- assert_equal(r,'12] ')
-
- def _check_foo_string0(self, level=1):
- i = string0('abcde')
- e = string0('12cde')
- func = m.foostringstar
- r = func('abcde')
- assert_equal(r,'1bcde')
- r = func('')
- assert_equal(r,'')
-
-
-if __name__ == "__main__":
- run_module_suite()
diff --git a/numpy/f2py/lib/tests/test_scalar_in_out.py b/numpy/f2py/lib/tests/test_scalar_in_out.py
deleted file mode 100644
index 1ffd95f01..000000000
--- a/numpy/f2py/lib/tests/test_scalar_in_out.py
+++ /dev/null
@@ -1,528 +0,0 @@
-#!/usr/bin/env python
-"""
-Tests for intent(in,out) arguments in Fortran subroutine's.
-
------
-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 *
-
-from numpy.f2py.lib.main import build_extension, compile
-
-fortran_code = '''
- subroutine fooint1(a)
- integer*1 a
-!f2py intent(in,out) a
- a = a + 1
- end
- subroutine fooint2(a)
- integer*2 a
-!f2py intent(in,out) a
- a = a + 1
- end
- subroutine fooint4(a)
- integer*4 a
-!f2py intent(in,out) a
- a = a + 1
- end
- subroutine fooint8(a)
- integer*8 a
-!f2py intent(in,out) a
- a = a + 1
- end
- subroutine foofloat4(a)
- real*4 a
-!f2py intent(in,out) a
- a = a + 1.0e0
- end
- subroutine foofloat8(a)
- real*8 a
-!f2py intent(in,out) a
- a = a + 1.0d0
- end
- subroutine foocomplex8(a)
- complex*8 a
-!f2py intent(in,out) a
- a = a + 1.0e0
- end
- subroutine foocomplex16(a)
- complex*16 a
-!f2py intent(in,out) a
- a = a + 1.0d0
- end
- subroutine foobool1(a)
- logical*1 a
-!f2py intent(in,out) a
- a = .not. a
- end
- subroutine foobool2(a)
- logical*2 a
-!f2py intent(in,out) a
- a = .not. a
- end
- subroutine foobool4(a)
- logical*4 a
-!f2py intent(in,out) a
- a = .not. a
- end
- subroutine foobool8(a)
- logical*8 a
-!f2py intent(in,out) a
- a = .not. a
- end
- subroutine foostring1(a)
- character*1 a
-!f2py intent(in,out) a
- a = "1"
- end
- subroutine foostring5(a)
- character*5 a
-!f2py intent(in,out) a
- a(1:2) = "12"
- end
- subroutine foostringstar(a)
- character*(*) a
-!f2py intent(in,out) a
- if (len(a).gt.0) then
- a(1:1) = "1"
- endif
- end
-'''
-
-m, = compile(fortran_code, 'test_scalar_in_out_ext', source_ext = '.f')
-
-from numpy import *
-
-class TestM(TestCase):
-
- def test_foo_integer1(self, level=1):
- i = int8(2)
- e = int8(3)
- func = m.fooint1
- assert isinstance(i,int8),`type(i)`
- r = func(i)
- assert isinstance(r,int8),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,int8),`type(r)`
- assert_equal(r,e)
-
- for intx in [int64,int16,int32]:
- r = func(intx(2))
- assert isinstance(r,int8),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,int8),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,int8),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,int8),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_integer2(self, level=1):
- i = int16(2)
- e = int16(3)
- func = m.fooint2
- assert isinstance(i,int16),`type(i)`
- r = func(i)
- assert isinstance(r,int16),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,int16),`type(r)`
- assert_equal(r,e)
-
- for intx in [int8,int64,int32]:
- r = func(intx(2))
- assert isinstance(r,int16),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,int16),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,int16),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,int16),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_integer4(self, level=1):
- i = int32(2)
- e = int32(3)
- func = m.fooint4
- assert isinstance(i,int32),`type(i)`
- r = func(i)
- assert isinstance(r,int32),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,e)
-
- for intx in [int8,int16,int64]:
- r = func(intx(2))
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,int32),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_integer8(self, level=1):
- i = int64(2)
- e = int64(3)
- func = m.fooint8
- assert isinstance(i,int64),`type(i)`
- r = func(i)
- assert isinstance(r,int64),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,int64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,int64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,int64),`type(r)`
- assert_equal(r,e)
-
- for intx in [int8,int16,int32]:
- r = func(intx(2))
- assert isinstance(r,int64),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,int64),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_real4(self, level=1):
- i = float32(2)
- e = float32(3)
- func = m.foofloat4
- assert isinstance(i,float32),`type(i)`
- r = func(i)
- assert isinstance(r,float32),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,float32),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,float32),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,float32),`type(r)`
- assert_equal(r,e+float32(0.2))
-
- r = func(float64(2.0))
- assert isinstance(r,float32),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,float32),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_real8(self, level=1):
- i = float64(2)
- e = float64(3)
- func = m.foofloat8
- assert isinstance(i,float64),`type(i)`
- r = func(i)
- assert isinstance(r,float64),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,float64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,float64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,float64),`type(r)`
- assert_equal(r,e+float64(0.2))
-
- r = func(float32(2.0))
- assert isinstance(r,float64),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,float64),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func(2.2j))
- self.assertRaises(TypeError,lambda :func([2,1]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_complex8(self, level=1):
- i = complex64(2)
- e = complex64(3)
- func = m.foocomplex8
- assert isinstance(i,complex64),`type(i)`
- r = func(i)
- assert isinstance(r,complex64),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e+complex64(0.2))
-
- r = func(2+1j)
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e+complex64(1j))
-
- r = func(complex128(2.0))
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e)
-
- r = func([2])
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e)
-
- r = func([2,3])
- assert isinstance(r,complex64),`type(r)`
- assert_equal(r,e+complex64(3j))
-
- self.assertRaises(TypeError,lambda :func([2,1,3]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_complex16(self, level=1):
- i = complex128(2)
- e = complex128(3)
- func = m.foocomplex16
- assert isinstance(i,complex128),`type(i)`
- r = func(i)
- assert isinstance(r,complex128),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func(2)
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e)
-
- r = func(2.0)
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e)
-
- r = func(2.2)
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e+complex128(0.2))
-
- r = func(2+1j)
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e+complex128(1j))
-
- r = func([2])
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e)
-
- r = func([2,3])
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e+complex128(3j))
-
- r = func(complex64(2.0))
- assert isinstance(r,complex128),`type(r)`
- assert_equal(r,e)
-
- self.assertRaises(TypeError,lambda :func([2,1,3]))
- self.assertRaises(TypeError,lambda :func({}))
-
- def test_foo_bool1(self, level=1):
- i = bool8(True)
- e = bool8(False)
- func = m.foobool1
- assert isinstance(i,bool8),`type(i)`
- r = func(i)
- assert isinstance(r,bool8),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- for tv in [1,2,2.1,-1j,[0],True]:
- r = func(tv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,e)
-
- for fv in [0,0.0,0j,False,(),{},[]]:
- r = func(fv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,not e)
-
- def test_foo_bool2(self, level=1):
- i = bool8(True)
- e = bool8(False)
- func = m.foobool2
- assert isinstance(i,bool8),`type(i)`
- r = func(i)
- assert isinstance(r,bool8),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- for tv in [1,2,2.1,-1j,[0],True]:
- r = func(tv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,e)
-
- for fv in [0,0.0,0j,False,(),{},[]]:
- r = func(fv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,not e)
-
- def test_foo_bool4(self, level=1):
- i = bool8(True)
- e = bool8(False)
- func = m.foobool4
- assert isinstance(i,bool8),`type(i)`
- r = func(i)
- assert isinstance(r,bool8),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- for tv in [1,2,2.1,-1j,[0],True]:
- r = func(tv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,e)
-
- for fv in [0,0.0,0j,False,(),{},[]]:
- r = func(fv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,not e)
-
- def test_foo_bool8(self, level=1):
- i = bool8(True)
- e = bool8(False)
- func = m.foobool8
- assert isinstance(i,bool8),`type(i)`
- r = func(i)
- assert isinstance(r,bool8),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- for tv in [1,2,2.1,-1j,[0],True]:
- r = func(tv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,e)
-
- for fv in [0,0.0,0j,False,(),{},[]]:
- r = func(fv)
- assert isinstance(r,bool8),`type(r)`
- assert_equal(r,not e)
-
- def test_foo_string1(self, level=1):
- i = string0('a')
- e = string0('1')
- func = m.foostring1
- assert isinstance(i,string0),`type(i)`
- r = func(i)
- assert isinstance(r,string0),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func('ab')
- assert isinstance(r,string0),`type(r)`
- assert_equal(r,e)
-
- r = func('')
- assert isinstance(r,string0),`type(r)`
- assert_equal(r,e)
-
- def test_foo_string5(self, level=1):
- i = string0('abcde')
- e = string0('12cde')
- func = m.foostring5
- assert isinstance(i,string0),`type(i)`
- r = func(i)
- assert isinstance(r,string0),`type(r)`
- assert i is not r,`id(i),id(r)`
- assert_equal(r,e)
-
- r = func('abc')
- assert isinstance(r,string0),`type(r)`
- assert_equal(r,'12c ')
-
- r = func('abcdefghi')
- assert isinstance(r,string0),`type(r)`
- assert_equal(r,'12cde')
-
- r = func([1])
- assert isinstance(r,string0),`type(r)`
- assert_equal(r,'12] ')
-
- def test_foo_string0(self, level=1):
- i = string0('abcde')
- e = string0('12cde')
- func = m.foostringstar
- r = func('abcde')
- assert_equal(r,'1bcde')
- r = func('')
- assert_equal(r,'')
-
-
-if __name__ == "__main__":
- run_module_suite()