Bug 13723 fixed: No way to insert a single double in double[][] 52/16252/4
Calixte DENIZET [Thu, 26 Mar 2015 15:38:46 +0000 (16:38 +0100)]
Change-Id: I46ae9641f66c1a57bc8b0e0c3fecb6bb44a3ffc8

scilab/CHANGES_5.5.X
scilab/modules/external_objects_java/src/java/org/scilab/modules/external_objects_java/FunctionArguments.java
scilab/modules/external_objects_java/tests/nonreg_tests/bug_13723.dia.ref [new file with mode: 0644]
scilab/modules/external_objects_java/tests/nonreg_tests/bug_13723.tst [new file with mode: 0644]

index 1d4ba4d..7523540 100644 (file)
@@ -96,7 +96,7 @@ Scilab Bug Fixes
 
 * Bug #13677 fixed - Indentation of examples in assert_checkerror help page was not correct.
 
-* Bug #13679 fixed - Invalid subticks in log scale after copy.
+* Bug #13679 fixed - There were invalid subticks in log scale after a copy.
 
 * Bug #13681 fixed - Calling cdfnor to get the X vector could produced a vector with some NaN values.
 
@@ -119,6 +119,8 @@ Scilab Bug Fixes
 
 * Bug #13712 fixed - Details added in strcat help page for strcat(strings, "", "r") case.
 
+* Bug #13723 fixed - It was not possible to insert a single double in double[][].
+
 * Bug #13725 fixed - Polyline was not correctly filled with big values.
 
 * Bug #13731 fixed - xmlDelete could be very slow.
index 671dd16..4496237 100644 (file)
@@ -153,6 +153,19 @@ public final class FunctionArguments {
                 return to.isArray() && from == to.getComponentType();
             }
         });
+
+        // Converter to convert Double to double[]
+        registerConverter(new Converter() {
+            @Override
+            public Object convert(Object original, Class<?> to) {
+                return ScilabJavaArray.singleToOneDim(to.getComponentType(), original);
+            }
+
+            @Override
+            public boolean canConvert(Class<?> from, Class<?> to) {
+                return to.isArray() && ScilabJavaArray.mappings.get(from) == to.getComponentType();
+            }
+        });
     }
 
     /**
diff --git a/scilab/modules/external_objects_java/tests/nonreg_tests/bug_13723.dia.ref b/scilab/modules/external_objects_java/tests/nonreg_tests/bug_13723.dia.ref
new file mode 100644 (file)
index 0000000..c1c865c
--- /dev/null
@@ -0,0 +1,22 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Calixte DENIZET
+//
+//  This file is distributed under the same license as the Scilab package.
+// ===========================================================================
+//
+// <-- Non-regression test for bug 13723 -->
+//
+// <-- JVM MANDATORY -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13723
+//
+// <-- Short Description -->
+// No way to insert a single double in double[][]
+b = jarray("double",3,1);
+b(1) = [1 2 3];
+b(2) = [4 5];
+b(3) = 6;
+assert_checkequal(b(1), [1 2 3]);
+assert_checkequal(b(2), [4 5]);
+assert_checkequal(b(3), 6);
diff --git a/scilab/modules/external_objects_java/tests/nonreg_tests/bug_13723.tst b/scilab/modules/external_objects_java/tests/nonreg_tests/bug_13723.tst
new file mode 100644 (file)
index 0000000..766fff8
--- /dev/null
@@ -0,0 +1,24 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Calixte DENIZET
+//
+//  This file is distributed under the same license as the Scilab package.
+// ===========================================================================
+//
+// <-- Non-regression test for bug 13723 -->
+//
+// <-- JVM MANDATORY -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13723
+//
+// <-- Short Description -->
+// No way to insert a single double in double[][]
+
+b = jarray("double",3,1);
+b(1) = [1 2 3];
+b(2) = [4 5];
+b(3) = 6;
+
+assert_checkequal(b(1), [1 2 3]);
+assert_checkequal(b(2), [4 5]);
+assert_checkequal(b(3), 6);
\ No newline at end of file