* Bug 15840 fixed: now grand(1,prm,x) has same dims as x 75/20975/3
St├ęphane MOTTELET [Mon, 13 May 2019 08:41:23 +0000 (10:41 +0200)]
http://bugzilla.scilab.org/show_bug.cgi?id=15840

Change-Id: If7d1d918d46826a3e783f826c926db1e266308ab

scilab/CHANGES.md
scilab/modules/randlib/sci_gateway/cpp/sci_grand.cpp
scilab/modules/randlib/tests/nonreg_tests/bug_15840.tst [new file with mode: 0644]

index e9d69f5..24187c5 100644 (file)
@@ -149,6 +149,7 @@ Bug Fixes
 * [#15523](http://bugzilla.scilab.org/show_bug.cgi?id=15523): `%ODEOPTIONS(1)=2` didn't work with solvers 'rk' and 'rkf' 
 * [#15577](http://bugzilla.scilab.org/show_bug.cgi?id=15577): `edit` did not accept a line number as text, as with `edit linspace 21`.
 * [#15812](http://bugzilla.scilab.org/show_bug.cgi?id=15812): On assigning variables the source variable may become become corrupted
+* [#15840](http://bugzilla.scilab.org/show_bug.cgi?id=15840): `grand(1,"prm",m)` yielded an unsqueezed size([size(m) 1]) hypermatrix
 * [#15983](http://bugzilla.scilab.org/show_bug.cgi?id=15983): `group()` regressed in 5.5.2 due to a too intrusive fix.
 * [#15995](http://bugzilla.scilab.org/show_bug.cgi?id=15995): patch was missing in surface plot (regression)
 * [#16005](http://bugzilla.scilab.org/show_bug.cgi?id=16005): The `intdec` example was biased and not robust when changing sampling frequencies.
index db8979b..f827902 100644 (file)
@@ -1583,8 +1583,11 @@ void sci_grand_prm(int iNumIter, U *pIn, types::InternalType** pOut)
     {
         piDimsArray = pOut[0]->getAs<U>()->getDimsArray();
         Dims = pOut[0]->getAs<U>()->getDims();
-        piDimsArray[Dims] = iNumIter;
-        pOut[0]->getAs<U>()->resize(piDimsArray, Dims + 1);
+        if (iNumIter > 1)
+        {
+            piDimsArray[Dims] = iNumIter;
+            pOut[0]->getAs<U>()->resize(piDimsArray, Dims + 1);
+        }
         pUTempo = pIn;
     }
 
diff --git a/scilab/modules/randlib/tests/nonreg_tests/bug_15840.tst b/scilab/modules/randlib/tests/nonreg_tests/bug_15840.tst
new file mode 100644 (file)
index 0000000..821bc9a
--- /dev/null
@@ -0,0 +1,21 @@
+// ===================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2019 - St├ęphane MOTTELET
+//
+//  This file is distributed under the same license as the Scilab package.
+// ===================================================================
+//
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 15840 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/15840
+//
+// <-- Short Description -->
+// grand(1,"prm",m) yields an unsqueezed size([size(m) 1]) hypermatrix (Regression)
+m = rand(2,3);
+m = grand(1,"prm",m);
+assert_checkequal(ndims(m),2);
+assert_checkequal(size(m),[2 3]);
\ No newline at end of file