* Java mapping of Scilab data has now a new method called getType() which 77/4577/2
Sylvestre Ledru [Fri, 22 Jul 2011 17:22:11 +0000 (19:22 +0200)]
returns the value of the ScilabTypeEnum enum.

Change-Id: Ia03f6acc8f50da1528d62f64da90cb8e57f9eb04

scilab/CHANGES_5.4.X
scilab/modules/types/src/java/org/scilab/modules/types/ScilabBoolean.java
scilab/modules/types/src/java/org/scilab/modules/types/ScilabDouble.java
scilab/modules/types/src/java/org/scilab/modules/types/ScilabInteger.java
scilab/modules/types/src/java/org/scilab/modules/types/ScilabList.java
scilab/modules/types/src/java/org/scilab/modules/types/ScilabMList.java
scilab/modules/types/src/java/org/scilab/modules/types/ScilabString.java
scilab/modules/types/src/java/org/scilab/modules/types/ScilabTList.java
scilab/modules/types/src/java/org/scilab/modules/types/ScilabType.java
scilab/modules/types/tests/java/org/scilab/tests/modules/types/testEquals.java

index f081706..9133af6 100644 (file)
@@ -238,6 +238,18 @@ ATOMS:
 
 * bug 8664 fixed - Message error updated for non supported OS.
 
+Javasci:
+========
+
+* Java mapping of Scilab data has now a new method called getType() which
+returns the value of the ScilabTypeEnum enum.
+
+* bug 9467 fixed - unnecessary declarations in MAKE.BAT of javasci examples.
+
+* bug 9544 fixed - Calling graphic with Javasci from a SWING application from
+                   EDT was crashing the execution of a java program.
+
+
 Misc:
 =====
 
@@ -306,8 +318,6 @@ Bug fixes:
 
 * bug 9452 fixed - It was impossible to download Intel MKL throw a proxy.
 
-* bug 9467 fixed - unnecessary declarations in MAKE.BAT of javasci examples.
-
 * bug 9479 fixed - Typo fixed (intput => input).
 
 * bug 9498 fixed - A long history caused Scilab startup to be very long.
@@ -323,9 +333,6 @@ Bug fixes:
 * bug 9543 fixed - Scilab did not use the default DocumentBuilderFactory
                    to parse XML configuration files.
 
-* bug 9544 fixed - Calling graphic with Javasci from a SWING application from
-                   EDT was crashing the execution of a java program.
-
 * bug 9555 fixed - Typo in the 'deff' help page.
 
 * bug 9571 fixed - "error(144)" returned a wrong variable name.
