[Scipy-svn] r3761 - in branches/testing_cleanup/scipy: . lib/lapack/tests linalg/tests sandbox/exmplpackage/tests sandbox/timeseries sparse sparse/tests

scipy-svn at scipy.org scipy-svn at scipy.org
Tue Jan 1 23:07:46 EST 2008


Author: matthew.brett at gmail.com
Date: 2008-01-01 22:07:30 -0600 (Tue, 01 Jan 2008)
New Revision: 3761

Modified:
   branches/testing_cleanup/scipy/__init__.py
   branches/testing_cleanup/scipy/lib/lapack/tests/esv_tests.py
   branches/testing_cleanup/scipy/lib/lapack/tests/gesv_tests.py
   branches/testing_cleanup/scipy/lib/lapack/tests/test_lapack.py
   branches/testing_cleanup/scipy/linalg/tests/test_atlas_version.py
   branches/testing_cleanup/scipy/linalg/tests/test_basic.py
   branches/testing_cleanup/scipy/linalg/tests/test_blas.py
   branches/testing_cleanup/scipy/linalg/tests/test_decomp.py
   branches/testing_cleanup/scipy/linalg/tests/test_fblas.py
   branches/testing_cleanup/scipy/linalg/tests/test_iterative.py
   branches/testing_cleanup/scipy/linalg/tests/test_lapack.py
   branches/testing_cleanup/scipy/linalg/tests/test_matfuncs.py
   branches/testing_cleanup/scipy/sandbox/exmplpackage/tests/test_foo.py
   branches/testing_cleanup/scipy/sandbox/timeseries/dates.py
   branches/testing_cleanup/scipy/sparse/construct.py
   branches/testing_cleanup/scipy/sparse/tests/test_sparse.py
Log:
Slow progress, delayed by a nasty hack in lib.lapack

Modified: branches/testing_cleanup/scipy/__init__.py
===================================================================
--- branches/testing_cleanup/scipy/__init__.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/__init__.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -14,12 +14,6 @@
 
 """
 
-try:
-    import pkg_resources as _pr # activate namespace packages (manipulates __path__)
-    del _pr
-except ImportError:
-    pass
-
 __all__ = ['pkgload','test']
 
 from numpy import show_config as show_numpy_config

Modified: branches/testing_cleanup/scipy/lib/lapack/tests/esv_tests.py
===================================================================
--- branches/testing_cleanup/scipy/lib/lapack/tests/esv_tests.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/lib/lapack/tests/esv_tests.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -1,8 +1,8 @@
 
-from numpy.testing import *
-from numpy import *
+from scipy.testing import *
+from numpy import dot
 
-class _test_ev:
+class _test_ev(object):
 
     def check_syev(self,level=1,sym='sy',suffix=''):
         a = [[1,2,3],[2,2,3],[3,3,6]]

Modified: branches/testing_cleanup/scipy/lib/lapack/tests/gesv_tests.py
===================================================================
--- branches/testing_cleanup/scipy/lib/lapack/tests/gesv_tests.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/lib/lapack/tests/gesv_tests.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -1,8 +1,8 @@
 
-from numpy.testing import *
-from numpy import *
+from scipy.testing import *
+from numpy import dot
 
-class _test_gev:
+class _test_gev(object):
 
     def check_sygv(self,level=1,sym='sy',suffix='',itype=1):
         a = [[1,2,3],[2,2,3],[3,3,6]]

Modified: branches/testing_cleanup/scipy/lib/lapack/tests/test_lapack.py
===================================================================
--- branches/testing_cleanup/scipy/lib/lapack/tests/test_lapack.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/lib/lapack/tests/test_lapack.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -2,33 +2,36 @@
 #
 # Created by: Pearu Peterson, September 2002
 #
+'''
+This file adapted for nose tests 1/1/08
 
-__usage__ = """
-Build lapack:
-  python setup_lapack.py build
-Run tests if scipy is installed:
-  python -c 'import scipy;scipy.lib.lapack.test(<level>)'
-Run tests if lapack is not installed:
-  python tests/test_lapack.py [<level>]
-"""
+Note that the conversion is not very complete.
 
+This and the included files deliberately use "check_" as the test
+method names.  There are no subclasses of TestCase.  Thus nose will
+pick up nothing but the final test_all_lapack generator function.
+This does the work of collecting the test methods and checking if they
+can be run (see the isrunnable method).  
+'''
+
 import os
 import sys
 from scipy.testing import *
-from numpy import array, ones
+from numpy import dot, ones, zeros
 
-from scipy.lib.lapack import flapack,clapack
+from scipy.lib.lapack import flapack, clapack
 
 sys.path.insert(0, os.path.split(__file__))
 from gesv_tests import _test_gev
 from esv_tests import _test_ev
+del sys.path[0]
 
 #class _test_ev: pass
 
-class _TestLapack(_test_ev,
-                  _test_gev):
-    # Mixin class for lapack tests
-    def test_gebal(self):
+class _TestLapack( _test_ev,
+                   _test_gev):
+
+    def check_gebal(self):
         a = [[1,2,3],[4,5,6],[7,8,9]]
         a1 = [[1,0,0,3e-4],
               [4,0,0,2e-3],
@@ -45,7 +48,7 @@
         ba,lo,hi,pivscale,info = f(a1,permute=1,scale=1)
         assert not info,`info`
 
-    def test_gehrd(self):
+    def check_gehrd(self):
         a = [[-149, -50,-154],
              [ 537, 180, 546],
              [ -27,  -9, -25]]
@@ -54,12 +57,13 @@
         assert not info,`info`
 
     def isrunnable(self,mthname):
+        ''' Return True if required routines for check method present in module '''
         l = mthname.split('_')
         if len(l)>1 and l[0]=='check':
             return hasattr(self.lapack,l[1])
         return 2
 
-class PrefixWrapper:
+class PrefixWrapper(object):
     def __init__(self,module,prefix):
         self.module = module
         self.prefix = prefix
@@ -81,16 +85,16 @@
 ****************************************************************
 """
 else:
-    class TestFlapackDouble(TestCase, _TestLapack):
+    class TestFlapackDouble(_TestLapack):
         lapack = PrefixWrapper(flapack,'d')
         decimal = 12
-    class TestFlapackFloat(TestCase, _TestLapack):
+    class TestFlapackFloat(_TestLapack):
         lapack = PrefixWrapper(flapack,'s')
         decimal = 5
-    class TestFlapackComplex(TestCase, _TestLapack):
+    class TestFlapackComplex(_TestLapack):
         lapack = PrefixWrapper(flapack,'c')
         decimal = 5
-    class TestFlapackDoubleComplex(TestCase, _TestLapack):
+    class TestFlapackDoubleComplex(_TestLapack):
         lapack = PrefixWrapper(flapack,'z')
         decimal = 12
 
