[Scipy-svn] r7169 - in trunk/scipy/sparse/linalg/eigen/arpack: . tests
scipy-svn at scipy.org
scipy-svn at scipy.org
Sun Feb 20 18:34:22 EST 2011
Author: ptvirtan
Date: 2011-02-20 17:34:21 -0600 (Sun, 20 Feb 2011)
New Revision: 7169
Modified:
trunk/scipy/sparse/linalg/eigen/arpack/arpack.py
trunk/scipy/sparse/linalg/eigen/arpack/tests/test_arpack.py
Log:
BUG: sparse/arpack: raise correct exception if WHICH parameter wrong
Thanks to Fabian Pedregosa for the patch.
Modified: trunk/scipy/sparse/linalg/eigen/arpack/arpack.py
===================================================================
--- trunk/scipy/sparse/linalg/eigen/arpack/arpack.py 2011-02-20 17:02:32 UTC (rev 7168)
+++ trunk/scipy/sparse/linalg/eigen/arpack/arpack.py 2011-02-20 23:34:21 UTC (rev 7169)
@@ -136,6 +136,13 @@
"DSEUPD.")
}
+# accepted values of parameter WHICH in _SEUPD
+_SEUPD_WHICH = ['LM', 'SM', 'LA', 'SA', 'BE']
+
+# accepted values of parameter WHICH in _NAUPD
+_NEUPD_WHICH = ['LM', 'SM', 'LR', 'SR', 'LI', 'SI']
+
+
class ArpackError(RuntimeError):
"""
ARPACK error
@@ -231,8 +238,8 @@
class _SymmetricArpackParams(_ArpackParams):
def __init__(self, n, k, tp, matvec, sigma=None,
ncv=None, v0=None, maxiter=None, which="LM", tol=0):
- if not which in ['LM', 'SM', 'LA', 'SA', 'BE']:
- raise ValueError("which must be one of %s" % ' '.join(whiches))
+ if which not in _SEUPD_WHICH:
+ raise ValueError("which must be one of %s" % ' '.join(_SEUPD_WHICH))
if k >= n:
raise ValueError("k must be less than rank(A), k=%d" % k)
@@ -304,8 +311,8 @@
class _UnsymmetricArpackParams(_ArpackParams):
def __init__(self, n, k, tp, matvec, sigma=None,
ncv=None, v0=None, maxiter=None, which="LM", tol=0):
- if not which in ["LM", "SM", "LR", "SR", "LI", "SI"]:
- raise ValueError("Parameter which must be one of %s" % ' '.join(whiches))
+ if which not in _NEUPD_WHICH:
+ raise ValueError("Parameter which must be one of %s" % ' '.join(_NEUPD_WHICH))
if k >= n-1:
raise ValueError("k must be less than rank(A)-1, k=%d" % k)
Modified: trunk/scipy/sparse/linalg/eigen/arpack/tests/test_arpack.py
===================================================================
--- trunk/scipy/sparse/linalg/eigen/arpack/tests/test_arpack.py 2011-02-20 17:02:32 UTC (rev 7168)
+++ trunk/scipy/sparse/linalg/eigen/arpack/tests/test_arpack.py 2011-02-20 23:34:21 UTC (rev 7169)
@@ -353,6 +353,13 @@
A = csc_matrix(np.zeros((2,3)))
assert_raises(ValueError, eigs, A)
+
+def test_eigen_bad_kwargs():
+ # Test eigen on wrong keyword argument
+ A = csc_matrix(np.zeros((2,2)))
+ assert_raises(ValueError, eigs, A, which='XX')
+
+
def test_eigs_operator():
# Check inferring LinearOperator dtype
fft_op = LinearOperator((6, 6), np.fft.fft)
More information about the Scipy-svn
mailing list