Bug Fix #14471 - strange([]) returned [] instead of %nan as all other functions for... 61/17961/3
Nicolas [Wed, 23 Mar 2016 12:52:40 +0000 (13:52 +0100)]
Change-Id: Ifeefdfbc84541aa9eee4563075e77966c813ada9

scilab/CHANGES
scilab/modules/statistics/macros/strange.sci
scilab/modules/statistics/tests/nonreg_tests/bug_14471.dia.ref [new file with mode: 0644]
scilab/modules/statistics/tests/nonreg_tests/bug_14471.tst [new file with mode: 0644]

index 42621c5..83a03f6 100644 (file)
@@ -93,6 +93,8 @@ Other feature changes
 Other feature additions
 =======================
 
+* Multiline blocs of comments /* ...\n ... \n ... */ are now possible.
+
 * scatter/scatter3 plot with different mark colors is now available.
 
 * parulacolormap is now available.
@@ -209,64 +211,29 @@ Data Structures
   - .dims and .entries fields have been removed, please use size and () instead.
 
 
-Removed Functions
-==================
-* xpause will be removed in Scilab 6.1. Please use sleep() instead.
-
-* maxfiles function is now obsolete.
-
-* intersci has been removed. Please use swig instead.
-
-* numdiff has been removed. Please use numderivative instead.
-
-* derivative has been removed. Please use numderivative instead.
-
-* curblockc has been removed. Please use curblock instead.
-
-* extract_help_examples has been removed. (Undocumented and based on former help format).
-
-* Symbolic module functions have been removed:
-  - addf
-  - cmb_lin
-  - ldivf
-  - mulf
-  - rdivf
-  - solve
-  - subf
-  - trianfml
-  - trisolve
-  - block2exp
-
-
-Removed Functions (based on former Scilab stack)
-================================================
-
-* comp.
-
-* errcatch.
-
-* iserror.
-
-* fun2string.
+Syntax Modifications
+=====================
+* Declaration of a number on two lines is no longer allowed:
+ 1..
+ 2
 
-* getvariablesonstack.
+* 1./M is now parsed as 1 ./ M instead of 1. / M
 
-* gstacksize.
+* {} and [] are now distinct operators. {} are now used to build cells.
 
-* macr2lst.
+* Declaring non-homogenous strings ("string' or 'string") is no more allowed.
 
-* stacksize.
+* New shortcut operators have been introduced: && and ||.
 
-* code2str.
+* Syntax %i:10 is now deprecated (only real scalars can be used).
 
-* str2code.
+* (a=b) executed like a == b is now deprecated and returns an error.
 
-* -mem option (used to set stacksize at startup).
+* while/else control instruction is no more supported.
 
 
 Modified Functions
 ===================
-
 * exec: exec of macro executes the body in the current scope but the prototype must have zero input and output arguments.
 * error: an error number in input is deprecated.
 * impl: Recall impl with the same parameters as in its previous stop is now available.
@@ -274,36 +241,57 @@ Modified Functions
 * pppdiv: Return a scalar of type 'constant' when the rank is 0.
 * pdiv: Return a matrix of type 'constant' when all the rank are 0.
 * test_run can now take "[]" as argument to be used on console; for instance: test_run string [] no_check_ref
+* strange([]) now returns %nan instead of [], as all other functions for statistical dispersion
+* Writing string or string matrix in a file does not add blanck space before each value:
+    write("TMPDIR/test", ["test", "sample"; "sample", "test"])
+    "-" + mgetl("TMPDIR/test") + "-"
 
 
-Syntax Modifications
-=====================
-
-* Declaration of a number on two lines is no longer allowed:
- 1..
- 2
+Obsolete functions or features
+==============================
+* maxfiles function is now obsolete.
 
-* {"foo"} returns a cell not a string matrix.
+* xpause will be removed from Scilab 6.1. Please use sleep(..) instead.
 
-* Declaring non-homogenous strings ("string' or 'string") is no more allowed.
+* isoview(xmin,xmax,ymin,ymax) will be removed from Scilab 6.1. Please use isoview("on"), replot(..) instead.
 
-* New shortcut operators have been introduced: && and ||.
 
+Removed Functions
+==================
+* intersci has been removed. Please use swig instead.
 
-Deprecated Behaviors
-=====================
+* numdiff has been removed. Please use numderivative instead.
 