@@ -106,18 +110,31 @@
 ****************************************************************
 """
 else:
-    class TestClapackDouble(TestCase, _TestLapack):
+    class TestClapackDouble(_TestLapack):
         lapack = PrefixWrapper(clapack,'d')
         decimal = 12
-    class TestClapackFloat(TestCase, _TestLapack):
+    class TestClapackFloat(_TestLapack):
         lapack = PrefixWrapper(clapack,'s')
         decimal = 5
-    class TestClapackComplex(TestCase, _TestLapack):
+    class TestClapackComplex(_TestLapack):
         lapack = PrefixWrapper(clapack,'c')
         decimal = 5
-    class TestClapackDoubleComplex(TestCase, _TestLapack):
+    class TestClapackDoubleComplex(_TestLapack):
         lapack = PrefixWrapper(clapack,'z')
         decimal = 12
 
-if __name__ == "__main__":
-    unittest.main()
+# Collect test classes and methods with generator
+# This is a moderate hack replicating some obscure numpy testing
+# functionality for use with nose
+
+def test_all_lapack():
+    methods = []
+    for name, value in globals().items():
+        if not (name.startswith('Test')
+                and issubclass(value, _TestLapack)):
+            continue
+        o = value()
+        methods += [getattr(o, n) for n in dir(o) if o.isrunnable(n) is True]
+    for method in methods:
+        yield (method, )
+        

Modified: branches/testing_cleanup/scipy/linalg/tests/test_atlas_version.py
===================================================================
--- branches/testing_cleanup/scipy/linalg/tests/test_atlas_version.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/linalg/tests/test_atlas_version.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -4,10 +4,10 @@
 #
 
 import sys
-from numpy.testing import *
-set_package_path()
-import linalg.atlas_version
-restore_path()
+from scipy.testing import *
 
+import scipy.linalg.atlas_version
+
+
 # No futher tests possible.
 # Importing atlas_version will print out atlas version.

Modified: branches/testing_cleanup/scipy/linalg/tests/test_basic.py
===================================================================
--- branches/testing_cleanup/scipy/linalg/tests/test_basic.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/linalg/tests/test_basic.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -23,12 +23,12 @@
 from numpy import arange, add, array, dot, zeros, identity, conjugate, transpose
 
 import sys
-from numpy.testing import *
-set_package_path()
-from linalg import solve,inv,det,lstsq, toeplitz, hankel, tri, triu, tril
-from linalg import pinv, pinv2, solve_banded
-restore_path()
+from scipy.testing import *
 
+from scipy.linalg import solve,inv,det,lstsq, toeplitz, hankel, tri, triu, \
+     tril, pinv, pinv2, solve_banded
+
+
 def random(size):
     return rand(*size)
 
@@ -37,9 +37,9 @@
     data = add.outer(data,data)
     return data
 
-class TestSolveBanded(NumpyTestCase):
+class TestSolveBanded(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
 
         a = [[1,20,0,0],[-30,4,6,0],[2,1,20,2],[0,-1,7,14]]
         ab = [[0,20,6,2],
@@ -52,9 +52,9 @@
             x = solve_banded((l,u),ab,b)
             assert_array_almost_equal(numpy.dot(a,x),b)
 
-class TestSolve(NumpyTestCase):
+class TestSolve(TestCase):
 
-    def check_20Feb04_bug(self):
+    def test_20Feb04_bug(self):
         a = [[1,1],[1.0,0]] # ok
         x0 = solve(a,[1,0j])
         assert_array_almost_equal(numpy.dot(a,x0),[1,0])
@@ -64,21 +64,21 @@
         x0 = solve(a,b)
         assert_array_almost_equal(numpy.dot(a,x0),[1,0])
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[1,20],[-30,4]]
         for b in ([[1,0],[0,1]],[1,0],
                   [[2,1],[-30,4]]):
             x = solve(a,b)
             assert_array_almost_equal(numpy.dot(a,x),b)
 
-    def check_simple_sym(self):
+    def test_simple_sym(self):
         a = [[2,3],[3,5]]
         for lower in [0,1]:
             for b in ([[1,0],[0,1]],[1,0]):
                 x = solve(a,b,sym_pos=1,lower=lower)
                 assert_array_almost_equal(numpy.dot(a,x),b)
 
-    def check_simple_sym_complex(self):
+    def test_simple_sym_complex(self):
         a = [[5,2],[2,4]]
         for b in [[1j,0],
                   [[1j,1j],
@@ -87,7 +87,7 @@
             x = solve(a,b,sym_pos=1)
             assert_array_almost_equal(numpy.dot(a,x),b)
 
-    def check_simple_complex(self):
+    def test_simple_complex(self):
         a = array([[5,2],[2j,4]],'D')
         for b in [[1j,0],
                   [[1j,1j],
@@ -98,7 +98,7 @@
             x = solve(a,b)
             assert_array_almost_equal(numpy.dot(a,x),b)
 
-    def check_nils_20Feb04(self):
+    def test_nils_20Feb04(self):
         n = 2
         A = random([n,n])+random([n,n])*1j
         X = zeros((n,n),'D')
@@ -109,7 +109,7 @@
             X[:,i] = solve(A,r)
         assert_array_almost_equal(X,Ainv)
 
-    def check_random(self):
+    def test_random(self):
 
         n = 20
         a = random([n,n])
@@ -119,7 +119,7 @@
             x = solve(a,b)
             assert_array_almost_equal(numpy.dot(a,x),b)
 
-    def check_random_complex(self):
+    def test_random_complex(self):
         n = 20
         a = random([n,n]) + 1j * random([n,n])
         for i in range(n): a[i,i] = 20*(.1+a[i,i])
@@ -128,7 +128,7 @@
             x = solve(a,b)
             assert_array_almost_equal(numpy.dot(a,x),b)
 
-    def check_random_sym(self):
+    def test_random_sym(self):
         n = 20
         a = random([n,n])
         for i in range(n):
@@ -140,7 +140,7 @@
             x = solve(a,b,sym_pos=1)
             assert_array_almost_equal(numpy.dot(a,x),b)
 
-    def check_random_sym_complex(self):
+    def test_random_sym_complex(self):
         n = 20
         a = random([n,n])
         #a  = a + 1j*random([n,n]) # XXX: with this the accuracy will be very low
@@ -191,9 +191,9 @@
 
             print '   (secs for %s calls)' % (repeat)
 
-class TestInv(NumpyTestCase):
+class TestInv(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[1,2],[3,4]]
         a_inv = inv(a)
         assert_array_almost_equal(numpy.dot(a,a_inv),
@@ -203,7 +203,7 @@
         assert_array_almost_equal(numpy.dot(a,a_inv),
                                   [[1,0,0],[0,1,0],[0,0,1]])
 
-    def check_random(self):
+    def test_random(self):
         n = 20
         for i in range(4):
             a = random([n,n])
@@ -211,13 +211,13 @@
             a_inv = inv(a)
             assert_array_almost_equal(numpy.dot(a,a_inv),
                                       numpy.identity(n))
-    def check_simple_complex(self):
+    def test_simple_complex(self):
         a = [[1,2],[3,4j]]
         a_inv = inv(a)
         assert_array_almost_equal(numpy.dot(a,a_inv),
                                   [[1,0],[0,1]])
 
-    def check_random_complex(self):
+    def test_random_complex(self):
         n = 20
         for i in range(4):
             a = random([n,n])+2j*random([n,n])
@@ -263,19 +263,19 @@
             print '   (secs for %s calls)' % (repeat)
 
 
-class TestDet(NumpyTestCase):
+class TestDet(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[1,2],[3,4]]
         a_det = det(a)
         assert_almost_equal(a_det,-2.0)
 
-    def check_simple_complex(self):
+    def test_simple_complex(self):
         a = [[1,2],[3,4j]]
         a_det = det(a)
         assert_almost_equal(a_det,-6+4j)
 
-    def check_random(self):
+    def test_random(self):
         import numpy.linalg as linalg
         basic_det = linalg.det
         n = 20
@@ -285,7 +285,7 @@
             d2 = basic_det(a)
             assert_almost_equal(d1,d2)
 
-    def check_random_complex(self):
+    def test_random_complex(self):
         import numpy.linalg as linalg
         basic_det = linalg.det
         n = 20
@@ -338,8 +338,8 @@
     b1 = dot(at, b)
     return solve(a1, b1)
 
-class TestLstsq(NumpyTestCase):
-    def check_random_overdet_large(self):
+class TestLstsq(TestCase):
+    def test_random_overdet_large(self):
         #bug report: Nils Wagner
         n = 200
         a = random([n,2])
@@ -348,21 +348,21 @@
         x = lstsq(a,b)[0]
         assert_array_almost_equal(x,direct_lstsq(a,b))
 
-    def check_simple_exact(self):
+    def test_simple_exact(self):
         a = [[1,20],[-30,4]]
         for b in ([[1,0],[0,1]],[1,0],
                   [[2,1],[-30,4]]):
             x = lstsq(a,b)[0]
             assert_array_almost_equal(numpy.dot(a,x),b)
 
-    def check_simple_overdet(self):
+    def test_simple_overdet(self):
         a = [[1,2],[4,5],[3,4]]
         b = [1,2,3]
         x,res,r,s = lstsq(a,b)
         #XXX: check defintion of res
         assert_array_almost_equal(x,direct_lstsq(a,b))
 
-    def check_simple_underdet(self):
+    def test_simple_underdet(self):
         a = [[1,2,3],[4,5,6]]
         b = [1,2]
         x,res,r,s = lstsq(a,b)
@@ -370,7 +370,7 @@
         assert_array_almost_equal(x,[[-0.05555556],
                                      [0.11111111],[0.27777778]])
 
-    def check_random_exact(self):
+    def test_random_exact(self):
 
         n = 20
         a = random([n,n])
@@ -380,7 +380,7 @@
             x = lstsq(a,b)[0]
             assert_array_almost_equal(numpy.dot(a,x),b)
 
-    def check_random_complex_exact(self):
+    def test_random_complex_exact(self):
         n = 20
         a = random([n,n]) + 1j * random([n,n])
         for i in range(n): a[i,i] = 20*(.1+a[i,i])
@@ -389,7 +389,7 @@
             x = lstsq(a,b)[0]
             assert_array_almost_equal(numpy.dot(a,x),b)
 
-    def check_random_overdet(self):
+    def test_random_overdet(self):
         n = 20
         m = 15
         a = random([n,m])
@@ -401,7 +401,7 @@
             #XXX: check definition of res
             assert_array_almost_equal(x,direct_lstsq(a,b))
 
-    def check_random_complex_overdet(self):
+    def test_random_complex_overdet(self):
         n = 20
         m = 15
         a = random([n,m]) + 1j * random([n,m])
@@ -414,8 +414,8 @@
             #XXX: check definition of res
             assert_array_almost_equal(x,direct_lstsq(a,b,1))
 
-class TestTri(NumpyTestCase):
-    def check_basic(self):
+class TestTri(TestCase):
+    def test_basic(self):
         assert_equal(tri(4),array([[1,0,0,0],
                                    [1,1,0,0],
                                    [1,1,1,0],
@@ -424,7 +424,7 @@
                                                 [1,1,0,0],
                                                 [1,1,1,0],
                                                 [1,1,1,1]],'f'))
-    def check_diag(self):
+    def test_diag(self):
         assert_equal(tri(4,k=1),array([[1,1,0,0],
                                        [1,1,1,0],
                                        [1,1,1,1],
@@ -433,7 +433,7 @@
                                         [1,0,0,0],
                                         [1,1,0,0],
                                         [1,1,1,0]]))
-    def check_2d(self):
+    def test_2d(self):
         assert_equal(tri(4,3),array([[1,0,0],
                                      [1,1,0],
                                      [1,1,1],
@@ -441,7 +441,7 @@
         assert_equal(tri(3,4),array([[1,0,0,0],
                                      [1,1,0,0],
                                      [1,1,1,0]]))
-    def check_diag2d(self):
+    def test_diag2d(self):
         assert_equal(tri(3,4,k=2),array([[1,1,1,0],
                                          [1,1,1,1],
                                          [1,1,1,1]]))
@@ -450,8 +450,8 @@
                                           [1,0,0],
                                           [1,1,0]]))
 
-class TestTril(NumpyTestCase):
-    def check_basic(self):
+class TestTril(TestCase):
+    def test_basic(self):
         a = (100*get_mat(5)).astype('l')
         b = a.copy()
         for k in range(5):
@@ -459,7 +459,7 @@
                 b[k,l] = 0
         assert_equal(tril(a),b)
 
-    def check_diag(self):
+    def test_diag(self):
         a = (100*get_mat(5)).astype('f')
         b = a.copy()
         for k in range(5):
@@ -472,8 +472,8 @@
                 b[k,l] = 0
         assert_equal(tril(a,k=-2),b)
 
-class TestTriu(NumpyTestCase):
-    def check_basic(self):
+class TestTriu(TestCase):
+    def test_basic(self):
         a = (100*get_mat(5)).astype('l')
         b = a.copy()
         for k in range(5):
@@ -481,7 +481,7 @@
                 b[l,k] = 0
         assert_equal(triu(a),b)
 
-    def check_diag(self):
+    def test_diag(self):
         a = (100*get_mat(5)).astype('f')
         b = a.copy()
         for k in range(5):
@@ -494,46 +494,46 @@
                 b[l,k] = 0
         assert_equal(triu(a,k=-2),b)
 
-class TestToeplitz(NumpyTestCase):
-    def check_basic(self):
+class TestToeplitz(TestCase):
+    def test_basic(self):
         y = toeplitz([1,2,3])
         assert_array_equal(y,[[1,2,3],[2,1,2],[3,2,1]])
         y = toeplitz([1,2,3],[1,4,5])
         assert_array_equal(y,[[1,4,5],[2,1,4],[3,2,1]])
 
-class TestHankel(NumpyTestCase):
-    def check_basic(self):
+class TestHankel(TestCase):
+    def test_basic(self):
         y = hankel([1,2,3])
         assert_array_equal(y,[[1,2,3],[2,3,0],[3,0,0]])
         y = hankel([1,2,3],[3,4,5])
         assert_array_equal(y,[[1,2,3],[2,3,4],[3,4,5]])
 
-class TestPinv(NumpyTestCase):
+class TestPinv(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a=array([[1,2,3],[4,5,6.],[7,8,10]])
         a_pinv = pinv(a)
         assert_array_almost_equal(dot(a,a_pinv),[[1,0,0],[0,1,0],[0,0,1]])
         a_pinv = pinv2(a)
         assert_array_almost_equal(dot(a,a_pinv),[[1,0,0],[0,1,0],[0,0,1]])
 
-    def check_simple_0det(self):
+    def test_simple_0det(self):
         a=array([[1,2,3],[4,5,6.],[7,8,9]])
         a_pinv = pinv(a)
         a_pinv2 = pinv2(a)
         assert_array_almost_equal(a_pinv,a_pinv2)
 
-    def check_simple_cols(self):
+    def test_simple_cols(self):
         a=array([[1,2,3],[4,5,6.]])
         a_pinv = pinv(a)
         a_pinv2 = pinv2(a)
         assert_array_almost_equal(a_pinv,a_pinv2)
 
-    def check_simple_rows(self):
+    def test_simple_rows(self):
         a=array([[1,2],[3,4],[5,6]])
         a_pinv = pinv(a)
         a_pinv2 = pinv2(a)
         assert_array_almost_equal(a_pinv,a_pinv2)
 
 if __name__ == "__main__":
-    NumpyTest().run()
+    unittest.main()

Modified: branches/testing_cleanup/scipy/linalg/tests/test_blas.py
===================================================================
--- branches/testing_cleanup/scipy/linalg/tests/test_blas.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/linalg/tests/test_blas.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -12,21 +12,19 @@
   python tests/test_blas.py [<level>]
 """
 
