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