* Bugs 15260 16124 fixed: sci2exp() for non-scalar structures or {}
[scilab.git] / scilab / modules / string / tests / nonreg_tests / bug_15260.tst
index 8501538..d1fb9db 100644 (file)
@@ -1,6 +1,6 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2017 - Samuel GOUGEON
+// Copyright (C) 2017, 2019 - Samuel GOUGEON
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
@@ -52,30 +52,16 @@ z = %z;
 rc = evstr(tc);
 assert_checkequal(rc,c);
 
-// Scalar structure:
+// Structures:
+// ----------
+// Scalar:
 s = struct("r",1.234-5.6*%i,"b",%f,"t","Hello","i",int8([123 -76]),"l",list(4,,%i));
 ss = sci2exp(s);
 ssref = "struct(""r"",1.234-%i*5.6, ""b"",%f, ""t"",""Hello"", ""i"",int8([123,-76]), ""l"",list(4,,%i))";
 assert_checkequal(ss, ssref);
 assert_checkequal(evstr(ss), s);
-
-// Array of structures
-// =======================================================================
-// There is no longer any way to generate nand initialize from scratch any
-//  non-scalar array of structures.
-// =======================================================================
-// This part shall be rewritten when struct(dims,field1,listOfValues1, ..)
-// will have been implemented (= bug http://bugzilla.scilab.org/15264 fixed)
-clear s
-s.r = 1.2345;
-s(1,2).r = %i;
-s(2,2).r = 1-%i;
-s(2,1).r = 2.345;
-s.t = "A";
-s(1,2).t = "C";
-s(2,2).t = "D";
-s(2,1).t = "B";
-tmpref = mlist(["st","dims","r","t"],int32([2,2]),list(1.2345,2.345,%i,1-%i),list("A","B","C","D"));
-ssref = "mlist([""st"",""dims"",""r"",""t""],int32([2,2]),list(1.2345,2.345,%i,1-%i),list(""A"",""B"",""C"",""D""))";
+// Array:
+s = struct("à", {3.1415,%t,"abc";%z,1-1/%s,%i}, "é",{2.7183,3,"test"; %z^2,list(,7),-%i});
+ssref = "matrix(struct(""à"",{3.1415,%z,%t,rlist(-1+%s,%s),""abc"",%i}, ""é"",{2.7183,%z^2,3,list(,7),""test"",-%i}),[2 3])";
 assert_checkequal(sci2exp(s), ssref);
-assert_checkequal(evstr(sci2exp(s)), tmpref);
+assert_checkequal(evstr(ssref), s);