+import sys
+import math
 
 from numpy import arange, add, array
-import math
 
-import sys
-from numpy.testing import *
-set_package_path()
-from linalg import fblas
-print fblas
-from linalg import cblas
-restore_path()
+from scipy.testing import *
 
-class TestCBLAS1Simple(NumpyTestCase):
+from scipy.linalg import fblas, cblas
 
-    def check_axpy(self):
+
+class TestCBLAS1Simple(TestCase):
+
+    def test_axpy(self):
         for p in 'sd':
             f = getattr(cblas,p+'axpy',None)
             if f is None: continue
@@ -36,9 +34,9 @@
             if f is None: continue
             assert_array_almost_equal(f(5,[1,2j,3],[2,-1,3]),[7,10j-1,18])
 
-class TestFBLAS1Simple(NumpyTestCase):
+class TestFBLAS1Simple(TestCase):
 
-    def check_axpy(self):
+    def test_axpy(self):
         for p in 'sd':
             f = getattr(fblas,p+'axpy',None)
             if f is None: continue
@@ -47,7 +45,7 @@
             f = getattr(fblas,p+'axpy',None)
             if f is None: continue
             assert_array_almost_equal(f([1,2j,3],[2,-1,3],a=5),[7,10j-1,18])
-    def check_copy(self):
+    def test_copy(self):
         for p in 'sd':
             f = getattr(fblas,p+'copy',None)
             if f is None: continue
@@ -56,7 +54,7 @@
             f = getattr(fblas,p+'copy',None)
             if f is None: continue
             assert_array_almost_equal(f([3,4j,5+3j],[8]*3),[3,4j,5+3j])
-    def check_asum(self):
+    def test_asum(self):
         for p in 'sd':
             f = getattr(fblas,p+'asum',None)
             if f is None: continue
@@ -65,24 +63,24 @@
             f = getattr(fblas,p+'asum',None)
             if f is None: continue
             assert_almost_equal(f([3j,-4,3-4j]),14)
-    def check_dot(self):
+    def test_dot(self):
         for p in 'sd':
             f = getattr(fblas,p+'dot',None)
             if f is None: continue
             assert_almost_equal(f([3,-4,5],[2,5,1]),-9)
-    def check_complex_dotu(self):
+    def test_complex_dotu(self):
         for p in 'cz':
             f = getattr(fblas,p+'dotu',None)
             if f is None: continue
             assert_almost_equal(f([3j,-4,3-4j],[2,3,1]),-9+2j)
 
-    def check_complex_dotc(self):
+    def test_complex_dotc(self):
         for p in 'cz':
             f = getattr(fblas,p+'dotc',None)
             if f is None: continue
             assert_almost_equal(f([3j,-4,3-4j],[2,3j,1]),3-14j)
 
-    def check_nrm2(self):
+    def test_nrm2(self):
         for p in 'sd':
             f = getattr(fblas,p+'nrm2',None)
             if f is None: continue
@@ -91,7 +89,7 @@
             f = getattr(fblas,p+'nrm2',None)
             if f is None: continue
             assert_almost_equal(f([3j,-4,3-4j]),math.sqrt(50))
-    def check_scal(self):
+    def test_scal(self):
         for p in 'sd':
             f = getattr(fblas,p+'scal',None)
             if f is None: continue
@@ -104,7 +102,7 @@
             f = getattr(fblas,p+'scal',None)
             if f is None: continue
             assert_array_almost_equal(f(3,[3j,-4,3-4j]),[9j,-12,9-12j])
-    def check_swap(self):
+    def test_swap(self):
         for p in 'sd':
             f = getattr(fblas,p+'swap',None)
             if f is None: continue
@@ -119,7 +117,7 @@
             x1,y1 = f(x,y)
             assert_array_almost_equal(x1,y)
             assert_array_almost_equal(y1,x)
-    def check_amax(self):
+    def test_amax(self):
         for p in 'sd':
             f = getattr(fblas,'i'+p+'amax')
             assert_equal(f([-2,4,3]),1)
@@ -128,9 +126,9 @@
             assert_equal(f([-5,4+3j,6]),1)
     #XXX: need tests for rot,rotm,rotg,rotmg
 
-class TestFBLAS2Simple(NumpyTestCase):
+class TestFBLAS2Simple(TestCase):
 
-    def check_gemv(self):
+    def test_gemv(self):
         for p in 'sd':
             f = getattr(fblas,p+'gemv',None)
             if f is None: continue
@@ -142,7 +140,7 @@
             assert_array_almost_equal(f(3j,[[3-4j]],[-4]),[-48-36j])
             assert_array_almost_equal(f(3j,[[3-4j]],[-4],3,[5j]),[-48-21j])
 
-    def check_ger(self):
+    def test_ger(self):
 
         for p in 'sd':
             f = getattr(fblas,p+'ger',None)
@@ -176,9 +174,9 @@
                                            2j,
                                            3j],[3j,4j]),[[6,8],[12,16],[18,24]])
 
-class TestFBLAS3Simple(NumpyTestCase):
+class TestFBLAS3Simple(TestCase):
 
-    def check_gemm(self):
+    def test_gemm(self):
         for p in 'sd':
             f = getattr(fblas,p+'gemm',None)
             if f is None: continue
@@ -190,9 +188,9 @@
             assert_array_almost_equal(f(3j,[3-4j],[-4]),[[-48-36j]])
             assert_array_almost_equal(f(3j,[3-4j],[-4],3,[5j]),[-48-21j])
 
-class TestBLAS(NumpyTestCase):
+class TestBLAS(TestCase):
 
-    def check_fblas(self):
+    def test_fblas(self):
         if hasattr(fblas,'empty_module'):
             print """
 ****************************************************************
@@ -201,7 +199,7 @@
 See scipy/INSTALL.txt for troubleshooting.
 ****************************************************************
 """
-    def check_cblas(self):
+    def test_cblas(self):
         if hasattr(cblas,'empty_module'):
             print """
 ****************************************************************
@@ -215,4 +213,4 @@
 """
 
 if __name__ == "__main__":
-    NumpyTest().run()
+    unittest.main()