index 3727c53..e9ee4e9 100644 (file)
@@ -32,6 +32,8 @@ public class ScilabBoolean implements ScilabType {
        /* the boolean data */
        private boolean[][] data;
 
+       private ScilabTypeEnum type = ScilabTypeEnum.sci_boolean;
+
        /**
         * Create an empty object
         */
@@ -76,6 +78,15 @@ public class ScilabBoolean implements ScilabType {
                return data;
        }
 
+    /** 
+     * Return the type of Scilab 
+     * @return the type of Scilab
+     * @since 5.4.0
+     */
+    public ScilabTypeEnum getType() {
+        return type;
+    }
+
        /**
         * Return the height (number of element) of the stored data
         *
index 1013eae..0e155ce 100644 (file)
@@ -39,6 +39,7 @@ public class ScilabDouble implements ScilabType {
        private static final long serialVersionUID = 879624048944109684L;
        private double[][] realPart;
        private double[][] imaginaryPart;
+       private ScilabTypeEnum type = ScilabTypeEnum.sci_matrix;
 
        /**
         * Default constructor
@@ -92,6 +93,15 @@ public class ScilabDouble implements ScilabType {
                imaginaryPart = imagData;
        }
 
+    /** 
+     * Return the type of Scilab 
+     * @return the type of Scilab
+     * @since 5.4.0
+     */
+    public ScilabTypeEnum getType() {
+        return type;
+    }
+
        /**
         * Check the emptiness of the associated data.
         * @return true, if the associated data array is empty. 
index d51897a..fefac10 100644 (file)
@@ -32,7 +32,8 @@ public class ScilabInteger implements ScilabType {
        private short[][] shortData = null;
        private int[][] intData = null;
        private byte[][] byteData = null;
-       private ScilabIntegerTypeEnum type;
+       private ScilabIntegerTypeEnum precision;
+       private ScilabTypeEnum type = ScilabTypeEnum.sci_ints;
        
        /**
         * Default constructor
@@ -89,7 +90,7 @@ public class ScilabInteger implements ScilabType {
        public ScilabInteger(byte value) {
                this.byteData = new byte[1][1];
                this.byteData[0][0] = value;
-               this.type = ScilabIntegerTypeEnum.sci_int8;
+               this.precision = ScilabIntegerTypeEnum.sci_int8;
        }
 
        /**
@@ -100,7 +101,7 @@ public class ScilabInteger implements ScilabType {
        public ScilabInteger(short value) {
                this.shortData = new short[1][1];
                this.shortData[0][0] = value;
-               this.type = ScilabIntegerTypeEnum.sci_int16;
+               this.precision = ScilabIntegerTypeEnum.sci_int16;
        }
 
        /**
@@ -111,7 +112,7 @@ public class ScilabInteger implements ScilabType {
        public ScilabInteger(int value) {
                this.intData = new int[1][1];
                this.intData[0][0] = value;
-               this.type = ScilabIntegerTypeEnum.sci_int32;
+               this.precision = ScilabIntegerTypeEnum.sci_int32;
        }
 
        /**
@@ -122,7 +123,7 @@ public class ScilabInteger implements ScilabType {
        public ScilabInteger(long value) {
                this.longData = new long[1][1];
                this.longData[0][0] = value;
-               this.type = ScilabIntegerTypeEnum.sci_int64;
+               this.precision = ScilabIntegerTypeEnum.sci_int64;
        }
 
        /**
@@ -134,9 +135,9 @@ public class ScilabInteger implements ScilabType {
        public void setData(byte[][] data, boolean bUnsigned) {
                this.byteData = data;
                if (bUnsigned) {
-                       this.type = ScilabIntegerTypeEnum.sci_uint8;
+                       this.precision = ScilabIntegerTypeEnum.sci_uint8;
                } else {
-                       this.type = ScilabIntegerTypeEnum.sci_int8;
+                       this.precision = ScilabIntegerTypeEnum.sci_int8;
                }
        }
 
@@ -149,9 +150,9 @@ public class ScilabInteger implements ScilabType {
        public void setData(short[][] data, boolean bUnsigned) {
                this.shortData = data;
                if (bUnsigned) {
-                       this.type = ScilabIntegerTypeEnum.sci_uint16;
+                       this.precision = ScilabIntegerTypeEnum.sci_uint16;
                } else {
-                       this.type = ScilabIntegerTypeEnum.sci_int16;
+                       this.precision = ScilabIntegerTypeEnum.sci_int16;
                }
        }
 
@@ -164,9 +165,9 @@ public class ScilabInteger implements ScilabType {
        public void setData(int[][] data, boolean bUnsigned) {
                this.intData = data;
                if (bUnsigned) {
-                       this.type = ScilabIntegerTypeEnum.sci_uint32;
+                       this.precision = ScilabIntegerTypeEnum.sci_uint32;
                } else {
-                       this.type = ScilabIntegerTypeEnum.sci_int32;
+                       this.precision = ScilabIntegerTypeEnum.sci_int32;
                }
        }
 
@@ -179,12 +180,21 @@ public class ScilabInteger implements ScilabType {
        public void setData(long[][] data, boolean bUnsigned) {
                this.longData = data;
                if (bUnsigned) {
-                       this.type = ScilabIntegerTypeEnum.sci_uint64;
+                       this.precision = ScilabIntegerTypeEnum.sci_uint64;
                } else {
-                       this.type = ScilabIntegerTypeEnum.sci_int64;
+                       this.precision = ScilabIntegerTypeEnum.sci_int64;
                }
        }
 
+    /** 
+     * Return the type of Scilab 
+     * @return the type of Scilab
+     * @since 5.4.0
+     */
+    public ScilabTypeEnum getType() {
+        return type;
+    }
+
        /**
         * If the precision is not 64, all values will be converted to long 
         * (attention, the convertion can be long)
@@ -264,14 +274,14 @@ public class ScilabInteger implements ScilabType {
         * @return the precision of the values
         */
        public ScilabIntegerTypeEnum getPrec() {
-               return type;
+               return precision;
        }
 
        /**
         * @return true, if the values are signed, false otherwise.
         */
        public boolean isUnsigned() {
-               switch (type) {
+               switch (precision) {
                        case sci_int8:
                        case sci_int16:
                        case sci_int32:
index 3ebb0ce..4f66b46 100644 (file)
@@ -29,6 +29,7 @@ import java.util.Collection;
 public class ScilabList extends ArrayList<ScilabType> implements ScilabType {
        
        private static final long serialVersionUID = 6884293176289980909L;
+       private ScilabTypeEnum type = ScilabTypeEnum.sci_list;
 
        /**
         * Construct an empty Scilab list.
@@ -60,6 +61,15 @@ public class ScilabList extends ArrayList<ScilabType> implements ScilabType {
                return 1;
        }
 
+    /** 
+     * Return the type of Scilab 
+     * @return the type of Scilab
+     * @since 5.4.0
+     */
+    public ScilabTypeEnum getType() {
+        return type;
+    }
+
        /**
         * @return 1 when there is data on the list, 0 otherwise.
         * @see org.scilab.modules.types.ScilabType#getWidth()
index 64aed39..1b3b7ac 100644 (file)
@@ -29,6 +29,7 @@ import java.util.Collection;
 public class ScilabMList extends ArrayList<ScilabType> implements ScilabType {
    
        private static final long serialVersionUID = 3224510024213901841L;
+       private ScilabTypeEnum type = ScilabTypeEnum.sci_mlist;
 
        /**
         * Construct an empty mlist.
@@ -84,6 +85,15 @@ public class ScilabMList extends ArrayList<ScilabType> implements ScilabType {
                return 1;
        }
 
+    /** 
+     * Return the type of Scilab 
+     * @return the type of Scilab
+     * @since 5.4.0
+     */
+    public ScilabTypeEnum getType() {
+        return type;
+    }
+
        /**
         * @return 1 when there is data on the list, 0 otherwise.
         * @see org.scilab.modules.types.ScilabType#getWidth()
index 273351f..f7c6f3a 100644 (file)
@@ -30,6 +30,7 @@ public class ScilabString implements ScilabType {
 
        private String[][] data;
 
+       private ScilabTypeEnum type = ScilabTypeEnum.sci_strings;
        /**
         * Default constructor
         */
@@ -85,6 +86,15 @@ public class ScilabString implements ScilabType {
                this.data = data;
        }
 
+    /** 
+     * Return the type of Scilab 
+     * @return the type of Scilab
+     * @since 5.4.0
+     */
+    public ScilabTypeEnum getType() {
+        return type;
+    }
+
        /**
         * @return the associated values
         */
index 60d767a..2e427e6 100644 (file)
@@ -30,6 +30,8 @@ public class ScilabTList extends ArrayList<ScilabType> implements ScilabType {
 
        private static final long serialVersionUID = 8080160982092586620L;
 
+       private ScilabTypeEnum type = ScilabTypeEnum.sci_tlist;
+
        /**
         * Construct an empty tlist.
         * 
@@ -72,6 +74,15 @@ public class ScilabTList extends ArrayList<ScilabType> implements ScilabType {
                addAll(c);
        }
        
+    /** 
+     * Return the type of Scilab 
+     * @return the type of Scilab
+     * @since 5.4.0
+     */
+    public ScilabTypeEnum getType() {
+        return type;
+    }
+
        /**
         * @return 1 when there is data on the list, 0 otherwise.
         * @see org.scilab.modules.types.ScilabType#getHeight()
index be734fc..ec16386 100644 (file)
@@ -19,6 +19,13 @@ import java.io.Serializable;
  */
 public interface ScilabType extends Serializable, Cloneable {
 
+    /** 
+     * Return the type of Scilab 
+     * @return the type of Scilab
+     * @since 5.4.0
+     */
+    public ScilabTypeEnum getType();
+
        /**
         * Return the width (number of elements) of the stored data
         *
index d1fb267..82256a1 100644 (file)
@@ -24,6 +24,7 @@ import org.scilab.modules.types.ScilabString;
 import org.scilab.modules.types.ScilabList;
 import org.scilab.modules.types.ScilabTList;
 import org.scilab.modules.types.ScilabMList;
+import org.scilab.modules.types.ScilabTypeEnum;
 
 public class testEquals {
 
@@ -41,6 +42,9 @@ public class testEquals {
                assert Arrays.deepEquals(aMatrix.getRealPart(), bMatrix.getRealPart()) == true;
                assert aMatrix.toString().equals("[21.2, 22.0, 42.0, 39.0 ; 23.2, 24.0, 44.0, 40.0]") == true;
                assert cMatrix.toString().equals("[42.0, 43.0 ; 21.0, 22.0]") == true;
+        assert aMatrix.getType() == ScilabTypeEnum.sci_matrix;
+        assert bMatrix.getType() == ScilabTypeEnum.sci_matrix;
+        assert cMatrix.getType() == ScilabTypeEnum.sci_matrix;
        }
 
        @Test
@@ -53,10 +57,12 @@ public class testEquals {
                assert emptyMatrix.toString().equals("[]") == true;
                emptyMatrix.setRealPart(a);
                emptyMatrix.setImaginaryPart(a);
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_matrix;
 
                ScilabBoolean aMatrix = new ScilabBoolean(true);
                assert aMatrix.equals(emptyMatrix) == false;
                assert emptyMatrix.equals(aMatrix) == false;
+        assert aMatrix.getType() != ScilabTypeEnum.sci_matrix;
        }
 
 
@@ -74,6 +80,10 @@ public class testEquals {
                assert aMatrix.equals(bMatrix) == true;
                assert bMatrix.equals(aMatrix) == true;
                assert cMatrix.equals(aMatrix) == false;
+        assert aMatrix.getType() == ScilabTypeEnum.sci_matrix;
+        assert bMatrix.getType() == ScilabTypeEnum.sci_matrix;
+        assert cMatrix.getType() == ScilabTypeEnum.sci_matrix;
+
                assert Arrays.deepEquals(aMatrix.getRealPart(), bMatrix.getRealPart()) == true;
                assert Arrays.deepEquals(aMatrix.getImaginaryPart(), bMatrix.getImaginaryPart()) == true;
                assert aMatrix.toString().equals("[21.2 + 210.2 * %i, 22.0 + 220.0 * %i, 42.0 + 420.0 * %i, 39.0 + 390.0 * %i ; 23.2 + 230.2 * %i, 24.0 + 240.0 * %i, 44.0 + 440.0 * %i, 40.0 + 400.0 * %i]") == true;
@@ -101,6 +111,10 @@ public class testEquals {
                assert bMatrix.equals(aMatrix) == true;
                assert cMatrix.equals(aMatrix) == false;
                assert cMatrix.equals(dMatrix) == true;
+        assert aMatrix.getType() == ScilabTypeEnum.sci_ints;
+        assert bMatrix.getType() == ScilabTypeEnum.sci_ints;
+        assert cMatrix.getType() == ScilabTypeEnum.sci_ints;
+        
                assert Arrays.deepEquals(aMatrix.getData(), bMatrix.getData()) == true;
                assert aMatrix.toString().equals("uint8([32, 42, 41 ; 12, 13, 32])") == true;
                assert cMatrix.toString().equals("uint8([42, 43 ; 21, 22])") == true;
@@ -129,7 +143,9 @@ public class testEquals {
                assert emptyMatrix.getWidth() == 0;
                assert emptyMatrix.isEmpty() == true;
                assert emptyMatrix.toString().equals("int([])") == true;
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_ints;
                emptyMatrix.setData(a, true);
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_ints;
 
                ScilabBoolean aMatrix = new ScilabBoolean(true);
                assert aMatrix.equals(emptyMatrix) == false;
@@ -151,6 +167,10 @@ public class testEquals {
                assert bMatrix.equals(aMatrix) == true;
                assert cMatrix.equals(aMatrix) == false;
                assert cMatrix.equals(dMatrix) == true;
+        assert aMatrix.getType() == ScilabTypeEnum.sci_ints;
+        assert bMatrix.getType() == ScilabTypeEnum.sci_ints;
+        assert cMatrix.getType() == ScilabTypeEnum.sci_ints;
+
                assert Arrays.deepEquals(aMatrix.getData(), bMatrix.getData()) == true;
                assert aMatrix.toString().equals("uint16([32, 42, 41 ; 12, 13, 32])") == true;
                assert cMatrix.toString().equals("uint16([42, 43 ; 21, 22])") == true;
@@ -174,7 +194,9 @@ public class testEquals {
        public void integer16MatrixTests() {
                short [][]a={{21, 22, 42, 39},{23, 24, 44, 40}};
                ScilabInteger emptyMatrix = new ScilabInteger();
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_ints;
                emptyMatrix.setData(a, true);
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_ints;
 
                ScilabBoolean aMatrix = new ScilabBoolean(true);
                assert aMatrix.equals(emptyMatrix) == false;
@@ -195,6 +217,10 @@ public class testEquals {
                assert bMatrix.equals(aMatrix) == true;
                assert cMatrix.equals(aMatrix) == false;
                assert cMatrix.equals(dMatrix) == true;
+        assert aMatrix.getType() == ScilabTypeEnum.sci_ints;
+        assert bMatrix.getType() == ScilabTypeEnum.sci_ints;
+        assert cMatrix.getType() == ScilabTypeEnum.sci_ints;
+
                assert Arrays.deepEquals(aMatrix.getData(), bMatrix.getData()) == true;
                assert aMatrix.toString().equals("uint32([32, 42, 41 ; 12, 13, 32])") == true;
                assert cMatrix.toString().equals("uint32([42, 43 ; 21, 22])") == true;
@@ -218,7 +244,9 @@ public class testEquals {
        public void integer32MatrixTests() {
                int [][]a={{21, 22, 42, 39},{23, 24, 44, 40}};
                ScilabInteger emptyMatrix = new ScilabInteger();
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_ints;
                emptyMatrix.setData(a, true);
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_ints;
 
                ScilabBoolean aMatrix = new ScilabBoolean(true);
                assert aMatrix.equals(emptyMatrix) == false;
@@ -239,6 +267,10 @@ public class testEquals {
                assert bMatrix.equals(aMatrix) == true;
                assert cMatrix.equals(aMatrix) == false;
                assert cMatrix.equals(dMatrix) == true;
+        assert aMatrix.getType() == ScilabTypeEnum.sci_ints;
+        assert bMatrix.getType() == ScilabTypeEnum.sci_ints;
+        assert cMatrix.getType() == ScilabTypeEnum.sci_ints;
+
                assert Arrays.deepEquals(aMatrix.getData(), bMatrix.getData()) == true;
                assert aMatrix.toString().equals("uint64([32, 42, 41 ; 12, 13, 32])") == true;
                assert cMatrix.toString().equals("uint64([42, 43 ; 21, 22])") == true;
@@ -262,7 +294,9 @@ public class testEquals {
        public void integer64MatrixTests() {
                long [][]a={{21, 22, 42, 39},{23, 24, 44, 40}};
                ScilabInteger emptyMatrix = new ScilabInteger();
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_ints;
                emptyMatrix.setData(a, true);
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_ints;
 
                ScilabBoolean aMatrix = new ScilabBoolean(true);
                assert aMatrix.equals(emptyMatrix) == false;
@@ -282,6 +316,10 @@ public class testEquals {
                assert aMatrix.equals(bMatrix) == true;
                assert bMatrix.equals(aMatrix) == true;
                assert cMatrix.equals(aMatrix) == false;
+        assert aMatrix.getType() == ScilabTypeEnum.sci_boolean;
+        assert bMatrix.getType() == ScilabTypeEnum.sci_boolean;
+        assert cMatrix.getType() == ScilabTypeEnum.sci_boolean;
+
                assert Arrays.deepEquals(aMatrix.getData(), bMatrix.getData()) == true;
                assert aMatrix.toString().equals("[%t, %f, %t ; %t, %t, %t]") == true;
                assert cMatrix.toString().equals("[%t, %f ; %f, %t]") == true;
@@ -295,7 +333,10 @@ public class testEquals {
                assert emptyMatrix.getWidth() == 0;
                assert emptyMatrix.isEmpty() == true;
                assert emptyMatrix.toString().equals("[]") == true;
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_boolean;
                emptyMatrix.setData(a);
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_boolean;
+
                ScilabDouble aMatrix = new ScilabDouble(2);
                assert aMatrix.equals(emptyMatrix) == false;
                assert emptyMatrix.equals(aMatrix) == false;
@@ -312,6 +353,10 @@ public class testEquals {
                assert aMatrix.equals(bMatrix) == true;
                assert bMatrix.equals(aMatrix) == true;
                assert cMatrix.equals(aMatrix) == false;
+        assert aMatrix.getType() == ScilabTypeEnum.sci_strings;
+        assert bMatrix.getType() == ScilabTypeEnum.sci_strings;
+        assert cMatrix.getType() == ScilabTypeEnum.sci_strings;
+
                assert Arrays.deepEquals(aMatrix.getData(), bMatrix.getData()) == true;
                assert aMatrix.toString().equals("[\"This\", \"is\", \"my\", \"string\" ; \"and\", \"I want to\", \"compare\", \" them\"]") == true;
                assert cMatrix.toString().equals("[\"Wrong\", \"string\" ; \"right\", \"string\"]") == true;
@@ -326,7 +371,9 @@ public class testEquals {
                assert emptyMatrix.getWidth() == 0;
                assert emptyMatrix.isEmpty() == true;
                assert emptyMatrix.toString().equals("[]") == true;
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_strings;
                emptyMatrix.setData(a);
+        assert emptyMatrix.getType() == ScilabTypeEnum.sci_strings;
                ScilabDouble aMatrix = new ScilabDouble(2);
                assert aMatrix.equals(emptyMatrix) == false;
                assert emptyMatrix.equals(aMatrix) == false;
@@ -341,6 +388,7 @@ public class testEquals {
        @Test
        public void compareListTest() throws NullPointerException {
                ScilabList data = new ScilabList();
+        assert data.getType() == ScilabTypeEnum.sci_list;
                assert data.getHeight() == 0;
                assert data.getWidth() == 0;
                assert data.toString().equals("list()");
@@ -367,6 +415,7 @@ public class testEquals {
 
                ScilabList data4 = new ScilabList(data3);
                assert data4.equals(data3) == true;
+        assert data4.getType() == ScilabTypeEnum.sci_list;
 
        }
 
@@ -374,6 +423,7 @@ public class testEquals {
        @Test
        public void compareTListTest() throws NullPointerException {
                ScilabTList data = new ScilabTList();
+        assert data.getType() == ScilabTypeEnum.sci_tlist;
                assert data.getHeight() == 0;
                assert data.getWidth() == 0;
                assert data.toString().equals("tlist()");
@@ -410,12 +460,14 @@ public class testEquals {
                assert tlistFromAnOther.getHeight() == 1;
                assert tlistFromAnOther.getWidth() == 4;
                assert tlistFromAnOther.toString().equals("tlist([\"a\", \"b\", \"c\"], [\"hello\"], [2.0], [51.0])");
+        assert tlist.getType() == ScilabTypeEnum.sci_tlist;
        }
 
 
        @Test
        public void compareMListTest() throws NullPointerException {
                ScilabMList data = new ScilabMList();
+        assert data.getType() == ScilabTypeEnum.sci_mlist;
                assert data.getHeight() == 0;
                assert data.getWidth() == 0;
                assert data.toString().equals("mlist()");
@@ -437,9 +489,9 @@ public class testEquals {
                data3.add(new ScilabDouble(2));
                data3.add(new ScilabDouble(42));
                data3.add(new ScilabBoolean(true));
+        assert data3.getType() == ScilabTypeEnum.sci_mlist;
                assert data.equals(data2) == true;
                assert data.equals(data3) == false;
-
                assert data.toString().equals("mlist([\"hello\"], [2.0], [51.0])") == true;
                assert data3.toString().equals("mlist([\"hello\"], [2.0], [42.0], [%t])") == true;
                String []b={"a","b","c"};