-* {} becomes different of [] and will be used on cells.
+* derivative has been removed. Please use numderivative instead.
 
-* Syntax %i:10 is now deprecated (only real scalars can be used).
+* curblockc has been removed. Please use curblock instead.
 
-* Writing string or string matrix in a file does not add blanck space before each value:
-    write("TMPDIR/test", ["test", "sample"; "sample", "test"])
-    "-" + mgetl("TMPDIR/test") + "-"
+* extract_help_examples has been removed. (Undocumented and based on former help format).
 
-* while/else control instruction is no more supported.
+* Symbolic module functions have been removed:
+  - addf
+  - cmb_lin
+  - ldivf
+  - mulf
+  - rdivf
+  - solve
+  - subf
+  - trianfml
+  - trisolve
+  - block2exp
 
-* (a=b) executed like a == b is now deprecated and returns an error.
+*  Functions based on former Scilab stack are removed:
+  - comp
+  - errcatch
+  - iserror
+  - fun2string
+  - getvariablesonstack
+  - gstacksize
+  - macr2lst
+  - stacksize
+  - code2str
+  - str2code.
+  - -mem launching option (used to set stacksize at startup).
 
 
 Known issues
@@ -395,6 +383,8 @@ In 6.0.0:
 
 * Bug #14468 fixed - Scinotes was unable to export to HTML.
 
+* Bug #14471 fixed - strange([]) returned [] instead of %nan as all other functions for statistical dispersion
+
 * Bug #14476 fixed - Dotmultiplication between polynomials and imaginary numbers was always returning 0
 
 
index f37635c..4f10de5 100644 (file)
@@ -11,7 +11,7 @@
 // along with this program.
 //
 
-function [r]=strange(x,orien)
+function [r] = strange(x,orien)
     //
     //The range  is  the distance between   the largest  and smaller  value,
     //[r]=range(x) computes the range of vector or matrix x.
@@ -23,17 +23,25 @@ function [r]=strange(x,orien)
     //with the range of each row.
     //
     //
-    [lhs,rhs]=argn(0)
-    if rhs==0 then error(msprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n"),"strange",0,2)), end
+    [lhs,rhs] = argn(0)
+    if rhs==0 then 
+        msg = _("%s: Wrong number of input arguments: %d to %d expected.\n")
+        error(msprintf(msg,"strange",0,2))
+    end
     if rhs==1 then
-        r=max(x)-min(x)
+        if x==[]
+            r = %nan
+        else
+            r = max(x) - min(x)
+        end
     elseif rhs==2 then
-        if orien=="r"|orien==1 then
-            r=max(x,"r")-min(x,"r")
-        elseif orien=="c"|orien==2 then
-            r=max(x,"c")-min(x,"c")
+        if orien=="r" | orien==1 then
+            r = max(x,"r")-min(x,"r")
+        elseif orien=="c" | orien==2 then
+            r = max(x,"c") - min(x,"c")
         else
-            error(msprintf(gettext("%s: Wrong value for %d input argument: ''%s'', ''%s'', %d or %d expected.\n"),"strange",2,"r","c",1,2)),
+            msg = _("%s: Wrong value for %d input argument: ''%s'', ''%s'', %d or %d expected.\n")
+            error(msprintf(msg,"strange",2,"r","c",1,2))
         end
     end
 endfunction
diff --git a/scilab/modules/statistics/tests/nonreg_tests/bug_14471.dia.ref b/scilab/modules/statistics/tests/nonreg_tests/bug_14471.dia.ref
new file mode 100644 (file)
index 0000000..c1ef042
--- /dev/null
@@ -0,0 +1,15 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 14471 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14471
+//
+// <-- Short Description -->
+// strange([]) returned [] instead of %nan as all other stat. dispersion functions
+assert_checkequal(strange([]), %nan);
diff --git a/scilab/modules/statistics/tests/nonreg_tests/bug_14471.tst b/scilab/modules/statistics/tests/nonreg_tests/bug_14471.tst
new file mode 100644 (file)
index 0000000..d705b70
--- /dev/null
@@ -0,0 +1,16 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 14471 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14471
+//
+// <-- Short Description -->
+// strange([]) returned [] instead of %nan as all other stat. dispersion functions
+
+assert_checkequal(strange([]), %nan);