Modified: branches/testing_cleanup/scipy/linalg/tests/test_decomp.py
===================================================================
--- branches/testing_cleanup/scipy/linalg/tests/test_decomp.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/linalg/tests/test_decomp.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -15,31 +15,35 @@
 """
 
 import sys
-from numpy.testing import *
+from scipy.testing import *
 
-set_package_path()
-from linalg import eig,eigvals,lu,svd,svdvals,cholesky,qr,schur,rsf2csf
-from linalg import lu_solve,lu_factor,solve,diagsvd,hessenberg,rq
-from linalg import eig_banded,eigvals_banded
-from linalg.flapack import dgbtrf, dgbtrs, zgbtrf, zgbtrs
-from linalg.flapack import dsbev, dsbevd, dsbevx, zhbevd, zhbevx
-restore_path()
 
-from numpy import *
+from scipy.linalg import eig,eigvals,lu,svd,svdvals,cholesky,qr, \
+     schur,rsf2csf, lu_solve,lu_factor,solve,diagsvd,hessenberg,rq, \
+     eig_banded, eigvals_banded
+from scipy.linalg.flapack import dgbtrf, dgbtrs, zgbtrf, zgbtrs, \
+     dsbev, dsbevd, dsbevx, zhbevd, zhbevx
+
+from numpy import array, transpose, sometrue, diag, ones, linalg, \
+     argsort, zeros, arange, float32, complex64, dot, conj, identity, \
+     ravel, sqrt, iscomplex, shape, sort, sign, conjugate, sign, bmat, \
+     asarray, matrix, isfinite
+
+
 from numpy.random import rand
 
 def random(size):
     return rand(*size)
 
-class TestEigVals(NumpyTestCase):
+class TestEigVals(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[1,2,3],[1,2,3],[2,5,6]]
         w = eigvals(a)
         exact_w = [(9+sqrt(93))/2,0,(9-sqrt(93))/2]
         assert_array_almost_equal(w,exact_w)
 
-    def check_simple_tr(self):
+    def test_simple_tr(self):
         a = array([[1,2,3],[1,2,3],[2,5,6]],'d')
         a = transpose(a).copy()
         a = transpose(a)
@@ -47,7 +51,7 @@
         exact_w = [(9+sqrt(93))/2,0,(9-sqrt(93))/2]
         assert_array_almost_equal(w,exact_w)
 
-    def check_simple_complex(self):
+    def test_simple_complex(self):
         a = [[1,2,3],[1,2,3],[2,5,6+1j]]
         w = eigvals(a)
         exact_w = [(9+1j+sqrt(92+6j))/2,
@@ -77,9 +81,9 @@
 
             print '   (secs for %s calls)' % (repeat)
 
-class TestEig(NumpyTestCase):
+class TestEig(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[1,2,3],[1,2,3],[2,5,6]]
         w,v = eig(a)
         exact_w = [(9+sqrt(93))/2,0,(9-sqrt(93))/2]
@@ -99,7 +103,7 @@
         for i in range(3):
             assert_array_almost_equal(dot(transpose(a),v[:,i]),w[i]*v[:,i])
 
-    def check_simple_complex(self):
+    def test_simple_complex(self):
         a = [[1,2,3],[1,2,3],[2,5,6+1j]]
         w,vl,vr = eig(a,left=1,right=1)
         for i in range(3):
@@ -151,10 +155,10 @@
             if all(isfinite(res[:, i])):
                 assert_array_almost_equal(res[:, i], 0)
 
-class TestEigBanded(NumpyTestCase):
+class TestEigBanded(TestCase):
 
     def __init__(self, *args):
-        NumpyTestCase.__init__(self, *args)
+        TestCase.__init__(self, *args)
 
         self.create_bandmat()
 
@@ -238,7 +242,7 @@
     #####################################################################
 
 
-    def check_dsbev(self):
+    def test_dsbev(self):
         """Compare dsbev eigenvalues and eigenvectors with
            the result of linalg.eig."""
         w, evec, info  = dsbev(self.bandmat_sym, compute_v=1)
@@ -248,7 +252,7 @@
 
 
 
-    def check_dsbevd(self):
+    def test_dsbevd(self):
         """Compare dsbevd eigenvalues and eigenvectors with
            the result of linalg.eig."""
         w, evec, info = dsbevd(self.bandmat_sym, compute_v=1)
@@ -258,7 +262,7 @@
 
 
 
-    def check_dsbevx(self):
+    def test_dsbevx(self):
         """Compare dsbevx eigenvalues and eigenvectors
            with the result of linalg.eig."""
         N,N = shape(self.sym_mat)
@@ -270,7 +274,7 @@
         assert_array_almost_equal(abs(evec_), abs(self.evec_sym_lin))
 
 
-    def check_zhbevd(self):
+    def test_zhbevd(self):
         """Compare zhbevd eigenvalues and eigenvectors
            with the result of linalg.eig."""
         w, evec, info = zhbevd(self.bandmat_herm, compute_v=1)
@@ -280,7 +284,7 @@
 
 
 
-    def check_zhbevx(self):
+    def test_zhbevx(self):
         """Compare zhbevx eigenvalues and eigenvectors
            with the result of linalg.eig."""
         N,N = shape(self.herm_mat)
@@ -293,7 +297,7 @@
 
 
 
-    def check_eigvals_banded(self):
+    def test_eigvals_banded(self):
         """Compare eigenvalues of eigvals_banded with those of linalg.eig."""
         w_sym = eigvals_banded(self.bandmat_sym)
         w_sym = w_sym.real
@@ -332,7 +336,7 @@
 
 
 
-    def check_eig_banded(self):
+    def test_eig_banded(self):
         """Compare eigenvalues and eigenvectors of eig_banded
            with those of linalg.eig. """
         w_sym, evec_sym = eig_banded(self.bandmat_sym)
@@ -382,7 +386,7 @@
                                   abs(self.evec_herm_lin[:,ind1:ind2+1]) )
 
 
-    def check_dgbtrf(self):
+    def test_dgbtrf(self):
         """Compare dgbtrf  LU factorisation with the LU factorisation result
            of linalg.lu."""
         M,N = shape(self.real_mat)
@@ -397,7 +401,7 @@
         assert_array_almost_equal(u, u_lin)
 
 
-    def check_zgbtrf(self):
+    def test_zgbtrf(self):
         """Compare zgbtrf  LU factorisation with the LU factorisation result
            of linalg.lu."""
         M,N = shape(self.comp_mat)
@@ -413,7 +417,7 @@
 
 
 
-    def check_dgbtrs(self):
+    def test_dgbtrs(self):
         """Compare dgbtrs  solutions for linear equation system  A*x = b
            with solutions of linalg.solve."""
 
@@ -423,7 +427,7 @@
         y_lin = linalg.solve(self.real_mat, self.b)
         assert_array_almost_equal(y, y_lin)
 
-    def check_zgbtrs(self):
+    def test_zgbtrs(self):
         """Compare zgbtrs  solutions for linear equation system  A*x = b
            with solutions of linalg.solve."""
 
@@ -436,10 +440,10 @@
 
 
 
-class TestLU(NumpyTestCase):
+class TestLU(TestCase):
 
     def __init__(self, *args, **kw):
-        NumpyTestCase.__init__(self, *args, **kw)
+        TestCase.__init__(self, *args, **kw)
 
         self.a = array([[1,2,3],[1,2,3],[2,5,6]])
         self.ca = array([[1,2,3],[1,2,3],[2,5j,6]])
@@ -466,37 +470,37 @@
         assert_array_almost_equal(dot(pl,u),data)
 
     # Simple tests
-    def check_simple(self):
+    def test_simple(self):
         self._test_common(self.a)
 
-    def check_simple_complex(self):
+    def test_simple_complex(self):
         self._test_common(self.ca)
 
-    def check_simple2(self):
+    def test_simple2(self):
         self._test_common(self.b)
 
-    def check_simple2_complex(self):
+    def test_simple2_complex(self):
         self._test_common(self.cb)
 
     # rectangular matrices tests
-    def check_hrectangular(self):
+    def test_hrectangular(self):
         self._test_common(self.hrect)
 
-    def check_vrectangular(self):
+    def test_vrectangular(self):
         self._test_common(self.vrect)
 
-    def check_hrectangular_complex(self):
+    def test_hrectangular_complex(self):
         self._test_common(self.chrect)
 
-    def check_vrectangular_complex(self):
+    def test_vrectangular_complex(self):
         self._test_common(self.cvrect)
 
     # Bigger matrices
-    def check_medium1(self, level = 2):
+    def test_medium1(self):
         """Check lu decomposition on medium size, rectangular matrix."""
         self._test_common(self.med)
 
-    def check_medium1_complex(self, level = 2):
+    def test_medium1_complex(self):
         """Check lu decomposition on medium size, rectangular matrix."""
         self._test_common(self.cmed)
 
@@ -519,8 +523,8 @@
         self.med = self.vrect.astype(float32)
         self.cmed = self.vrect.astype(complex64)
 
-class TestLUSolve(NumpyTestCase):
-    def check_lu(self):
+class TestLUSolve(TestCase):
+    def test_lu(self):
         a = random((10,10))
         b = random((10,))
 
@@ -531,9 +535,9 @@
 
         assert_array_equal(x1,x2)
 
-class TestSVD(NumpyTestCase):
+class TestSVD(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[1,2,3],[1,20,3],[2,5,6]]
         u,s,vh = svd(a)
         assert_array_almost_equal(dot(transpose(u),u),identity(3))
@@ -542,7 +546,7 @@
         for i in range(len(s)): sigma[i,i] = s[i]
         assert_array_almost_equal(dot(dot(u,sigma),vh),a)
 
-    def check_simple_singular(self):
+    def test_simple_singular(self):
         a = [[1,2,3],[1,2,3],[2,5,6]]
         u,s,vh = svd(a)
         assert_array_almost_equal(dot(transpose(u),u),identity(3))
@@ -551,7 +555,7 @@
         for i in range(len(s)): sigma[i,i] = s[i]
         assert_array_almost_equal(dot(dot(u,sigma),vh),a)
 
-    def check_simple_underdet(self):
+    def test_simple_underdet(self):
         a = [[1,2,3],[4,5,6]]
         u,s,vh = svd(a)
         assert_array_almost_equal(dot(transpose(u),u),identity(2))
@@ -560,7 +564,7 @@
         for i in range(len(s)): sigma[i,i] = s[i]
         assert_array_almost_equal(dot(dot(u,sigma),vh),a)
 
-    def check_simple_overdet(self):
+    def test_simple_overdet(self):
         a = [[1,2],[4,5],[3,4]]
         u,s,vh = svd(a)
         assert_array_almost_equal(dot(transpose(u),u),identity(3))
@@ -569,7 +573,7 @@
         for i in range(len(s)): sigma[i,i] = s[i]
         assert_array_almost_equal(dot(dot(u,sigma),vh),a)
 
-    def check_random(self):
+    def test_random(self):
         n = 20
         m = 15
         for i in range(3):
@@ -581,7 +585,7 @@
                 for i in range(len(s)): sigma[i,i] = s[i]
                 assert_array_almost_equal(dot(dot(u,sigma),vh),a)
 
-    def check_simple_complex(self):
+    def test_simple_complex(self):
         a = [[1,2,3],[1,2j,3],[2,5,6]]
         u,s,vh = svd(a)
         assert_array_almost_equal(dot(conj(transpose(u)),u),identity(3))
@@ -590,7 +594,7 @@
         for i in range(len(s)): sigma[i,i] = s[i]
         assert_array_almost_equal(dot(dot(u,sigma),vh),a)
 
-    def check_random_complex(self):
+    def test_random_complex(self):
         n = 20
         m = 15
         for i in range(3):
@@ -604,52 +608,52 @@
                 for i in range(len(s)): sigma[i,i] = s[i]
                 assert_array_almost_equal(dot(dot(u,sigma),vh),a)
 
-class TestSVDVals(NumpyTestCase):
+class TestSVDVals(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[1,2,3],[1,2,3],[2,5,6]]
         s = svdvals(a)
         assert len(s)==3
         assert s[0]>=s[1]>=s[2]
 
-    def check_simple_underdet(self):
+    def test_simple_underdet(self):
         a = [[1,2,3],[4,5,6]]
         s = svdvals(a)
         assert len(s)==2
         assert s[0]>=s[1]
 
-    def check_simple_overdet(self):
+    def test_simple_overdet(self):
         a = [[1,2],[4,5],[3,4]]
         s = svdvals(a)
         assert len(s)==2
         assert s[0]>=s[1]
 
-    def check_simple_complex(self):
+    def test_simple_complex(self):
         a = [[1,2,3],[1,20,3j],[2,5,6]]
         s = svdvals(a)
         assert len(s)==3
         assert s[0]>=s[1]>=s[2]
 
-    def check_simple_underdet_complex(self):
+    def test_simple_underdet_complex(self):
         a = [[1,2,3],[4,5j,6]]
         s = svdvals(a)
         assert len(s)==2
         assert s[0]>=s[1]
 
-    def check_simple_overdet_complex(self):
+    def test_simple_overdet_complex(self):
         a = [[1,2],[4,5],[3j,4]]
         s = svdvals(a)
         assert len(s)==2
         assert s[0]>=s[1]
 
-class TestDiagSVD(NumpyTestCase):
+class TestDiagSVD(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         assert_array_almost_equal(diagsvd([1,0,0],3,3),[[1,0,0],[0,0,0],[0,0,0]])
 
-class TestCholesky(NumpyTestCase):
+class TestCholesky(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[8,2,3],[2,9,3],[3,3,6]]
         c = cholesky(a)
         assert_array_almost_equal(dot(transpose(c),c),a)
@@ -657,7 +661,7 @@
         a = dot(c,transpose(c))
         assert_array_almost_equal(cholesky(a,lower=1),c)
 
-    def check_simple_complex(self):
+    def test_simple_complex(self):
         m = array([[3+1j,3+4j,5],[0,2+2j,2+7j],[0,0,7+4j]])
         a = dot(transpose(conjugate(m)),m)
         c = cholesky(a)
@@ -667,7 +671,7 @@
         a = dot(c,transpose(conjugate(c)))
         assert_array_almost_equal(cholesky(a,lower=1),c)
 
-    def check_random(self):
+    def test_random(self):
         n = 20
         for k in range(2):
             m = random([n,n])
@@ -681,7 +685,7 @@
             a = dot(c,transpose(c))
             assert_array_almost_equal(cholesky(a,lower=1),c)
 
-    def check_random_complex(self):
+    def test_random_complex(self):
         n = 20
         for k in range(2):
             m = random([n,n])+1j*random([n,n])
@@ -696,28 +700,28 @@
             assert_array_almost_equal(cholesky(a,lower=1),c)
 
 
-class TestQR(NumpyTestCase):
+class TestQR(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[8,2,3],[2,9,3],[5,3,6]]
         q,r = qr(a)
         assert_array_almost_equal(dot(transpose(q),q),identity(3))
         assert_array_almost_equal(dot(q,r),a)
 
-    def check_simple_trap(self):
+    def test_simple_trap(self):
         a = [[8,2,3],[2,9,3]]
         q,r = qr(a)
         assert_array_almost_equal(dot(transpose(q),q),identity(2))
         assert_array_almost_equal(dot(q,r),a)
 
-    def check_simple_tall(self):
+    def test_simple_tall(self):
         # full version
         a = [[8,2],[2,9],[5,3]]
         q,r = qr(a)
         assert_array_almost_equal(dot(transpose(q),q),identity(3))
         assert_array_almost_equal(dot(q,r),a)
 
-    def check_simple_tall_e(self):
+    def test_simple_tall_e(self):
         # economy version
         a = [[8,2],[2,9],[5,3]]
         q,r = qr(a,econ=True)
@@ -726,13 +730,13 @@
         assert_equal(q.shape, (3,2))
         assert_equal(r.shape, (2,2))
 
-    def check_simple_complex(self):
+    def test_simple_complex(self):
         a = [[3,3+4j,5],[5,2,2+7j],[3,2,7]]
         q,r = qr(a)
         assert_array_almost_equal(dot(conj(transpose(q)),q),identity(3))
         assert_array_almost_equal(dot(q,r),a)
 
-    def check_random(self):
+    def test_random(self):
         n = 20
         for k in range(2):
             a = random([n,n])
@@ -740,7 +744,7 @@
             assert_array_almost_equal(dot(transpose(q),q),identity(n))
             assert_array_almost_equal(dot(q,r),a)
 
-    def check_random_tall(self):
+    def test_random_tall(self):
         # full version
         m = 200
         n = 100
@@ -750,7 +754,7 @@
             assert_array_almost_equal(dot(transpose(q),q),identity(m))
             assert_array_almost_equal(dot(q,r),a)
 
-    def check_random_tall_e(self):
+    def test_random_tall_e(self):
         # economy version
         m = 200
         n = 100
@@ -762,7 +766,7 @@
             assert_equal(q.shape, (m,n))
             assert_equal(r.shape, (n,n))
 
-    def check_random_trap(self):
+    def test_random_trap(self):
         m = 100
         n = 200
         for k in range(2):
@@ -771,7 +775,7 @@
             assert_array_almost_equal(dot(transpose(q),q),identity(m))
             assert_array_almost_equal(dot(q,r),a)
 
-    def check_random_complex(self):
+    def test_random_complex(self):
         n = 20
         for k in range(2):
             a = random([n,n])+1j*random([n,n])
@@ -779,15 +783,15 @@
             assert_array_almost_equal(dot(conj(transpose(q)),q),identity(n))
             assert_array_almost_equal(dot(q,r),a)
 
-class TestRQ(NumpyTestCase):
+class TestRQ(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[8,2,3],[2,9,3],[5,3,6]]
         r,q = rq(a)
         assert_array_almost_equal(dot(transpose(q),q),identity(3))
         assert_array_almost_equal(dot(r,q),a)
 
-    def check_random(self):
+    def test_random(self):
         n = 20
         for k in range(2):
             a = random([n,n])
@@ -797,25 +801,25 @@
 
 # TODO: implement support for non-square and complex arrays
 
-##    def check_simple_trap(self):
+##    def test_simple_trap(self):
 ##        a = [[8,2,3],[2,9,3]]
 ##        r,q = rq(a)
 ##        assert_array_almost_equal(dot(transpose(q),q),identity(2))
 ##        assert_array_almost_equal(dot(r,q),a)
 
-##    def check_simple_tall(self):
+##    def test_simple_tall(self):
 ##        a = [[8,2],[2,9],[5,3]]
 ##        r,q = rq(a)
 ##        assert_array_almost_equal(dot(transpose(q),q),identity(3))
 ##        assert_array_almost_equal(dot(r,q),a)
 
-##    def check_simple_complex(self):
+##    def test_simple_complex(self):
 ##        a = [[3,3+4j,5],[5,2,2+7j],[3,2,7]]
 ##        r,q = rq(a)
 ##        assert_array_almost_equal(dot(conj(transpose(q)),q),identity(3))
 ##        assert_array_almost_equal(dot(r,q),a)
 
-##    def check_random_tall(self):
+##    def test_random_tall(self):
 ##        m = 200
 ##        n = 100
 ##        for k in range(2):
@@ -824,7 +828,7 @@
 ##            assert_array_almost_equal(dot(transpose(q),q),identity(m))
 ##            assert_array_almost_equal(dot(r,q),a)
 
-##    def check_random_trap(self):
+##    def test_random_trap(self):
 ##        m = 100
 ##        n = 200
 ##        for k in range(2):
@@ -833,7 +837,7 @@
 ##            assert_array_almost_equal(dot(transpose(q),q),identity(m))
 ##            assert_array_almost_equal(dot(r,q),a)
 
-##    def check_random_complex(self):
+##    def test_random_complex(self):
 ##        n = 20
 ##        for k in range(2):
 ##            a = random([n,n])+1j*random([n,n])
@@ -844,9 +848,9 @@
 transp = transpose
 any = sometrue
 
-class TestSchur(NumpyTestCase):
+class TestSchur(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[8,12,3],[2,9,3],[10,3,6]]
         t,z = schur(a)
         assert_array_almost_equal(dot(dot(z,t),transp(conj(z))),a)
@@ -856,9 +860,9 @@
         tc2,zc2 = rsf2csf(tc,zc)
         assert_array_almost_equal(dot(dot(zc2,tc2),transp(conj(zc2))),a)
 
-class TestHessenberg(NumpyTestCase):
+class TestHessenberg(TestCase):
 
-    def check_simple(self):
+    def test_simple(self):
         a = [[-149, -50,-154],
              [ 537, 180, 546],
              [ -27,  -9, -25]]
@@ -869,7 +873,7 @@
         assert_array_almost_equal(dot(transp(q),dot(a,q)),h)
         assert_array_almost_equal(h,h1,decimal=4)
 
-    def check_simple_complex(self):
+    def test_simple_complex(self):
         a = [[-149, -50,-154],
              [ 537, 180j, 546],
              [ -27j,  -9, -25]]
@@ -877,7 +881,7 @@
         h1 = dot(transp(conj(q)),dot(a,q))
         assert_array_almost_equal(h1,h)
 
-    def check_simple2(self):
+    def test_simple2(self):
         a = [[1,2,3,4,5,6,7],
              [0,2,3,4,6,7,2],
              [0,2,2,3,0,3,2],
@@ -888,14 +892,14 @@
         h,q = hessenberg(a,calc_q=1)
         assert_array_almost_equal(dot(transp(q),dot(a,q)),h)
 
-    def check_random(self):
+    def test_random(self):
         n = 20
         for k in range(2):
             a = random([n,n])
             h,q = hessenberg(a,calc_q=1)
             assert_array_almost_equal(dot(transp(q),dot(a,q)),h)
 
-    def check_random_complex(self):
+    def test_random_complex(self):
         n = 20
         for k in range(2):
             a = random([n,n])+1j*random([n,n])
@@ -905,9 +909,9 @@
 
 
 
-class TestDataNotShared(NumpyTestCase):
+class TestDataNotShared(TestCase):
 
-    def check_datanotshared(self):
+    def test_datanotshared(self):
         from scipy.linalg.decomp import _datanotshared
 
         M = matrix([[0,1],[2,3]])
@@ -924,4 +928,4 @@
 
 
 if __name__ == "__main__":
-    NumpyTest().run()
+    unittest.main()

Modified: branches/testing_cleanup/scipy/linalg/tests/test_fblas.py
===================================================================
--- branches/testing_cleanup/scipy/linalg/tests/test_fblas.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/linalg/tests/test_fblas.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -6,14 +6,16 @@
 # !! Complex calculations really aren't checked that carefully.
 # !! Only real valued complex numbers are used in tests.
 
-from numpy import *
-
 import sys
-from numpy.testing import *
-set_package_path()
-from linalg import fblas
-restore_path()
 
+from numpy import dot, float32, float64, complex64, complex128, \
+     arange, array, zeros, shape, transpose, newaxis, \
+     common_type, conjugate
+from scipy.linalg import fblas
+
+from scipy.testing import *
+
+
 #decimal accuracy to require between Python and LAPACK/BLAS calculations
 accuracy = 5
 
@@ -40,39 +42,40 @@
 ##################################################
 ### Test blas ?axpy
 
-class BaseAxpy(NumpyTestCase):
-    def check_default_a(self):
+class BaseAxpy(object):
+    ''' Mixin class for axpy tests '''
+    def test_default_a(self):
         x = arange(3.,dtype=self.dtype)
         y = arange(3.,dtype=x.dtype)
         real_y = x*1.+y
         self.blas_func(x,y)
         assert_array_equal(real_y,y)
-    def check_simple(self):
+    def test_simple(self):
         x = arange(3.,dtype=self.dtype)
         y = arange(3.,dtype=x.dtype)
         real_y = x*3.+y
         self.blas_func(x,y,a=3.)
         assert_array_equal(real_y,y)
-    def check_x_stride(self):
+    def test_x_stride(self):
         x = arange(6.,dtype=self.dtype)
         y = zeros(3,x.dtype)
         y = arange(3.,dtype=x.dtype)
         real_y = x[::2]*3.+y
         self.blas_func(x,y,a=3.,n=3,incx=2)
         assert_array_equal(real_y,y)
-    def check_y_stride(self):
+    def test_y_stride(self):
         x = arange(3.,dtype=self.dtype)
         y = zeros(6,x.dtype)
         real_y = x*3.+y[::2]
         self.blas_func(x,y,a=3.,n=3,incy=2)
         assert_array_equal(real_y,y[::2])
-    def check_x_and_y_stride(self):
+    def test_x_and_y_stride(self):
         x = arange(12.,dtype=self.dtype)
         y = zeros(6,x.dtype)
         real_y = x[::4]*3.+y[::2]
         self.blas_func(x,y,a=3.,n=3,incx=4,incy=2)
         assert_array_equal(real_y,y[::2])
-    def check_x_bad_size(self):
+    def test_x_bad_size(self):
         x = arange(12.,dtype=self.dtype)
         y = zeros(6,x.dtype)
         try:
@@ -81,7 +84,7 @@
             return
         # should catch error and never get here
         assert(0)
-    def check_y_bad_size(self):
+    def test_y_bad_size(self):
         x = arange(12.,dtype=complex64)
         y = zeros(6,x.dtype)
         try:
@@ -92,21 +95,21 @@
         assert(0)
 
 try:
-    class TestSaxpy(BaseAxpy):
+    class TestSaxpy(TestCase, BaseAxpy):
         blas_func = fblas.saxpy
         dtype = float32
 except AttributeError:
     class TestSaxpy: pass
-class TestDaxpy(BaseAxpy):
+class TestDaxpy(TestCase, BaseAxpy):
     blas_func = fblas.daxpy
     dtype = float64
 try:
-    class TestCaxpy(BaseAxpy):
+    class TestCaxpy(TestCase, BaseAxpy):
         blas_func = fblas.caxpy
         dtype = complex64
 except AttributeError:
     class TestCaxpy: pass
-class TestZaxpy(BaseAxpy):
+class TestZaxpy(TestCase, BaseAxpy):
     blas_func = fblas.zaxpy
     dtype = complex128
 
@@ -114,19 +117,20 @@
 ##################################################
 ### Test blas ?scal
 
-class BaseScal(NumpyTestCase):
-    def check_simple(self):
+class BaseScal(object):
+    ''' Mixin class for scal testing '''
+    def test_simple(self):
         x = arange(3.,dtype=self.dtype)
         real_x = x*3.
         self.blas_func(3.,x)
         assert_array_equal(real_x,x)
-    def check_x_stride(self):
+    def test_x_stride(self):
         x = arange(6.,dtype=self.dtype)
         real_x = x.copy()
         real_x[::2] = x[::2]*array(3.,self.dtype)
         self.blas_func(3.,x,n=3,incx=2)
         assert_array_equal(real_x,x)
-    def check_x_bad_size(self):
+    def test_x_bad_size(self):
         x = arange(12.,dtype=self.dtype)
         try:
             self.blas_func(2.,x,n=4,incx=5)
@@ -135,21 +139,21 @@
         # should catch error and never get here
         assert(0)
 try:
-    class TestSscal(BaseScal):
+    class TestSscal(TestCase, BaseScal):
         blas_func = fblas.sscal
         dtype = float32
 except AttributeError:
     class TestSscal: pass
-class TestDscal(BaseScal):
+class TestDscal(TestCase, BaseScal):
     blas_func = fblas.dscal
     dtype = float64
 try:
-    class TestCscal(BaseScal):
+    class TestCscal(TestCase, BaseScal):
         blas_func = fblas.cscal
         dtype = complex64
 except AttributeError:
     class TestCscal: pass
-class TestZscal(BaseScal):
+class TestZscal(TestCase, BaseScal):
     blas_func = fblas.zscal
     dtype = complex128
 
@@ -159,28 +163,29 @@
 ##################################################
 ### Test blas ?copy
 
-class BaseCopy(NumpyTestCase):
-    def check_simple(self):
+class BaseCopy(object):
+    ''' Mixin class for copy testing '''
+    def test_simple(self):
         x = arange(3.,dtype=self.dtype)
         y = zeros(shape(x),x.dtype)
         self.blas_func(x,y)
         assert_array_equal(x,y)
-    def check_x_stride(self):
+    def test_x_stride(self):
         x = arange(6.,dtype=self.dtype)
         y = zeros(3,x.dtype)
         self.blas_func(x,y,n=3,incx=2)
         assert_array_equal(x[::2],y)
-    def check_y_stride(self):
+    def test_y_stride(self):
         x = arange(3.,dtype=self.dtype)
         y = zeros(6,x.dtype)
         self.blas_func(x,y,n=3,incy=2)
         assert_array_equal(x,y[::2])
-    def check_x_and_y_stride(self):
+    def test_x_and_y_stride(self):
         x = arange(12.,dtype=self.dtype)
         y = zeros(6,x.dtype)
         self.blas_func(x,y,n=3,incx=4,incy=2)
         assert_array_equal(x[::4],y[::2])
-    def check_x_bad_size(self):
+    def test_x_bad_size(self):
         x = arange(12.,dtype=self.dtype)
         y = zeros(6,x.dtype)
         try:
@@ -189,7 +194,7 @@
             return
         # should catch error and never get here
         assert(0)
-    def check_y_bad_size(self):
+    def test_y_bad_size(self):
         x = arange(12.,dtype=complex64)
         y = zeros(6,x.dtype)
         try:
@@ -198,7 +203,7 @@
             return
         # should catch error and never get here
         assert(0)
-    #def check_y_bad_type(self):
+    #def test_y_bad_type(self):
     ##   Hmmm. Should this work?  What should be the output.
     #    x = arange(3.,dtype=self.dtype)
     #    y = zeros(shape(x))
@@ -206,21 +211,21 @@
     #    assert_array_equal(x,y)
 
 try:
-    class TestScopy(BaseCopy):
+    class TestScopy(TestCase, BaseCopy):
         blas_func = fblas.scopy
         dtype = float32
 except AttributeError:
     class TestScopy: pass
-class TestDcopy(BaseCopy):
+class TestDcopy(TestCase, BaseCopy):
     blas_func = fblas.dcopy
     dtype = float64
 try:
-    class TestCcopy(BaseCopy):
+    class TestCcopy(TestCase, BaseCopy):
         blas_func = fblas.ccopy
         dtype = complex64
 except AttributeError:
     class TestCcopy: pass
-class TestZcopy(BaseCopy):
+class TestZcopy(TestCase, BaseCopy):
     blas_func = fblas.zcopy
     dtype = complex128
 
@@ -228,8 +233,9 @@
 ##################################################
 ### Test blas ?swap
 
-class BaseSwap(NumpyTestCase):
-    def check_simple(self):
+class BaseSwap(object):
+    ''' Mixin class for swap tests '''
+    def test_simple(self):
         x = arange(3.,dtype=self.dtype)
         y = zeros(shape(x),x.dtype)
         desired_x = y.copy()
@@ -237,7 +243,7 @@
         self.blas_func(x,y)
         assert_array_equal(desired_x,x)
         assert_array_equal(desired_y,y)
-    def check_x_stride(self):
+    def test_x_stride(self):
         x = arange(6.,dtype=self.dtype)
         y = zeros(3,x.dtype)
         desired_x = y.copy()
@@ -245,7 +251,7 @@
         self.blas_func(x,y,n=3,incx=2)
         assert_array_equal(desired_x,x[::2])
         assert_array_equal(desired_y,y)
-    def check_y_stride(self):
+    def test_y_stride(self):
         x = arange(3.,dtype=self.dtype)
         y = zeros(6,x.dtype)
         desired_x = y.copy()[::2]
@@ -254,7 +260,7 @@
         assert_array_equal(desired_x,x)
         assert_array_equal(desired_y,y[::2])
 
-    def check_x_and_y_stride(self):
+    def test_x_and_y_stride(self):
         x = arange(12.,dtype=self.dtype)
         y = zeros(6,x.dtype)
         desired_x = y.copy()[::2]
@@ -262,7 +268,7 @@
         self.blas_func(x,y,n=3,incx=4,incy=2)
         assert_array_equal(desired_x,x[::4])
         assert_array_equal(desired_y,y[::2])
-    def check_x_bad_size(self):
+    def test_x_bad_size(self):
         x = arange(12.,dtype=self.dtype)
         y = zeros(6,x.dtype)
         try:
@@ -271,7 +277,7 @@
             return
         # should catch error and never get here
         assert(0)
-    def check_y_bad_size(self):
+    def test_y_bad_size(self):
         x = arange(12.,dtype=complex64)
         y = zeros(6,x.dtype)
         try:
@@ -282,21 +288,21 @@
         assert(0)
 
 try:
-    class TestSswap(BaseSwap):
+    class TestSswap(TestCase, BaseSwap):
         blas_func = fblas.sswap
         dtype = float32
 except AttributeError:
     class TestSswap: pass
-class TestDswap(BaseSwap):
+class TestDswap(TestCase, BaseSwap):
     blas_func = fblas.dswap
     dtype = float64
 try:
-    class TestCswap(BaseSwap):
+    class TestCswap(TestCase, BaseSwap):
         blas_func = fblas.cswap
         dtype = complex64
 except AttributeError:
     class TestCswap: pass
-class TestZswap(BaseSwap):
+class TestZswap(TestCase, BaseSwap):
     blas_func = fblas.zswap
     dtype = complex128
 
@@ -304,7 +310,8 @@
 ### Test blas ?gemv
 ### This will be a mess to test all cases.
 
-class BaseGemv(NumpyTestCase):
+class BaseGemv(object):
+    ''' Mixin class for gemv tests '''
     def get_data(self,x_stride=1,y_stride=1):
         mult = array(1, dtype = self.dtype)
         if self.dtype in [complex64, complex128]:
@@ -316,37 +323,37 @@
         x = arange(shape(a)[0]*x_stride,dtype=self.dtype) * mult
         y = arange(shape(a)[1]*y_stride,dtype=self.dtype) * mult
         return alpha,beta,a,x,y
-    def check_simple(self):
+    def test_simple(self):
         alpha,beta,a,x,y = self.get_data()
         desired_y = alpha*matrixmultiply(a,x)+beta*y
         y = self.blas_func(alpha,a,x,beta,y)
         assert_array_almost_equal(desired_y,y)
-    def check_default_beta_y(self):
+    def test_default_beta_y(self):
         alpha,beta,a,x,y = self.get_data()
         desired_y = matrixmultiply(a,x)
         y = self.blas_func(1,a,x)
         assert_array_almost_equal(desired_y,y)
-    def check_simple_transpose(self):
+    def test_simple_transpose(self):
         alpha,beta,a,x,y = self.get_data()
         desired_y = alpha*matrixmultiply(transpose(a),x)+beta*y
         y = self.blas_func(alpha,a,x,beta,y,trans=1)
         assert_array_almost_equal(desired_y,y)
-    def check_simple_transpose_conj(self):
+    def test_simple_transpose_conj(self):
         alpha,beta,a,x,y = self.get_data()
         desired_y = alpha*matrixmultiply(transpose(conjugate(a)),x)+beta*y
         y = self.blas_func(alpha,a,x,beta,y,trans=2)
         assert_array_almost_equal(desired_y,y)
-    def check_x_stride(self):
+    def test_x_stride(self):
         alpha,beta,a,x,y = self.get_data(x_stride=2)
         desired_y = alpha*matrixmultiply(a,x[::2])+beta*y
         y = self.blas_func(alpha,a,x,beta,y,incx=2)
         assert_array_almost_equal(desired_y,y)
-    def check_x_stride_transpose(self):
+    def test_x_stride_transpose(self):
         alpha,beta,a,x,y = self.get_data(x_stride=2)
         desired_y = alpha*matrixmultiply(transpose(a),x[::2])+beta*y
         y = self.blas_func(alpha,a,x,beta,y,trans=1,incx=2)
         assert_array_almost_equal(desired_y,y)
-    def check_x_stride_assert(self):
+    def test_x_stride_assert(self):
         # What is the use of this test?
         alpha,beta,a,x,y = self.get_data(x_stride=2)
         try:
@@ -359,19 +366,19 @@
             assert(0)
         except:
             pass
-    def check_y_stride(self):
+    def test_y_stride(self):
         alpha,beta,a,x,y = self.get_data(y_stride=2)
         desired_y = y.copy()
         desired_y[::2] = alpha*matrixmultiply(a,x)+beta*y[::2]
         y = self.blas_func(alpha,a,x,beta,y,incy=2)
         assert_array_almost_equal(desired_y,y)
-    def check_y_stride_transpose(self):
+    def test_y_stride_transpose(self):
         alpha,beta,a,x,y = self.get_data(y_stride=2)
         desired_y = y.copy()
         desired_y[::2] = alpha*matrixmultiply(transpose(a),x)+beta*y[::2]
         y = self.blas_func(alpha,a,x,beta,y,trans=1,incy=2)
         assert_array_almost_equal(desired_y,y)
-    def check_y_stride_assert(self):
+    def test_y_stride_assert(self):
         # What is the use of this test?
         alpha,beta,a,x,y = self.get_data(y_stride=2)
         try:
@@ -386,21 +393,21 @@
             pass
 
 try:
-    class TestSgemv(BaseGemv):
+    class TestSgemv(TestCase, BaseGemv):
         blas_func = fblas.sgemv
         dtype = float32
 except AttributeError:
     class TestSgemv: pass
-class TestDgemv(BaseGemv):
+class TestDgemv(TestCase, BaseGemv):
     blas_func = fblas.dgemv
     dtype = float64
 try:
-    class TestCgemv(BaseGemv):
+    class TestCgemv(TestCase, BaseGemv):
         blas_func = fblas.cgemv
         dtype = complex64
 except AttributeError:
     class TestCgemv: pass
-class TestZgemv(BaseGemv):
+class TestZgemv(TestCase, BaseGemv):
     blas_func = fblas.zgemv
     dtype = complex128
 
@@ -409,7 +416,7 @@
 ### Test blas ?ger
 ### This will be a mess to test all cases.
 
-class BaseGer(NumpyTestCase):
+class BaseGer(TestCase):
     def get_data(self,x_stride=1,y_stride=1):
         from numpy.random import normal
         alpha = array(1., dtype = self.dtype)
@@ -417,31 +424,31 @@
         x = arange(shape(a)[0]*x_stride,dtype=self.dtype)
         y = arange(shape(a)[1]*y_stride,dtype=self.dtype)
         return alpha,a,x,y
-    def check_simple(self):
+    def test_simple(self):
         alpha,a,x,y = self.get_data()
         # tranpose takes care of Fortran vs. C(and Python) memory layout
         desired_a = alpha*transpose(x[:,newaxis]*y) + a
         self.blas_func(x,y,a)
         assert_array_almost_equal(desired_a,a)
-    def check_x_stride(self):
+    def test_x_stride(self):
         alpha,a,x,y = self.get_data(x_stride=2)
         desired_a = alpha*transpose(x[::2,newaxis]*y) + a
         self.blas_func(x,y,a,incx=2)
         assert_array_almost_equal(desired_a,a)
-    def check_x_stride_assert(self):
+    def test_x_stride_assert(self):
         alpha,a,x,y = self.get_data(x_stride=2)
         try:
             self.blas_func(x,y,a,incx=3)
             assert(0)
         except:
             pass
-    def check_y_stride(self):
+    def test_y_stride(self):
         alpha,a,x,y = self.get_data(y_stride=2)
         desired_a = alpha*transpose(x[:,newaxis]*y[::2]) + a
         self.blas_func(x,y,a,incy=2)
         assert_array_almost_equal(desired_a,a)
 
-    def check_y_stride_assert(self):
+    def test_y_stride_assert(self):
         alpha,a,x,y = self.get_data(y_stride=2)
         try:
             self.blas_func(a,x,y,incy=3)
@@ -472,7 +479,7 @@
         y = normal(0.,1.,shape(a)[1]*y_stride).astype(self.dtype)
         y = y + y * array(1j, dtype = self.dtype)
         return alpha,a,x,y
-    def check_simple(self):
+    def test_simple(self):
         alpha,a,x,y = self.get_data()
         # tranpose takes care of Fortran vs. C(and Python) memory layout
         a = a * array(0.,dtype = self.dtype)
@@ -482,12 +489,12 @@
         fblas.cgeru(x,y,a,alpha = alpha)
         assert_array_almost_equal(desired_a,a)
 
-    #def check_x_stride(self):
+    #def test_x_stride(self):
     #    alpha,a,x,y = self.get_data(x_stride=2)
     #    desired_a = alpha*transpose(x[::2,newaxis]*self.transform(y)) + a
     #    self.blas_func(x,y,a,incx=2)
     #    assert_array_almost_equal(desired_a,a)
-    #def check_y_stride(self):
+    #def test_y_stride(self):
     #    alpha,a,x,y = self.get_data(y_stride=2)
     #    desired_a = alpha*transpose(x[:,newaxis]*self.transform(y[::2])) + a
     #    self.blas_func(x,y,a,incy=2)
@@ -518,4 +525,4 @@
 """
 
 if __name__ == "__main__":
