* Bug 15119: Inequality comparisons between complex-encoded real numbers failed 46/19246/4
Samuel GOUGEON [Thu, 6 Apr 2017 23:28:46 +0000 (01:28 +0200)]
  http://bugzilla.scilab.org/15119

  %s_#_hm() and %hm_#_s() overloading functions are no longer used
  (tested) => removed

Change-Id: Id35090dc4c3b5f895fd63e479c18f64f68847c41

12 files changed:
scilab/CHANGES.md
scilab/modules/core/tests/nonreg_tests/bug_15119.tst [new file with mode: 0644]
scilab/modules/overloading/macros/%hm_2_s.sci [deleted file]
scilab/modules/overloading/macros/%hm_3_s.sci [deleted file]
scilab/modules/overloading/macros/%hm_4_s.sci [deleted file]
scilab/modules/overloading/macros/%s_1_s.sci [moved from scilab/modules/overloading/macros/%hm_1_s.sci with 61% similarity]
scilab/modules/overloading/macros/%s_2_hm.sci [deleted file]
scilab/modules/overloading/macros/%s_2_s.sci [moved from scilab/modules/overloading/macros/%s_1_hm.sci with 61% similarity]
scilab/modules/overloading/macros/%s_3_hm.sci [deleted file]
scilab/modules/overloading/macros/%s_3_s.sci [new file with mode: 0644]
scilab/modules/overloading/macros/%s_4_hm.sci [deleted file]
scilab/modules/overloading/macros/%s_4_s.sci [new file with mode: 0644]

