Fix macro after https://codereview.scilab.org/#/c/13155/ 87/13287/1
Paul Bignier [Fri, 29 Nov 2013 15:08:15 +0000 (16:08 +0100)]
Test "bug_8640" did not pass anymore. hitsc.sci fixed.

Change-Id: I29b3532081998590ef12fe3dcdabaeab5534401f

scilab/modules/statistics/macros/histc.sci

index 18ffb0a..8842a1c 100644 (file)
@@ -50,7 +50,13 @@ function [cf, ind] = histc(n, data, normalization)
         elseif n ~= floor(n)
             error(msprintf(_("%s: Wrong type for input argument #%d: Integer expected.\n"),"histc",1))
         end
-        cb = linspace(min(data), max(data), n+1); // Class boundary
+        mind = min(data);
+        maxd = max(data);
+        if (mind == maxd) then
+            mind = mind - floor(n/2);
+            maxd = maxd + ceil(n/2);
+        end
+        cb = linspace(mind, maxd, n+1); // Class boundary
     else // The classes are provided
         cb = matrix(n, 1, -1);   // Force row form
         if min(diff(cb)) <= 0 then