-    NumpyTest().run()
+    unittest.main()

Modified: branches/testing_cleanup/scipy/linalg/tests/test_iterative.py
===================================================================
--- branches/testing_cleanup/scipy/linalg/tests/test_iterative.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/linalg/tests/test_iterative.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -13,15 +13,14 @@
   python tests/test_iterative.py [<level>]
 """
 
+import sys
+
 from numpy import zeros, dot, diag, ones
-from numpy.testing import *
+from scipy.testing import *
 from numpy.random import rand
 #from numpy import arange, add, array, dot, zeros, identity, conjugate, transpose
 
-import sys
-set_package_path()
-from linalg import iterative, norm, cg, cgs, bicg, bicgstab, gmres, qmr
-restore_path()
+from scipy.linalg import iterative, norm, cg, cgs, bicg, bicgstab, gmres, qmr
 
 
 def callback(x):
@@ -29,9 +28,9 @@
     res = b-dot(A,x)
     #print "||A.x - b|| = " + str(norm(dot(A,x)-b))
 
-class TestIterativeSolvers(NumpyTestCase):
+class TestIterativeSolvers(TestCase):
     def __init__(self, *args, **kwds):
-        NumpyTestCase.__init__(self, *args, **kwds)
+        TestCase.__init__(self, *args, **kwds)
         self.setUp()
     def setUp (self):
         global A, b
@@ -44,41 +43,41 @@
         self.b = rand(n)
         b = self.b
 
-    def check_cg(self):
+    def test_cg(self):
         bx0 = self.x0.copy()
         x, info = cg(self.A, self.b, self.x0, callback=callback)
         assert_array_equal(bx0, self.x0)
         assert norm(dot(self.A, x) - self.b) < 5*self.tol
 
-    def check_bicg(self):
+    def test_bicg(self):
         bx0 = self.x0.copy()
         x, info = bicg(self.A, self.b, self.x0, callback=callback)
         assert_array_equal(bx0, self.x0)
         assert norm(dot(self.A, x) - self.b) < 5*self.tol
 
-    def check_cgs(self):
+    def test_cgs(self):
         bx0 = self.x0.copy()
         x, info = cgs(self.A, self.b, self.x0, callback=callback)
         assert_array_equal(bx0, self.x0)
         assert norm(dot(self.A, x) - self.b) < 5*self.tol
 
-    def check_bicgstab(self):
+    def test_bicgstab(self):
         bx0 = self.x0.copy()
         x, info = bicgstab(self.A, self.b, self.x0, callback=callback)
         assert_array_equal(bx0, self.x0)
         assert norm(dot(self.A, x) - self.b) < 5*self.tol
 
-    def check_gmres(self):
+    def test_gmres(self):
         bx0 = self.x0.copy()
         x, info = gmres(self.A, self.b, self.x0, callback=callback)
         assert_array_equal(bx0, self.x0)
         assert norm(dot(self.A, x) - self.b) < 5*self.tol
 
-    def check_qmr(self):
+    def test_qmr(self):
         bx0 = self.x0.copy()
         x, info = qmr(self.A, self.b, self.x0, callback=callback)
         assert_array_equal(bx0, self.x0)
         assert norm(dot(self.A, x) - self.b) < 5*self.tol
 
 if __name__ == "__main__":
-    NumpyTest().run()
+    unittest.main()

Modified: branches/testing_cleanup/scipy/linalg/tests/test_lapack.py
===================================================================
--- branches/testing_cleanup/scipy/linalg/tests/test_lapack.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/linalg/tests/test_lapack.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -3,26 +3,17 @@
 # Created by: Pearu Peterson, September 2002
 #
 
-__usage__ = """
-Build linalg:
-  python setup_linalg.py build
-Run tests if scipy is installed:
-  python -c 'import scipy;scipy.linalg.test(<level>)'
-Run tests if linalg is not installed:
-  python tests/test_lapack.py [<level>]
-"""
 
 import sys
-from numpy.testing import *
+from scipy.testing import *
 from numpy import ones
-set_package_path()
-from linalg import flapack
-from linalg import clapack
-restore_path()
 
-class TestFlapackSimple(NumpyTestCase):
+from scipy.linalg import flapack, clapack
 
-    def check_gebal(self):
+
+class TestFlapackSimple(TestCase):
+
+    def test_gebal(self):
         a = [[1,2,3],[4,5,6],[7,8,9]]
         a1 = [[1,0,0,3e-4],
               [4,0,0,2e-3],
@@ -42,7 +33,7 @@
             #print a1
             #print ba,lo,hi,pivscale
 
-    def check_gehrd(self):
+    def test_gehrd(self):
         a = [[-149, -50,-154],
              [ 537, 180, 546],
              [ -27,  -9, -25]]
@@ -52,9 +43,9 @@
             ht,tau,info = f(a)
             assert not info,`info`
 
-class TestLapack(NumpyTestCase):
+class TestLapack(TestCase):
 
-    def check_flapack(self):
+    def test_flapack(self):
         if hasattr(flapack,'empty_module'):
             print """
 ****************************************************************
