* Bug #9783 fixed - Insertion overloading did not seem to work with mlist (non regres... 02/14602/2
Charlotte HECQUET [Mon, 2 Jun 2014 10:30:54 +0000 (12:30 +0200)]
Change-Id: I7da4c59acef2695bad4590fd02bdfbf8ede2ab71

scilab/CHANGES_5.5.X
scilab/modules/overloading/tests/nonreg_tests/bug_9783.dia.ref [new file with mode: 0644]
scilab/modules/overloading/tests/nonreg_tests/bug_9783.tst [new file with mode: 0644]

index bd39ee0..9a371a4 100644 (file)
@@ -28,6 +28,8 @@ Scilab Bug Fixes
 * Bug #9052 fixed - Some demonstrations in graphics were automatically closed at
                     the end of their execution.
 
+* Bug #9783 fixed - Insertion overloading did not seem to work with mlists.
+
 * Bug #10555 fixed - Scilab failed to build with some configure options.
 
 * Bug #10583 fixed - ./configure --without-xcos did not work.
diff --git a/scilab/modules/overloading/tests/nonreg_tests/bug_9783.dia.ref b/scilab/modules/overloading/tests/nonreg_tests/bug_9783.dia.ref
new file mode 100644 (file)
index 0000000..ba1ce5d
--- /dev/null
@@ -0,0 +1,67 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 9783 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9783
+//
+// <-- Short Description -->
+// Insertion overloading does not seem to work with mlist
+// create structure 
+function [q] = new(x)
+  q = mlist(['X','x'], x);
+endfunction
+// q2(I) = q1
+function [q2] = %X_i_X(I,q1,q2)
+  if (I == []) 
+    return; 
+  else
+    x2 = q2.x;
+    x1 = q1.x; 
+    x2(I) = x1;
+    q2 = new(x2);
+  end
+endfunction
+q0 = new([])
+ q0  =
+       q0(1)
+!X  x  !
+       q0(2)
+     []
+q1 = new([91,93])
+ q1  =
+       q1(1)
+!X  x  !
+       q1(2)
+    91.    93.  
+q2 = new([10,20,30,40])
+ q2  =
+       q2(1)
+!X  x  !
+       q2(2)
+    10.    20.    30.    40.  
+q2([1,3]) = q1;
+q2_ref = new([91 20 93 40]);
+assert_checkequal(q2,q2_ref);
+q2([]) = q0;
+assert_checktrue(execstr("q2([])=q0","errcatch")==0);
diff --git a/scilab/modules/overloading/tests/nonreg_tests/bug_9783.tst b/scilab/modules/overloading/tests/nonreg_tests/bug_9783.tst
new file mode 100644 (file)
index 0000000..01fe615
--- /dev/null
@@ -0,0 +1,43 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 9783 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9783
+//
+// <-- Short Description -->
+// Insertion overloading does not seem to work with mlist
+
+
+// create structure 
+function [q] = new(x)
+  q = mlist(['X','x'], x);
+endfunction
+
+// q2(I) = q1
+function [q2] = %X_i_X(I,q1,q2)
+  if (I == []) 
+    return; 
+  else
+    x2 = q2.x;
+    x1 = q1.x; 
+    x2(I) = x1;
+    q2 = new(x2);
+  end
+endfunction
+
+q0 = new([])
+q1 = new([91,93])
+q2 = new([10,20,30,40])
+
+q2([1,3]) = q1;
+q2_ref = new([91 20 93 40]);
+assert_checkequal(q2,q2_ref);
+
+q2([]) = q0;
+assert_checktrue(execstr("q2([])=q0","errcatch")==0);