* Bug 16553 fixed: unique(['' '']) returned ['' ''] 95/21595/3
Samuel GOUGEON [Mon, 12 Oct 2020 20:43:22 +0000 (22:43 +0200)]
  http://bugzilla.scilab.org/16553

Change-Id: Id169c71b32384c2e04c9738c696018065fb5032f

scilab/CHANGES.md
scilab/modules/elementary_functions/macros/unique.sci
scilab/modules/elementary_functions/tests/nonreg_tests/bug_16553.tst [new file with mode: 0644]

index 7dc950f..dfeb01f 100644 (file)
@@ -331,6 +331,7 @@ Bug Fixes
 * [#16525](https://bugzilla.scilab.org/16525): `soundsec(t,freq)` has the trivial equivalence `0 : 1/freq : t*(1-%eps)` and should be removed.
 * [#16549](https://bugzilla.scilab.org/16549): simple script crashed Scilab in GUI mode.
 * [#16551](https://bugzilla.scilab.org/16551): `num2cell` returned {} for any input array of empty strings.
+* [#16553](https://bugzilla.scilab.org/16553): `unique(["" ""])` returned `["" ""]`.
 
 
 ### Bugs fixed in 6.1.0:
index 6591b51..3233292 100644 (file)
@@ -105,7 +105,7 @@ function [x, ki, ko, nb] = unique(x, varargin)
 
     // [] trivial case
     // ---------------
-    if isempty(x) then
+    if size(x,"*")==0 then
         return  // ki, ko, nb are already []. x is [] or sparse([])
     end
 
@@ -273,5 +273,6 @@ function [x, newInf] = uniqueProcessNan(x, newInf, way)
             end
             x = r + imult(i)
         end
+
     end
 endfunction
diff --git a/scilab/modules/elementary_functions/tests/nonreg_tests/bug_16553.tst b/scilab/modules/elementary_functions/tests/nonreg_tests/bug_16553.tst
new file mode 100644 (file)
index 0000000..61884be
--- /dev/null
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2020 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 16553 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/16553
+//
+// <-- Short Description -->
+// unique(["", "", "", "", ""]) returned [""  ""  ""  ""  ""] instead of ""
+
+assert_checkequal(unique(["" ""]), "");
+assert_checkequal(unique(["" "" "" ""]), "");