@@ -63,7 +54,7 @@
 See scipy/INSTALL.txt for troubleshooting.
 ****************************************************************
 """
-    def check_clapack(self):
+    def test_clapack(self):
         if hasattr(clapack,'empty_module'):
             print """
 ****************************************************************
@@ -77,4 +68,4 @@
 """
 
 if __name__ == "__main__":
-    NumpyTest().run()
+    unittest.main()

Modified: branches/testing_cleanup/scipy/linalg/tests/test_matfuncs.py
===================================================================
--- branches/testing_cleanup/scipy/linalg/tests/test_matfuncs.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/linalg/tests/test_matfuncs.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -5,29 +5,21 @@
 """ Test functions for linalg.matfuncs module
 
 """
-__usage__ = """
-Build linalg:
-  python setup_linalg.py build
-Run tests if scipy is installed:
-  python -c 'import scipy;scipy.linalg.test(<level>)'
-Run tests if linalg is not installed:
-  python tests/test_matfuncs.py [<level>]
-"""
 
-from numpy import array, identity
-
 import sys
-from numpy.testing import *
-set_package_path()
+
 import numpy
-from numpy import dot,sqrt
-import linalg
-from linalg import signm,logm,funm, sqrtm, expm, expm2, expm3
-restore_path()
+from numpy import array, identity, dot, sqrt
 
-class TestSignM(NumpyTestCase):
+from scipy.testing import *
 
-    def check_nils(self):
+import scipy.linalg
+from scipy.linalg import signm,logm,funm, sqrtm, expm, expm2, expm3
+
+
+class TestSignM(TestCase):
+
+    def test_nils(self):
         a = array([[ 29.2, -24.2,  69.5,  49.8,   7. ],
                    [ -9.2,   5.2, -18. , -16.8,  -2. ],
                    [-10. ,   6. , -20. , -18. ,  -2. ],
@@ -41,12 +33,12 @@
         r = signm(a)
         assert_array_almost_equal(r,cr)
 
-    def check_defective1(self):
+    def test_defective1(self):
         a = array([[0.0,1,0,0],[1,0,1,0],[0,0,0,1],[0,0,1,0]])
         r = signm(a)
         #XXX: what would be the correct result?
 
-    def check_defective2(self):
+    def test_defective2(self):
         a = array((
             [29.2,-24.2,69.5,49.8,7.0],
             [-9.2,5.2,-18.0,-16.8,-2.0],
@@ -56,7 +48,7 @@
         r = signm(a)
         #XXX: what would be the correct result?
 
-    def check_defective3(self):
+    def test_defective3(self):
         a = array([[ -2.,  25.,   0.,   0.,   0.,   0.,   0.],
                    [  0.,  -3.,  10.,   3.,   3.,   3.,   0.],
                    [  0.,   0.,   2.,  15.,   3.,   3.,   0.],
@@ -67,9 +59,9 @@
         r = signm(a)
         #XXX: what would be the correct result?
 
-class TestLogM(NumpyTestCase):
+class TestLogM(TestCase):
 
-    def check_nils(self):
+    def test_nils(self):
         a = array([[ -2.,  25.,   0.,   0.,   0.,   0.,   0.],
                    [  0.,  -3.,  10.,   3.,   3.,   3.,   0.],
                    [  0.,   0.,   2.,  15.,   3.,   3.,   0.],
@@ -81,8 +73,8 @@
         logm(m)
 
 
-class TestSqrtM(NumpyTestCase):
-    def check_bad(self):
+class TestSqrtM(TestCase):
+    def test_bad(self):
         # See http://www.maths.man.ac.uk/~nareports/narep336.ps.gz
         e = 2**-5
         se = sqrt(e)
@@ -98,12 +90,12 @@
         esa = sqrtm(a)
         assert_array_almost_equal(dot(esa,esa),a)
 
-class TestExpM(NumpyTestCase):
-    def check_zero(self):
+class TestExpM(TestCase):
+    def test_zero(self):
         a = array([[0.,0],[0,0]])
         assert_array_almost_equal(expm(a),[[1,0],[0,1]])
         assert_array_almost_equal(expm2(a),[[1,0],[0,1]])
         assert_array_almost_equal(expm3(a),[[1,0],[0,1]])
 
 if __name__ == "__main__":
-    NumpyTest().run()
+    unittest.main()

Modified: branches/testing_cleanup/scipy/sandbox/exmplpackage/tests/test_foo.py
===================================================================
--- branches/testing_cleanup/scipy/sandbox/exmplpackage/tests/test_foo.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/sandbox/exmplpackage/tests/test_foo.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -49,6 +49,7 @@
     def test_big(self,level=5):
         print 'Big, slow test'
 
+
 def test_simplefunction():
     """A simple test function."""
     assert True

Modified: branches/testing_cleanup/scipy/sandbox/timeseries/dates.py
===================================================================
--- branches/testing_cleanup/scipy/sandbox/timeseries/dates.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/sandbox/timeseries/dates.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -617,9 +617,26 @@
 
 def date_array(dlist=None, start_date=None, end_date=None, length=None,
                freq=None):
-    """Constructs a DateArray from:
-    - a starting date and either an ending date or a given length.
-    - a list of dates.
+    """Factory function for constructing a DateArray
+
+*Parameters*:
+    dlist : {list of dates or DateArray} (optional)
+        may be a list of dates, integer representations of dates for a given
+        frequency, datetime objects, or an existing DateArray. If specifying
+        a list of dates, you must also specify the `freq` parameter.
+
+    start_date : {Date} (optional)
+        if you want a continuous DateArray, specify a start_date and either an
+        `end_date` or a `length`. Frequency of the resulting DateArray will be
+        automatically determined based on the frequency of this parameter.
+
+    end_date : {Date} (optional)
+        last date in resulting DateArray. Specify this parameter or `length`
+        in combination with `start_date` for a continuous DateArray.
+
+    length : {int} (optional)
+        the length of the resulting DateArray. Specify this parameter or
+        `end_date` in combination with `start_date` for a continuous DateArray.
     """
     freq = check_freq(freq)
     # Case #1: we have a list ...................