index e71f24b..6f9f15a 100644 (file)
@@ -375,6 +375,7 @@ the [development mailing list](dev@lists.scilab.org) for a particular toolbox.
 * [#15072](http://bugzilla.scilab.org/show_bug.cgi?id=15072): The context was stored as a root diagram attribute instead of being stored on each Superblock layer.
 * [#15079](http://bugzilla.scilab.org/show_bug.cgi?id=15079): When all children of a graphic handle have not the same number of sub-children, any vectorized extraction or insertion in subchildren failed.
 * [#15117](http://bugzilla.scilab.org/show_bug.cgi?id=15117): Imbricated optim/leastsq/lsqrsolve/fsolve calls either crashed or returned errors
+* [#15119](http://bugzilla.scilab.org/show_bug.cgi?id=15119): Inequality comparisons between complex-encoded real numbers failed.
 * [#15121](http://bugzilla.scilab.org/show_bug.cgi?id=15121): getOptionals() fails to recognize some options.
 * [#15137](http://bugzilla.scilab.org/show_bug.cgi?id=15137): ilib_build cannot build a library with more than 999 function entries in Scilab 6
 * [#15138](http://bugzilla.scilab.org/show_bug.cgi?id=15138): Scilab crashes at start on Windows
diff --git a/scilab/modules/core/tests/nonreg_tests/bug_15119.tst b/scilab/modules/core/tests/nonreg_tests/bug_15119.tst
new file mode 100644 (file)
index 0000000..e6b7480
--- /dev/null
@@ -0,0 +1,44 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 15119 -->
+//
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/15119
+//
+// <-- Short Description -->
+// Inequality comparisons between complex-encoded real numbers failed
+
+r0 = -1 + 0*%i;
+r = r0;
+assert_checktrue(r<0);
+assert_checktrue(r<=0);
+assert_checkfalse(r>=0);
+assert_checkfalse(r>0);
+
+r = ones(2,3) * r0;
+assert_checktrue(r<0);
+assert_checkequal(size(r<0), [2 3]);
+assert_checktrue(r<=0);
+assert_checkequal(size(r<=0), [2 3]);
+assert_checkfalse(r>=0);
+assert_checkequal(size(r>=0), [2 3]);
+assert_checkfalse(r>0);
+assert_checkequal(size(r>0), [2 3]);
+
+r = ones(2,3,2) * r0;
+assert_checktrue(r<0);
+assert_checkequal(size(r<0), [2 3 2]);
+assert_checktrue(r<=0);
+assert_checkequal(size(r<=0), [2 3 2]);
+assert_checkfalse(r>=0);
+assert_checkequal(size(r>=0), [2 3 2]);
+assert_checkfalse(r>0);
+assert_checkequal(size(r>0), [2 3 2]);
diff --git a/scilab/modules/overloading/macros/%hm_2_s.sci b/scilab/modules/overloading/macros/%hm_2_s.sci
deleted file mode 100644 (file)
index 1bb7da9..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) INRIA
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-function M=%hm_2_s(M,s)
-    //M>s
-    if size(s,"*")<> 1 then
-        error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%hm_2_s",2));
-    end
-    M("entries")=M("entries")>s
-endfunction
diff --git a/scilab/modules/overloading/macros/%hm_3_s.sci b/scilab/modules/overloading/macros/%hm_3_s.sci
deleted file mode 100644 (file)
index 76393c9..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) INRIA
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-function M=%hm_3_s(M,s)
-    //M<=s
-    if size(s,"*")<> 1 then
-        error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%hm_3_s",2));
-    end
-    M("entries")=M("entries")<=s
-endfunction
diff --git a/scilab/modules/overloading/macros/%hm_4_s.sci b/scilab/modules/overloading/macros/%hm_4_s.sci
deleted file mode 100644 (file)
index 598641c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) INRIA
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-function M=%hm_4_s(M,s)
-
-    //M>=s
-    if size(s,"*")<> 1 then
-        error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%hm_4_s",2));
-    end
-    M("entries")=M("entries")>=s
-endfunction
similarity index 61%
rename from scilab/modules/overloading/macros/%hm_1_s.sci
rename to scilab/modules/overloading/macros/%s_1_s.sci
index 8eef468..69d8c2b 100644 (file)
@@ -1,7 +1,5 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) INRIA
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2017 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function M=%hm_1_s(M,s)
-    //M<s
-    if size(s,"*")<> 1 then
-        error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%hm_1_s",2));
+function TF = %s_1_s(A, B)
+    // Possible case: all components of both A and B have both strictly null
+    // imaginary parts
+    if isreal(A, 0) & isreal(B,0) then
+        TF = real(A) < real(B)
     end
-    M("entries")=M("entries")<s
 endfunction
diff --git a/scilab/modules/overloading/macros/%s_2_hm.sci b/scilab/modules/overloading/macros/%s_2_hm.sci
deleted file mode 100644 (file)
index d1550c5..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) INRIA
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-function M=%s_2_hm(s,M)
-
-    //s>M
-    if size(s,"*")<> 1 then
-        error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%s_2_hm",1));
-    end
-    M("entries")=s>M("entries")
-endfunction
similarity index 61%
rename from scilab/modules/overloading/macros/%s_1_hm.sci
rename to scilab/modules/overloading/macros/%s_2_s.sci
index 479bd7c..87a0c05 100644 (file)
@@ -1,7 +1,5 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) INRIA
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2017 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -9,11 +7,11 @@
 // and continues to be available under such terms.
 // For more information, see the COPYING file which you should have received
 // along with this program.
-function M=%s_1_hm(s,M)
 
-    //s<M
-    if size(s,"*")<> 1 then
-        error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%s_1_hm",1));
+function TF = %s_2_s(A, B)
+    // Possible case: all components of both A and B have both strictly null
+    // imaginary parts
+    if isreal(A, 0) & isreal(B,0) then
+        TF = real(A) > real(B)
     end
-    M("entries")=s<M("entries")
 endfunction
diff --git a/scilab/modules/overloading/macros/%s_3_hm.sci b/scilab/modules/overloading/macros/%s_3_hm.sci
deleted file mode 100644 (file)
index 87a14b9..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) INRIA
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-function M=%s_3_hm(s,M)
-
-    //s<=M
-    if size(s,"*")<> 1 then
-        error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%s_3_hm",1));
-    end
-    M("entries")=s<=M("entries")
-endfunction
diff --git a/scilab/modules/overloading/macros/%s_3_s.sci b/scilab/modules/overloading/macros/%s_3_s.sci
new file mode 100644 (file)
index 0000000..11afe09
--- /dev/null
@@ -0,0 +1,17 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017 - Samuel GOUGEON
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0, pursuant
+// to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1, and
+// continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function TF = %s_3_s(A, B)
+    // Possible case: all components of both A and B have both strictly null
+    // imaginary parts
+    if isreal(A, 0) & isreal(B,0) then
+        TF = real(A) <= real(B)
+    end
+endfunction
diff --git a/scilab/modules/overloading/macros/%s_4_hm.sci b/scilab/modules/overloading/macros/%s_4_hm.sci
deleted file mode 100644 (file)
index 6bf2235..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) INRIA
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-function M=%s_4_hm(s,M)
-
-    //s>=M
-    if size(s,"*")<> 1 then
-        error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%s_4_hm",1));
-    end
-    M("entries")=s>=M("entries")
-endfunction
diff --git a/scilab/modules/overloading/macros/%s_4_s.sci b/scilab/modules/overloading/macros/%s_4_s.sci
new file mode 100644 (file)
index 0000000..7ab13c8
--- /dev/null
@@ -0,0 +1,17 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017 - Samuel GOUGEON
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0, pursuant
+// to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1, and
+// continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function TF = %s_4_s(A, B)
+    // Possible case: all components of both A and B have both strictly null
+    // imaginary parts
+    if isreal(A, 0) & isreal(B,0) then
+        TF = real(A) >= real(B)
+    end
+endfunction