* Bug #9161 fixed - Insertions at repeated index in sparse => bad result 24/18424/3
Samuel GOUGEON [Mon, 8 Aug 2016 08:35:30 +0000 (10:35 +0200)]
  http://bugzilla.scilab.org/9161
  Fixed in Scilab 6. Non reg test added

Change-Id: I6e933ebe74289cecc2ac049e2aabe8e0bb0a3fb6

scilab/CHANGES.md
scilab/modules/sparse/tests/nonreg_tests/bug_9161.dia.ref [new file with mode: 0644]
scilab/modules/sparse/tests/nonreg_tests/bug_9161.tst [new file with mode: 0644]

index ce1cbdf..79b355f 100644 (file)
@@ -262,6 +262,7 @@ Bug Fixes
 * [Bug #8493](http://bugzilla.scilab.org/show_bug.cgi?id=8493) fixed - Some trivial simplifications of `p1./p2` with matrices of complex-encoded polynomials were not done.
 * [Bug #8938](http://bugzilla.scilab.org/show_bug.cgi?id=8938) fixed   - In a boolean sparse matrix `sp`, distributive insertions like `sp(1,:)=%t`, `sp(1,1:$)=%t` or `sp(:,:)=%t` yielded an error.
 * [Bug #9153](http://bugzilla.scilab.org/show_bug.cgi?id=9153) fixed - The `isqualbitwise` help page was inaccurate and badly located
+* [Bug #9161](http://bugzilla.scilab.org/show_bug.cgi?id=9161) fixed - Multiple insertions at a repeated index in a sparse matrice wrongly updated it.
 * [Bug #9912](http://bugzilla.scilab.org/show_bug.cgi?id=9912) fixed - In case of missing translated help page, the default en_US was sometimes ignored
 * [Bug #10116](http://bugzilla.scilab.org/show_bug.cgi?id=10116) fixed - `for h = H, .., end` could not be used when H is a vector of graphic handles
 * [Bug #11375](http://bugzilla.scilab.org/show_bug.cgi?id=11375) fixed - When a localized help subdirectory has only a CHAPTER file specifying the section title, it was ignored.
diff --git a/scilab/modules/sparse/tests/nonreg_tests/bug_9161.dia.ref b/scilab/modules/sparse/tests/nonreg_tests/bug_9161.dia.ref
new file mode 100644 (file)
index 0000000..858ab90
--- /dev/null
@@ -0,0 +1,26 @@
+// =============================================================================
+// 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 9161 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/9161
+//
+// <-- Short Description -->
+//  Wrong insertions in sparse when repeated index
+
+A = sparse(33);
+B = sparse([1 0 3]');
+ind = [1 1 1];
+A(ind) = B;
+assert_checkequal(A, sparse(3));
+
+A = sparse([33 -10]);
+ind = [2 1 2];
+A(ind) = B;
+assert_checkequal(A, sparse([0 3]));
diff --git a/scilab/modules/sparse/tests/nonreg_tests/bug_9161.tst b/scilab/modules/sparse/tests/nonreg_tests/bug_9161.tst
new file mode 100644 (file)
index 0000000..858ab90
--- /dev/null
@@ -0,0 +1,26 @@
+// =============================================================================
+// 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 9161 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/9161
+//
+// <-- Short Description -->
+//  Wrong insertions in sparse when repeated index
+
+A = sparse(33);
+B = sparse([1 0 3]');
+ind = [1 1 1];
+A(ind) = B;
+assert_checkequal(A, sparse(3));
+
+A = sparse([33 -10]);
+ind = [2 1 2];
+A(ind) = B;
+assert_checkequal(A, sparse([0 3]));