Modified: branches/testing_cleanup/scipy/sparse/construct.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/construct.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/sparse/construct.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -12,6 +12,7 @@
 
 from csr import csr_matrix, isspmatrix_csr
 from csc import csc_matrix, isspmatrix_csc
+from bsr import bsr_matrix
 from coo import coo_matrix
 from dok import dok_matrix
 from lil import lil_matrix
@@ -96,36 +97,56 @@
 
     """
     #TODO optimize for small dense B and CSR A
-    A,B = coo_matrix(A),coo_matrix(B)
-    output_shape = (A.shape[0]*B.shape[0],A.shape[1]*B.shape[1])
+    B = coo_matrix(B)
 
-    if A.nnz == 0 or B.nnz == 0:
-        # kronecker product is the zero matrix
-        return coo_matrix( output_shape )
+    
+    if (format is None or format == "bsr") and 2*B.nnz >= B.shape[0] * B.shape[1]:
+        #B is fairly dense, use BSR
+        A = csr_matrix(A,copy=True)
+        
+        output_shape = (A.shape[0]*B.shape[0],A.shape[1]*B.shape[1])
 
-    # expand entries of a into blocks
-    row  = A.row.repeat(B.nnz)
-    col  = A.col.repeat(B.nnz)
-    data = A.data.repeat(B.nnz)
+        if A.nnz == 0 or B.nnz == 0:
+            # kronecker product is the zero matrix
+            return coo_matrix( output_shape )
+        
+        B = B.toarray()
+        data = A.data.repeat(B.size).reshape(-1,B.shape[0],B.shape[1])
+        data = data * B
+        
+        return bsr_matrix((data,A.indices,A.indptr),shape=output_shape)
+    else:
+        #use COO
+        A = coo_matrix(A)
+        output_shape = (A.shape[0]*B.shape[0],A.shape[1]*B.shape[1])
 
-    row *= B.shape[0]
-    col *= B.shape[1]
+        if A.nnz == 0 or B.nnz == 0:
+            # kronecker product is the zero matrix
+            return coo_matrix( output_shape )
 
-    # increment block indices
-    row,col = row.reshape(-1,B.nnz),col.reshape(-1,B.nnz)
-    row += B.row
-    col += B.col
-    row,col = row.reshape(-1),col.reshape(-1)
+        # expand entries of a into blocks
+        row  = A.row.repeat(B.nnz)
+        col  = A.col.repeat(B.nnz)
+        data = A.data.repeat(B.nnz)
 
-    # compute block entries
-    data = data.reshape(-1,B.nnz) * B.data
-    data = data.reshape(-1)
+        row *= B.shape[0]
+        col *= B.shape[1]
 
-    return coo_matrix((data,(row,col)), shape=output_shape).asformat(format)
+        # increment block indices
+        row,col = row.reshape(-1,B.nnz),col.reshape(-1,B.nnz)
+        row += B.row
+        col += B.col
+        row,col = row.reshape(-1),col.reshape(-1)
 
+        # compute block entries
+        data = data.reshape(-1,B.nnz) * B.data
+        data = data.reshape(-1)
 
+        return coo_matrix((data,(row,col)), shape=output_shape).asformat(format)
 
 
+
+
 def lil_eye((r,c), k=0, dtype='d'):
     """Generate a lil_matrix of dimensions (r,c) with the k-th
     diagonal set to 1.

Modified: branches/testing_cleanup/scipy/sparse/tests/test_sparse.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/tests/test_sparse.py	2008-01-01 22:00:03 UTC (rev 3760)
+++ branches/testing_cleanup/scipy/sparse/tests/test_sparse.py	2008-01-02 04:07:30 UTC (rev 3761)
@@ -77,8 +77,7 @@
             vars = dict( [(var,mat.asformat(format)) for (var,name,mat) in matrices ] )
             for X,Y in [ ('A','A'),('A','B'),('B','A'),('B','B') ]:
                 x,y = vars[X],vars[Y]
-                #for op in ['__add__','__sub__','multiply','__div__','__mul__']:
-                for op in ['__mul__']:
+                for op in ['__add__','__sub__','multiply','__div__','__mul__']:
                     fn = getattr(x,op)
                     fn(y) #warmup
 




More information about the Scipy-svn mailing list