* Transposed matrix can now use the extraction operator directly A'(1, 2) 53/18053/4
Pierre-Aime Agnel [Thu, 7 Apr 2016 10:14:44 +0000 (12:14 +0200)]
Change-Id: I35b0ec042145122974a47b42dc4673d0ae812452

scilab/CHANGES
scilab/modules/ast/tests/nonreg_tests/bug_7646.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/nonreg_tests/bug_7646.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/parser.dia.ref
scilab/modules/ast/tests/unit_tests/parser.tst

index 047ec1e..1394d7c 100644 (file)
@@ -245,6 +245,8 @@ Syntax Modifications
 
 * while/else control instruction is no more supported.
 
+* Transposed matrix can now use the extraction operator directly A'(1, 2)
+
 
 Modified Functions
 ===================
@@ -322,6 +324,8 @@ In 6.0.0:
 
 * Bug #6314 fixed  - The identical code of %p_m_r() and  %r_m_p() was not factorized
 
+* Bug #7646 fixed  - Extractions A'(1,2) and A.'(1,2) from a transposed matrix were not possible
+
 * Bug #8210 fixed  - Added UMFPACK examples to the Demo gui
 
 * Bug #9456 fixed  - bench_run did not work on a path or in a toolbox
diff --git a/scilab/modules/ast/tests/nonreg_tests/bug_7646.dia.ref b/scilab/modules/ast/tests/nonreg_tests/bug_7646.dia.ref
new file mode 100644 (file)
index 0000000..e4a0061
--- /dev/null
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enteprises - Pierre-Aime AGNEL
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 7646 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=7646
+//
+// <-- Short Description -->
+// matrix extraction on a transposed matrix was not possible
+// <-- CLI SHELL MODE -->
+A = [1 2; 3 4];
+ierr = execstr("A''(1, 2)", "errcatch");
+assert_checktrue(ierr == 0);
+assert_checkequal(A'(1, 2), A(2, 1));
+assert_checkequal(A'(2, 1), A(1, 2));
+A(2, 1) = %i;
+ierr = execstr("A.''(1, 2)", "errcatch");
+assert_checktrue(ierr == 0);
+assert_checkequal(A.'(1, 2), A(2, 1));
+assert_checkequal(A.'(2, 1), A(1, 2));
diff --git a/scilab/modules/ast/tests/nonreg_tests/bug_7646.tst b/scilab/modules/ast/tests/nonreg_tests/bug_7646.tst
new file mode 100644 (file)
index 0000000..233f548
--- /dev/null
@@ -0,0 +1,29 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enteprises - Pierre-Aime AGNEL
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 7646 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=7646
+//
+// <-- Short Description -->
+// matrix extraction on a transposed matrix was not possible
+
+// <-- CLI SHELL MODE -->
+A = [1 2; 3 4];
+
+ierr = execstr("A''(1, 2)", "errcatch");
+assert_checktrue(ierr == 0);
+assert_checkequal(A'(1, 2), A(2, 1));
+assert_checkequal(A'(2, 1), A(1, 2));
+
+A(2, 1) = %i;
+ierr = execstr("A.''(1, 2)", "errcatch");
+assert_checktrue(ierr == 0);
+assert_checkequal(A.'(1, 2), A(2, 1));
+assert_checkequal(A.'(2, 1), A(1, 2));
+
index dff1efd..2fda52a 100644 (file)
@@ -634,12 +634,6 @@ assert_checktrue(execstr(str_cmd, "errcatch") <> 0);
 // convstr a /* a comment */
 // convstr a u /* some text
 //                ending comment here */
-ierr = execstr("convstr a u // a comment", "errcatch");
-assert_checkequal(ierr, 0);
-ierr = execstr("convstr a /* a comment */", "errcatch");
-assert_checkequal(ierr, 0);
-ierr = execstr(["convstr a u /* some text"; ..
-                "              ending comment here */"], "errcatch");
-assert_checkequal(ierr, 0);
-ierr = execstr("convstr a /* some comments */ u;", "errcatch");
-assert_checkequal(ierr, 0);
+exec(SCI + "/modules/ast/tests/nonreg_tests/bug_14374.tst");
+// Bug 7646: matrix transpose extraction
+exec(SCI + "/modules/ast/tests/nonreg_tests/bug_7646.tst");
index fcad4c6..ac9978a 100644 (file)
@@ -740,15 +740,7 @@ assert_checktrue(execstr(str_cmd, "errcatch") <> 0);
 // convstr a /* a comment */
 // convstr a u /* some text
 //                ending comment here */
-ierr = execstr("convstr a u // a comment", "errcatch");
-assert_checkequal(ierr, 0);
+exec(SCI + "/modules/ast/tests/nonreg_tests/bug_14374.tst");
 
-ierr = execstr("convstr a /* a comment */", "errcatch");
-assert_checkequal(ierr, 0);
-
-ierr = execstr(["convstr a u /* some text"; ..
-                "              ending comment here */"], "errcatch");
-assert_checkequal(ierr, 0);
-
-ierr = execstr("convstr a /* some comments */ u;", "errcatch");
-assert_checkequal(ierr, 0);
+// Bug 7646: matrix transpose extraction
+exec(SCI + "/modules/ast/tests/nonreg_tests/bug_7646.tst");