* Bug #4405 fixed - qr() was underspecified in documentation. 87/10987/5
Charlotte HECQUET [Mon, 25 Mar 2013 10:53:19 +0000 (11:53 +0100)]
Change-Id: I0a4544828dabf69472aa45f6c48c6e2d3c346769

scilab/CHANGES_5.4.X
scilab/modules/linear_algebra/sci_gateway/c/sci_qr.c
scilab/modules/linear_algebra/tests/nonreg_tests/bug_4405.dia.ref [new file with mode: 0644]
scilab/modules/linear_algebra/tests/nonreg_tests/bug_4405.tst [new file with mode: 0644]

index 5626c37..f4fc4b5 100644 (file)
@@ -220,6 +220,8 @@ Bug fixes
 
 * Bug #4504 fixed - Function sskf did not work with two outputs (+ help page updated).
 
+* Bug #4405 fixed - qr() was underspecified in documentation.
+
 * Bug #4946 fixed - Bad rendering of a big rotated label.
 
 * Bug #5291 fixed - strtod returned 0 when no real number was detected.
index 007fdd4..52cc1ab 100644 (file)
@@ -45,8 +45,17 @@ int C2F(intqr)(char *fname,unsigned long fname_len)
        {   /* obsolete : [Q,R,rk,E]=qr(A) or = qr(A,tol)   */
                if (Rhs==2) 
                {
-                       snd = (double *) GetData(2);
-                       tol = snd[2];
+                        if (GetType(2)==sci_matrix)
+                        {
+                               snd = (double *) GetData(2);
+                               tol = snd[2];
+                        }
+                        else
+                        {
+                                Scierror(999,_("%s: Wrong type for input argument #%d: Real scalar expected.\n"),
+                               fname,2);
+                                return 0;
+                        }
                }
                else 
                {
diff --git a/scilab/modules/linear_algebra/tests/nonreg_tests/bug_4405.dia.ref b/scilab/modules/linear_algebra/tests/nonreg_tests/bug_4405.dia.ref
new file mode 100644 (file)
index 0000000..ed870c1
--- /dev/null
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 4405 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4405
+//
+// <-- Short Description -->
+// Calling sequence [Q,R,rk,E]=qr(A,"e") should return an error
+A=[1 2; 3 4; 5 6];
+expectedMsg = msprintf(_("%s: Wrong type for input argument #%d: Real scalar expected.\n"), "qr", 2);
+assert_checkerror("[Q,R,rk,E]=qr(A,""e"")",expectedMsg);
diff --git a/scilab/modules/linear_algebra/tests/nonreg_tests/bug_4405.tst b/scilab/modules/linear_algebra/tests/nonreg_tests/bug_4405.tst
new file mode 100644 (file)
index 0000000..c0bea24
--- /dev/null
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 4405 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4405
+//
+// <-- Short Description -->
+// Calling sequence [Q,R,rk,E]=qr(A,"e") should return an error
+
+A=[1 2; 3 4; 5 6];
+expectedMsg = msprintf(_("%s: Wrong type for input argument #%d: Real scalar expected.\n"), "qr", 2);
+assert_checkerror("[Q,R,rk,E]=qr(A,""e"")",expectedMsg);