summaryrefslogtreecommitdiff
path: root/doc/swig/test/testFortran.py
diff options
context:
space:
mode:
authorStefan van der Walt <stefan@sun.ac.za>2008-08-23 23:17:23 +0000
committerStefan van der Walt <stefan@sun.ac.za>2008-08-23 23:17:23 +0000
commit5c86844c34674e3d580ac2cd12ef171e18130b13 (patch)
tree2fdf1150706c07c7e193eb7483ce58a5074e5774 /doc/swig/test/testFortran.py
parent376d483d31c4c5427510cf3a8c69fc795aef63aa (diff)
downloadnumpy-5c86844c34674e3d580ac2cd12ef171e18130b13.tar.gz
Move documentation outside of source tree. Remove `doc` import from __init__.
Diffstat (limited to 'doc/swig/test/testFortran.py')
-rw-r--r--doc/swig/test/testFortran.py169
1 files changed, 169 insertions, 0 deletions
diff --git a/doc/swig/test/testFortran.py b/doc/swig/test/testFortran.py
new file mode 100644
index 000000000..d2c382869
--- /dev/null
+++ b/doc/swig/test/testFortran.py
@@ -0,0 +1,169 @@
+#! /usr/bin/env python
+
+# System imports
+from distutils.util import get_platform
+import os
+import sys
+import unittest
+
+# Import NumPy
+import numpy as np
+major, minor = [ int(d) for d in np.__version__.split(".")[:2] ]
+if major == 0: BadListError = TypeError
+else: BadListError = ValueError
+
+import Fortran
+
+######################################################################
+
+class FortranTestCase(unittest.TestCase):
+
+ def __init__(self, methodName="runTests"):
+ unittest.TestCase.__init__(self, methodName)
+ self.typeStr = "double"
+ self.typeCode = "d"
+
+ # Test (type* IN_FARRAY2, int DIM1, int DIM2) typemap
+ def testSecondElementContiguous(self):
+ "Test luSplit function with a Fortran-array"
+ print >>sys.stderr, self.typeStr, "... ",
+ second = Fortran.__dict__[self.typeStr + "SecondElement"]
+ matrix = np.arange(9).reshape(3, 3).astype(self.typeCode)
+ self.assertEquals(second(matrix), 3)
+
+ def testSecondElementFortran(self):
+ "Test luSplit function with a Fortran-array"
+ print >>sys.stderr, self.typeStr, "... ",
+ second = Fortran.__dict__[self.typeStr + "SecondElement"]
+ matrix = np.asfortranarray(np.arange(9).reshape(3, 3),
+ self.typeCode)
+ self.assertEquals(second(matrix), 3)
+
+ def testSecondElementObject(self):
+ "Test luSplit function with a Fortran-array"
+ print >>sys.stderr, self.typeStr, "... ",
+ second = Fortran.__dict__[self.typeStr + "SecondElement"]
+ matrix = np.asfortranarray([[0,1,2],[3,4,5],[6,7,8]], self.typeCode)
+ self.assertEquals(second(matrix), 3)
+
+######################################################################
+
+class scharTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "schar"
+ self.typeCode = "b"
+
+######################################################################
+
+class ucharTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "uchar"
+ self.typeCode = "B"
+
+######################################################################
+
+class shortTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "short"
+ self.typeCode = "h"
+
+######################################################################
+
+class ushortTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "ushort"
+ self.typeCode = "H"
+
+######################################################################
+
+class intTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "int"
+ self.typeCode = "i"
+
+######################################################################
+
+class uintTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "uint"
+ self.typeCode = "I"
+
+######################################################################
+
+class longTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "long"
+ self.typeCode = "l"
+
+######################################################################
+
+class ulongTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "ulong"
+ self.typeCode = "L"
+
+######################################################################
+
+class longLongTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "longLong"
+ self.typeCode = "q"
+
+######################################################################
+
+class ulongLongTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "ulongLong"
+ self.typeCode = "Q"
+
+######################################################################
+
+class floatTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "float"
+ self.typeCode = "f"
+
+######################################################################
+
+class doubleTestCase(FortranTestCase):
+ def __init__(self, methodName="runTest"):
+ FortranTestCase.__init__(self, methodName)
+ self.typeStr = "double"
+ self.typeCode = "d"
+
+######################################################################
+
+if __name__ == "__main__":
+
+ # Build the test suite
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite( scharTestCase))
+ suite.addTest(unittest.makeSuite( ucharTestCase))
+ suite.addTest(unittest.makeSuite( shortTestCase))
+ suite.addTest(unittest.makeSuite( ushortTestCase))
+ suite.addTest(unittest.makeSuite( intTestCase))
+ suite.addTest(unittest.makeSuite( uintTestCase))
+ suite.addTest(unittest.makeSuite( longTestCase))
+ suite.addTest(unittest.makeSuite( ulongTestCase))
+ suite.addTest(unittest.makeSuite( longLongTestCase))
+ suite.addTest(unittest.makeSuite(ulongLongTestCase))
+ suite.addTest(unittest.makeSuite( floatTestCase))
+ suite.addTest(unittest.makeSuite( doubleTestCase))
+
+ # Execute the test suite
+ print "Testing 2D Functions of Module Matrix"
+ print "NumPy version", np.__version__
+ print
+ result = unittest.TextTestRunner(verbosity=2).run(suite)
+ sys.exit(len(result.errors) + len(result.failures))