Data structures 01/16801/1
Vincent COUVERT [Mon, 6 Jul 2015 14:16:30 +0000 (16:16 +0200)]
================

* cells and structs are not native types, hence improving performances.

* structs field names are now ordered alphabaticaly:
   - display uses this new order,
   - fieldnames function returns a sorted vector of strings.

Change-Id: I9a907c0340e67018782e5dddcd5cdb2133827799

scilab/CHANGES_6.0.X
scilab/modules/data_structures/tests/nonreg_tests/bug_5612.dia.ref
scilab/modules/data_structures/tests/nonreg_tests/bug_5612.tst
scilab/modules/mexlib/tests/unit_tests/mxGetFieldNumber.dia.ref
scilab/modules/mexlib/tests/unit_tests/mxGetFieldNumber.tst

index 811a4d5..380c992 100644 (file)
@@ -26,6 +26,16 @@ File input/output
 * msprintf no more returns an error message when there are too many input argument (more values that format needs).
 
 
+Data structures
+================
+
+* cells and structs are not native types, hence improving performances.
+
+* structs field names are now ordered alphabaticaly:
+   - display uses this new order,
+   - fieldnames function returns a sorted vector of strings.
+
+
 Removed functions
 ==================
 
index 487b86d..d43cb4a 100644 (file)
 // <-- Short Description -->
 // There is no way for deleting a structure field.
 s = struct("txt","Hello","num",%pi,"pol",%z^2+1);
-if or(getfield(1,s)<>["st", "dims", "txt", "num", "pol"]) then bugmes();quit;end
+if or(getfield(1,s)<>["st", "dims", "num", "pol", "txt"]) then bugmes();quit;end
 // Delete the field called 'num'
 s.num = null();
 // Check that 'num' field has been deleted
-if or(getfield(1,s)<>["st", "dims", "txt", "pol"]) then bugmes();quit;end
+if or(getfield(1,s)<>["st", "dims", "pol", "txt"]) then bugmes();quit;end
 // Check that remaining fields have the right value
 if s.txt<>"Hello" then bugmes();quit;end
 if s.pol<>%z^2+1 then bugmes();quit;end
index ec4a44e..78064ac 100644 (file)
 
 s = struct("txt","Hello","num",%pi,"pol",%z^2+1);
 
-if or(getfield(1,s)<>["st", "dims", "txt", "num", "pol"]) then pause; end
+if or(getfield(1,s)<>["st", "dims", "num", "pol", "txt"]) then pause; end
 
 // Delete the field called 'num'
 s.num = null();
 
 // Check that 'num' field has been deleted
-if or(getfield(1,s)<>["st", "dims", "txt", "pol"]) then pause; end
+if or(getfield(1,s)<>["st", "dims", "pol", "txt"]) then pause; end
 
 // Check that remaining fields have the right value
 if s.txt<>"Hello" then pause; end
index d1e46af..ea27b46 100644 (file)
@@ -28,9 +28,9 @@ mputl([ "#include ""mex.h""";
 ilib_mex_build("libmextest",["getFieldNumber","mexgetFieldNumber","cmex"], "mexgetFieldNumber.c",[]);
 exec("loader.sce");
 c = struct("a", 3, "b", 1, "1", 2);
-assert_checkequal(getFieldNumber(c), 1);
-c = struct("b", 3, "a", 5);
 assert_checkequal(getFieldNumber(c), 2);
+c = struct("b", 3, "a", 5);
+assert_checkequal(getFieldNumber(c), 1);
 c = struct("b", 32);
 assert_checkequal(getFieldNumber(c), -1);
 assert_checkequal(getFieldNumber("not_a_struct"), -1);
index 498d9e4..2c2cb62 100644 (file)
@@ -30,10 +30,10 @@ ilib_mex_build("libmextest",["getFieldNumber","mexgetFieldNumber","cmex"], "mexg
 exec("loader.sce");
 
 c = struct("a", 3, "b", 1, "1", 2);
-assert_checkequal(getFieldNumber(c), 1);
+assert_checkequal(getFieldNumber(c), 2);
 
 c = struct("b", 3, "a", 5);
-assert_checkequal(getFieldNumber(c), 2);
+assert_checkequal(getFieldNumber(c), 1);
 
 c = struct("b", 32);
 assert_checkequal(getFieldNumber(c), -1);