* Bug #12123 fixed - Provide a more comprensible error message in some cases of 58/10158/3
Guillaume Horel [Tue, 8 Jan 2013 16:29:22 +0000 (17:29 +0100)]
                     of usage of eigs.

test_run("arnoldi",["bug_12123"],["no_check_error_output"])

Change-Id: Ic8fba1778443758ffd2029a19f7f48084972b08e

scilab/CHANGES_5.4.X
scilab/modules/arnoldi/macros/eigs.sci
scilab/modules/arnoldi/tests/nonreg_tests/bug_12123.dia.ref [new file with mode: 0644]
scilab/modules/arnoldi/tests/nonreg_tests/bug_12123.tst [new file with mode: 0644]

index d4cda8e..8e2df38 100644 (file)
@@ -239,6 +239,9 @@ Bug fixes
 
 * Bug #12021 fixed - Improve the help page of eigs.
 
+* Bug #12123 fixed - Provide a more comprensible error message in some cases of
+                     of usage of eigs.
+
 * Bug #12135 fixed - stacksize('max') failed silently.
 
 * Bug #12137 fixed - eigs(A,B) returned incorrect result for sparse matrices.
@@ -253,7 +256,7 @@ Bug fixes
 
 * Bug #12190 fixed - Description of sprspn updated in help page.
 
-* Bug #12204 fixed - Fix a typo in the French localization
+* Bug #12204 fixed - Fix a typo in the French localization.
 
 
                     Changes between version 5.3.3 and 5.4.0
index a8af185..2eecde9 100644 (file)
@@ -357,8 +357,8 @@ function [res_d, res_v] = speigs(A, %_B, nev, which, maxiter, tol, ncv, cholB, r
     end
     [mB, nB] = size(%_B);
 
-    //Check if B is a square matrix
-    if(mB * nB <> 0 & (mB <> mA | nB <> nA))
+    //Check if B has same size as A
+    if(mB <> mA | mB <> nB)
         error(msprintf(gettext("%s: Wrong dimension for input argument #%d: B must have the same size as A.\n"), "eigs", 2));
     end
 
diff --git a/scilab/modules/arnoldi/tests/nonreg_tests/bug_12123.dia.ref b/scilab/modules/arnoldi/tests/nonreg_tests/bug_12123.dia.ref
new file mode 100644 (file)
index 0000000..802b994
--- /dev/null
@@ -0,0 +1,18 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 12123 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12123
+//
+// <-- Short Description -->
+//   eigs function: incorrect test and error message
+// =============================================================================
+A = speye(10,10);
+B = speye(4,4);
+assert_checkerror("eigs(A, B)",[],10000);
diff --git a/scilab/modules/arnoldi/tests/nonreg_tests/bug_12123.tst b/scilab/modules/arnoldi/tests/nonreg_tests/bug_12123.tst
new file mode 100644 (file)
index 0000000..642bbdf
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// <-- Non-regression test for bug 12123 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12123
+//
+// <-- Short Description -->
+//   eigs function: incorrect test and error message
+// =============================================================================
+
+A = speye(10,10);
+B = speye(4,4);
+assert_checkerror("eigs(A, B)",[],10000);
+