Permalink
Browse files

Merge pull request #162 from pv/bug/1597-umfpack-free

Make Umfpack free its data (#1597)
  • Loading branch information...
rgommers committed Feb 18, 2012
2 parents df1c6fb + d2096e2 commit d24cc56dceae8469439001f83a171c0f157e39c5
@@ -7,8 +7,10 @@
import warnings
import random
+
from numpy.testing import TestCase, assert_array_almost_equal, dec, \
decorate_methods
+from numpy.testing.utils import WarningManager
from scipy import rand, matrix, diag, eye
from scipy.sparse import csc_matrix, spdiags, SparseEfficiencyWarning
@@ -29,7 +31,17 @@
_umfpack_skip = dec.skipif(not _have_umfpack,
'UMFPACK appears not to be compiled')
-class TestSolvers(TestCase):
+class _DeprecationAccept:
+ def setUp(self):
+ self.mgr = WarningManager()
+ self.mgr.__enter__()
+ warnings.simplefilter("ignore", DeprecationWarning)
+
+ def tearDown(self):
+ self.mgr.__exit__()
+
+
+class TestSolvers(TestCase, _DeprecationAccept):
"""Tests inverting a sparse linear system"""
def test_solve_complex_without_umfpack(self):
@@ -113,9 +125,9 @@ def setUp(self):
self.b = np.array([1, 2, 3, 4, 5])
self.b2 = np.array([5, 4, 3, 2, 1])
+ _DeprecationAccept.setUp(self)
-
-class TestFactorization(TestCase):
+class TestFactorization(TestCase, _DeprecationAccept):
"""Tests factorizing a sparse linear system"""
def test_complex_lu(self):
@@ -175,6 +187,8 @@ def setUp(self):
self.complex_matrices = [x.astype(np.complex128)
for x in self.real_matrices]
+ _DeprecationAccept.setUp(self)
+
# Skip methods if umfpack not present
for cls in [TestSolvers, TestFactorization]:
decorate_methods(cls, _umfpack_skip)
@@ -296,6 +296,9 @@ def __init__( self, family = 'di', **kwargs ):
self.funs.defaults( self.control )
self.control[UMFPACK_PRL] = 3
+ def __del__(self):
+ self.free()
+
##
# 30.11.2005, c
def strControl( self ):

0 comments on commit d24cc56

Please sign in to comment.