1
0
Fork 0
arangodb/3rdParty/boost/1.62.0/libs/python/test/numpy.py

88 lines
2.4 KiB
Python

# 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)