summaryrefslogtreecommitdiff
path: root/libs/python/test/numpy.py
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-06-25 22:59:01 +0000
committer <>2013-09-27 11:49:28 +0000
commit8c4528713d907ee2cfd3bfcbbad272c749867f84 (patch)
treec09e2ce80f47b90c85cc720f5139089ad9c8cfff /libs/python/test/numpy.py
downloadboost-tarball-baserock/morph.tar.gz
Imported from /home/lorry/working-area/delta_boost-tarball/boost_1_54_0.tar.bz2.boost_1_54_0baserock/morph
Diffstat (limited to 'libs/python/test/numpy.py')
-rw-r--r--libs/python/test/numpy.py87
1 files changed, 87 insertions, 0 deletions
diff --git a/libs/python/test/numpy.py b/libs/python/test/numpy.py
new file mode 100644
index 000000000..84e8313d1
--- /dev/null
+++ b/libs/python/test/numpy.py
@@ -0,0 +1,87 @@
+# Copyright David Abrahams 2004. Distributed under the Boost
+# Software License, Version 1.0. (See accompanying
+# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+false = 0;
+true = 1;
+
+import doctest, numeric_tests
+def _count_failures(test_modules = (numeric_tests,)):
+ failures = 0
+ for m in test_modules:
+ failures += doctest.testmod(m)[0]
+ return failures
+
+def _run(args = None):
+ import sys, numarray_tests, numeric_tests
+
+ if args is not None:
+ sys.argv = args
+
+ # See which of the numeric modules are installed
+ has_numeric = 0
+ try: import Numeric
+ except ImportError: pass
+ else:
+ has_numeric = 1
+ m = Numeric
+
+ has_numarray = 0
+ try: import numarray
+ except ImportError: pass
+ else:
+ has_numarray = 1
+ m = numarray
+
+ # Bail if neither one is installed
+ if not (has_numeric or has_numarray):
+ return 0
+
+ # test the info routine outside the doctest. See numpy.cpp for an
+ # explanation
+ import numpy_ext
+ if (has_numarray):
+ numpy_ext.info(m.array((1,2,3)))
+
+ failures = 0
+
+ #
+ # Run tests 4 different ways if both modules are installed, just
+ # to show that set_module_and_type() is working properly
+ #
+
+ # run all the tests with default module search
+ print 'testing default extension module:', \
+ numpy_ext.get_module_name() or '[numeric support not installed]'
+
+ failures += _count_failures()
+
+ # test against Numeric if installed
+ if has_numeric:
+ print 'testing Numeric module explicitly'
+ numpy_ext.set_module_and_type('Numeric', 'ArrayType')
+
+ failures += _count_failures()
+
+ if has_numarray:
+ print 'testing numarray module explicitly'
+ numpy_ext.set_module_and_type('numarray', 'NDArray')
+ # Add the _numarray_tests to the list of things to test in
+ # this case.
+ failures += _count_failures((numarray_tests, numeric_tests))
+
+ # see that we can go back to the default
+ numpy_ext.set_module_and_type('', '')
+ print 'testing default module again:', \
+ numpy_ext.get_module_name() or '[numeric support not installed]'
+
+ failures += _count_failures()
+
+ return failures
+
+if __name__ == '__main__':
+ print "running..."
+ import sys
+ status = _run()
+ if (status == 0): print "Done."
+ sys.exit(status)