1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
The ``tests/`` directory
''''''''''''''''''''''''
Ideally, every Python code, extension module, or subpackage in Scipy
package directory should have the corresponding ``test_<name>.py``
file in ``tests/`` directory. This file should define classes
derived from the ``numpy.testing.TestCase`` class (or from
``unittest.TestCase``) and have names starting with ``test``. The methods
of these classes whose names contain ``test`` or start with ``bench`` are
automatically picked up by the test machinery.
A minimal example of a ``test_yyy.py`` file that implements tests for
a NumPy package module ``numpy.xxx.yyy`` containing a function
``zzz()``, is shown below::
import sys
from numpy.testing import *
# import xxx symbols
from numpy.xxx.yyy import zzz
class test_zzz(TestCase):
def test_simple(self, level=1):
assert zzz()=='Hello from zzz'
#...
if __name__ == "__main__":
run_module_tests(file)
Note that all classes that are inherited from ``TestCase`` class, are
automatically picked up by the test runner.
``numpy.testing`` module provides also the following convenience
functions::
assert_equal(actual,desired,err_msg='',verbose=1)
assert_almost_equal(actual,desired,decimal=7,err_msg='',verbose=1)
assert_approx_equal(actual,desired,significant=7,err_msg='',verbose=1)
assert_array_equal(x,y,err_msg='')
assert_array_almost_equal(x,y,decimal=6,err_msg='')
rand(*shape) # returns random array with a given shape
To run all test scripts of the module ``xxx``, execute in Python:
>>> import numpy
>>> numpy.xxx.test()
To run only tests for ``xxx.yyy`` module, execute:
>>> NumpyTest('xxx.yyy').test(level=1,verbosity=1)
|