savematfile allows double of any dimension 60/16360/5
Sylvain GENIN [Mon, 13 Apr 2015 12:23:51 +0000 (14:23 +0200)]
test_run("compatibility_functions","bug_577",["no_check_error_output" ]);

link : https://codereview.scilab.org/#/c/16348/

Change-Id: I100be552268b0f88b8a314c6fe52feb6b6a16f11

scilab/modules/compatibility_functions/tests/nonreg_tests/bug_577.dia.ref
scilab/modules/compatibility_functions/tests/nonreg_tests/bug_577.tst

index fdfa2c2..3c0e865 100644 (file)
 //
 //    I can reproduce the bug with integers data type not with imaginary
 // 2009-01-09 mtlb_save is removed => savematfile
+// 2015-04-13 savematfile allows double of any dimension
 my_mat_file = TMPDIR+"/bug_577.mat";
-x=rand(5,5,100)+%i;
-warning('off');
-ierr = execstr("savematfile(my_mat_file,""x"")","errcatch");
-warning('on');
-if ierr == 0 then bugmes();quit;end
-if lasterror()<>msprintf(gettext("%s: Mlists of type %s can not be written to Matlab binary files.\n"), "GetMlistVariable", "hm") then bugmes();quit;end
+x=rand(5,5,100)+%i*rand(5,5,100);
+savematfile(my_mat_file,"x");
+WARNING: Option -v7 added.
+ref = x;
+clear x;
+loadmatfile(my_mat_file);
+assert_checkequal(x,ref);
+assert_checkequal: Incompatible input arguments #1 and #2: Same sizes expected.
+at line    80 of function assert_checkequal called by :
+assert_checkequal(x, ref)
+at line    44 of exec file called by :
index 54c8748..b9ba577 100644 (file)
 //    I can reproduce the bug with integers data type not with imaginary
 
 // 2009-01-09 mtlb_save is removed => savematfile
+// 2015-04-13 savematfile allows double of any dimension
 
 my_mat_file = TMPDIR+"/bug_577.mat";
 
-x=rand(5,5,100)+%i;
-warning('off');
-ierr = execstr("savematfile(my_mat_file,""x"")","errcatch");
-warning('on');
+x=rand(5,5,100)+%i*rand(5,5,100);
+savematfile(my_mat_file,"x");
 
-if ierr == 0 then pause,end
-if lasterror()<>msprintf(gettext("%s: Mlists of type %s can not be written to Matlab binary files.\n"), "GetMlistVariable", "hm") then pause,end
+ref = x;
+clear x;
+
+loadmatfile(my_mat_file);
+assert_checkequal(x,ref);
\ No newline at end of file