update hdf5 tests with new hdf5 sod format 61/16861/2
Antoine ELIAS [Mon, 20 Jul 2015 15:33:00 +0000 (17:33 +0200)]
Change-Id: I5c574ccabdb999717930d227f2225d26d431e639

14 files changed:
scilab/modules/hdf5/sci_gateway/cpp/sci_hdf5_save.cpp
scilab/modules/hdf5/tests/nonreg_tests/bug_6440.dia.ref
scilab/modules/hdf5/tests/unit_tests/binary_bit-for-bit.dia.ref
scilab/modules/hdf5/tests/unit_tests/binary_bit-for-bit.tst
scilab/modules/hdf5/tests/unit_tests/h5isGroup.dia.ref
scilab/modules/hdf5/tests/unit_tests/h5isGroup.tst
scilab/modules/hdf5/tests/unit_tests/h5isRef.dia.ref
scilab/modules/hdf5/tests/unit_tests/h5isRef.tst
scilab/modules/hdf5/tests/unit_tests/h5isType.dia.ref
scilab/modules/hdf5/tests/unit_tests/h5isType.tst
scilab/modules/hdf5/tests/unit_tests/loadhdf5data.dia.ref
scilab/modules/hdf5/tests/unit_tests/loadhdf5data_v1.dia.ref
scilab/modules/hdf5/tests/unit_tests/saveloadHdf5.dia.ref [new file with mode: 0644]
scilab/modules/hdf5/tests/unit_tests/saveloadHdf5.tst

index dbfcf25..0be60a2 100644 (file)
@@ -896,7 +896,7 @@ static int export_usertype(int parent, const std::string& name, types::UserType*
 
             it = out[0];
         }
-        catch (ast::ScilabError& /*se*/)
+        catch (ast::ScilabMessage& /*se*/)
         {
             //overload does not exist
             return -1;
index ed911de..2577a5a 100644 (file)
@@ -15,9 +15,9 @@
 // <-- Short Description -->
 // xcos demos did not work and returned an error "Unable to open file".
 //
-dataDirP1 = TMPDIR + '/世界您好';
-dataDirP2 = TMPDIR + '/世界您好/JOSÉDO~1/';
-dataFile = dataDirP2 + '/my_data.sod';
+dataDirP1 = TMPDIR + "/世界您好";
+dataDirP2 = TMPDIR + "/世界您好/JOSÉDO~1/";
+dataFile = dataDirP2 + "/my_data.sod";
 mkdir(dataDirP1);
 mkdir(dataDirP2);
 if ~isdir(dataDirP2) then bugmes();quit;end
index ec6de96..11b3ad8 100644 (file)
@@ -11,30 +11,11 @@ function writeData(filename, data)
 endfunction
 function checkBinary(file1, file2)
     //open 1st file
-    f1 = mopen(file1, "rb");
-    mseek(0, f1, "end");
-    size1 = mtell(f1);
-    mseek(0, f1, "set");
-    //open 2nd file
-    f2 = mopen(file2, "rb");
-    mseek(0, f2, "end");
-    size2 = mtell(f2);
-    mseek(0, f2, "set");
-    //check file sizes
-    if size1 <> size2 then
-        mclose(f1);
-        mclose(f2);
-    end
-    assert_checkequal(size1, size2);
-    //get data for files
-    data1 = mget(size1, "uc", f1);
-    data2 = mget(size2, "uc", f2);
-    mclose(f1);
-    mclose(f2);
-    assert_checkequal(data1, data2);
+    md5_1 = getmd5(file1);
+    md5_2 = getmd5(file2);
+    assert_checkequal(md5_1, md5_2);
     //mdelete(file1);
     //mdelete(file2);
-    //disp(size(data1, "*"));
 endfunction
 function writeAllData(path, radical)
     d = matrix(1:100, [10, 10]);
index 6c268eb..4d3ed13 100644 (file)
@@ -13,38 +13,13 @@ endfunction
 
 function checkBinary(file1, file2)
     //open 1st file
-    f1 = mopen(file1, "rb");
-    mseek(0, f1, "end");
-    size1 = mtell(f1);
-    mseek(0, f1, "set");
+    md5_1 = getmd5(file1);
+    md5_2 = getmd5(file2);
 
-    //open 2nd file
-    f2 = mopen(file2, "rb");
-    mseek(0, f2, "end");
-    size2 = mtell(f2);
-    mseek(0, f2, "set");
-
-    //check file sizes
-    if size1 <> size2 then
-        mclose(f1);
-        mclose(f2);
-    end
-
-    assert_checkequal(size1, size2);
-
-    //get data for files
-    data1 = mget(size1, "uc", f1);
-    data2 = mget(size2, "uc", f2);
-
-    mclose(f1);
-    mclose(f2);
-
-    assert_checkequal(data1, data2);
+    assert_checkequal(md5_1, md5_2);
 
     //mdelete(file1);
     //mdelete(file2);
-
-    //disp(size(data1, "*"));
 endfunction
 
 function writeAllData(path, radical)
index 680157c..0021b8d 100644 (file)
@@ -12,12 +12,8 @@ assert_checkfalse(h5isGroup("42"));
 assert_checkfalse(h5isGroup(42));
 w = "testing";
 x = list(1, "hello");
-y = [1 2;3 4];
-z = 1;
 save(TMPDIR + "/w.sod", "w");
 save(TMPDIR + "/x.sod", "x");
-save(TMPDIR + "/y.sod", "y");
-save(TMPDIR + "/z.sod", "z");
 a = h5open(TMPDIR + "/w.sod", "r");
 assert_checkequal(h5isGroup(a),%F);
 assert_checkequal(h5isGroup(a.root),%T);
@@ -27,6 +23,5 @@ h5close(a);
 b = h5open(TMPDIR + "/x.sod", "r");
 assert_checkequal(h5isGroup(b),%F);
 assert_checkequal(h5isGroup(b.root),%T);
-assert_checkequal(h5isGroup(b.root.x),%F);
-assert_checkequal(h5isGroup(b.root.x.type),%F);
+assert_checkequal(h5isGroup(b.root.x),%T);
 h5close(b);
index 081a9df..9387625 100644 (file)
@@ -14,12 +14,9 @@ assert_checkfalse(h5isGroup(42));
 
 w = "testing";
 x = list(1, "hello");
-y = [1 2;3 4];
-z = 1;
+
 save(TMPDIR + "/w.sod", "w");
 save(TMPDIR + "/x.sod", "x");
-save(TMPDIR + "/y.sod", "y");
-save(TMPDIR + "/z.sod", "z");
 
 a = h5open(TMPDIR + "/w.sod", "r");
 assert_checkequal(h5isGroup(a),%F);
@@ -31,8 +28,5 @@ h5close(a);
 b = h5open(TMPDIR + "/x.sod", "r");
 assert_checkequal(h5isGroup(b),%F);
 assert_checkequal(h5isGroup(b.root),%T);
-assert_checkequal(h5isGroup(b.root.x),%F);
-assert_checkequal(h5isGroup(b.root.x.type),%F);
-h5close(b);
-
-
+assert_checkequal(h5isGroup(b.root.x),%T);
+h5close(b);
\ No newline at end of file
index e9dddf2..e81110a 100644 (file)
@@ -11,7 +11,7 @@ assert_checkerror("h5isRef()",msgerr,77);
 assert_checkfalse(h5isRef("42"));
 assert_checkfalse(h5isRef(42));
 w = "testing";
-x = list(1, "hello");
+x = struct("a", 1, "b", "hello");
 y = [1 2;3 4];
 z = 1;
 save(TMPDIR + "/w.sod", "w");
@@ -23,10 +23,11 @@ assert_checkfalse(h5isRef(a));
 aw = a.root.w.data;
 assert_checkfalse(h5isRef(aw));
 h5close(a)
+save(TMPDIR + "/x.sod", "x");
 b = h5open(TMPDIR + "/x.sod", "r");
 assert_checkfalse(h5isRef(b));
-bx = b.root.x.data;
-assert_checktrue(h5isRef(bx));
+bxa = b.root.x.a.data;
+assert_checktrue(h5isRef(bxa));
 h5close(b)
 c = h5open(TMPDIR + "/y.sod", "r");
 assert_checkfalse(h5isRef(c));
index b4b32ca..d9a3f96 100644 (file)
@@ -13,7 +13,7 @@ assert_checkfalse(h5isRef("42"));
 assert_checkfalse(h5isRef(42));
 
 w = "testing";
-x = list(1, "hello");
+x = struct("a", 1, "b", "hello");
 y = [1 2;3 4];
 z = 1;
 save(TMPDIR + "/w.sod", "w");
@@ -27,10 +27,11 @@ aw = a.root.w.data;
 assert_checkfalse(h5isRef(aw));
 h5close(a)
 
+save(TMPDIR + "/x.sod", "x");
 b = h5open(TMPDIR + "/x.sod", "r");
 assert_checkfalse(h5isRef(b));
-bx = b.root.x.data;
-assert_checktrue(h5isRef(bx));
+bxa = b.root.x.a.data;
+assert_checktrue(h5isRef(bxa));
 h5close(b)
 
 c = h5open(TMPDIR + "/y.sod", "r");
index b54439f..864edfd 100644 (file)
@@ -28,7 +28,7 @@ b = h5open(TMPDIR + "/x.sod", "r");
 assert_checkfalse(h5isType(b));
 assert_checkfalse(h5isType(b.root));
 assert_checkfalse(h5isType(b.root.x));
-assert_checktrue(h5isType(b.root.x.type));
+assert_checktrue(h5isType(b.root.x("0").type));
 h5close(b)
 c = h5open(TMPDIR + "/y.sod", "r");
 assert_checkfalse(h5isType(c));
index 1bb9aa4..5e8fc18 100644 (file)
@@ -32,7 +32,7 @@ b = h5open(TMPDIR + "/x.sod", "r");
 assert_checkfalse(h5isType(b));
 assert_checkfalse(h5isType(b.root));
 assert_checkfalse(h5isType(b.root.x));
-assert_checktrue(h5isType(b.root.x.type));
+assert_checktrue(h5isType(b.root.x("0").type));
 h5close(b)
 
 c = h5open(TMPDIR + "/y.sod", "r");
index f65d864..ae99002 100644 (file)
@@ -7,39 +7,39 @@
 // <-- CLI SHELL MODE -->
 // Load previously saved data (check backward compatibility)
 ///// Empty matrix
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/emptymatrix.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/emptymatrix.sod");
 assert_checkequal(emptymatrix, []);
 ///// Double
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/matricedoublescalar.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/matricedoublescalar.sod");
 assert_checkequal(ascalar,42);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/matricedouble.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/matricedouble.sod");
 assert_checkequal(a,[2,3;4,5]);
 ///// Double complex
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/matricedoublecomplex.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/matricedoublecomplex.sod");
 assert_checkequal(b,[2+%i,3+%i*2;4+%i*%pi,5]);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/matricedoublecomplexscalar.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/matricedoublecomplexscalar.sod");
 assert_checkequal(bscalar,42+%i);
 ///// String
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/matricestring.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/matricestring.sod");
 assert_checkequal(c,["my matrix","of strings";"is","saved in Scilab data format"]);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/matricestringscalar.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/matricestringscalar.sod");
 assert_checkequal(cscalar,["my single string"]);
 // Polynomials
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/polynomials.sod");
-p_reference=poly([1 2],'s') ;
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/polynomials.sod");
+p_reference=poly([1 2],"s") ;
 assert_checkequal(p,p_reference);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/polynomialscoef.sod");
-q_reference=poly([1 42],'s','c');
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/polynomialscoef.sod");
+q_reference=poly([1 42],"s","c");
 assert_checkequal(q,q_reference);
 // Boolean matrices
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/booleanscalar.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/booleanscalar.sod");
 assert_checkequal(bm,%t);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/booleanmatrix.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/booleanmatrix.sod");
 assert_checkequal(bmm,[%t,%f; %f, %t]);
 // Sparse
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/sparsematrix.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/sparsematrix.sod");
 assert_checkequal(sp,sparse([1,2;4,5;3,10],[1,2,3]));
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/emptysparse.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/emptysparse.sod");
 assert_checkequal(emptysparse,sparse([]));
 // boolean sparse
 dense=[%F, %F, %T, %F, %F
@@ -47,27 +47,27 @@ dense=[%F, %F, %T, %F, %F
 %F, %F, %F, %F, %F
 %F, %F, %F, %F, %T];
 sp_reference=sparse(dense);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/booleansparse.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/booleansparse.sod");
 assert_checkequal(sp,sp_reference);
 // List
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/list.sod");
-assert_checkequal(ls,list(2,%i,'f',ones(3,3)));
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/list.sod");
+assert_checkequal(ls,list(2,%i,"f",ones(3,3)));
 ls(2) =  list( %t, [32,42]); // alter ls to add the list
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/listnested.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/listnested.sod");
 assert_checkequal(lsnested,ls);
 // tlist
-lst_reference  =  tlist(['random numbers';'Name';'Example'], 'Uniform',ones(1,2, 3));
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/tlist.sod");
+lst_reference  =  tlist(["random numbers";"Name";"Example"], "Uniform",ones(1,2, 3));
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/tlist.sod");
 assert_checkequal(lst,lst_reference);
 // mlist
-M_ref=mlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/mlist.sod");
+M_ref=mlist(["V","name","value"],["a","b";"c" "d"],[1 2; 3 4]);
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/mlist.sod");
 // Commented because of bug 9531
 //assert_checkequal(M_ref,M);
 // hypermatrices
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/hypermatrix.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/hypermatrix.sod");
 assert_checkequal(HM,hypermat([2 3 2 2],1:24));
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/hypermatrixcomplex.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/hypermatrixcomplex.sod");
 HMC_reference(1,1,1,1:2)=[1+%i 2*2*%i];
 assert_checkequal(HMC,HMC_reference);
 // int
@@ -76,7 +76,7 @@ int8scalar_ref = int8(1);
 int8rowvector_ref = int8([1 -4 7]);
 int8colvector_ref = int8([1;-4;7]);
 int8matrix_ref = int8([1 -4 7;-9 6 -3]);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/int8.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/int8.sod");
 assert_checkequal(emptyint8matrix, emptyint8matrix_ref);
 assert_checkequal(int8scalar, int8scalar_ref);
 assert_checkequal(int8rowvector, int8rowvector_ref);
@@ -87,7 +87,7 @@ int16scalar_ref = int16(1);
 int16rowvector_ref = int16([1 -4 7]);
 int16colvector_ref = int16([1;-4;7]);
 int16matrix_ref = int16([1 -4 7;-9 6 -3]);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/int16.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/int16.sod");
 assert_checkequal(emptyint16matrix, emptyint16matrix_ref);
 assert_checkequal(int16scalar, int16scalar_ref);
 assert_checkequal(int16rowvector, int16rowvector_ref);
@@ -98,7 +98,7 @@ int32scalar_ref = int32(1);
 int32rowvector_ref = int32([1 -4 7]);
 int32colvector_ref = int32([1;-4;7]);
 int32matrix_ref = int32([1 -4 7;-9 6 -3]);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/int32.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/int32.sod");
 assert_checkequal(emptyint32matrix, emptyint32matrix_ref);
 assert_checkequal(int32scalar, int32scalar_ref);
 assert_checkequal(int32rowvector, int32rowvector_ref);
@@ -109,7 +109,7 @@ uint8scalar_ref = uint8(1);
 uint8rowvector_ref = uint8([1 4 7]);
 uint8colvector_ref = uint8([1;4;7]);
 uint8matrix_ref = uint8([1 4 7;9 6 3]);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/uint8.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/uint8.sod");
 assert_checkequal(emptyuint8matrix, emptyuint8matrix_ref);
 assert_checkequal(uint8scalar, uint8scalar_ref);
 assert_checkequal(uint8rowvector, uint8rowvector_ref);
@@ -120,7 +120,7 @@ uint16scalar_ref = uint16(1);
 uint16rowvector_ref = uint16([1 4 7]);
 uint16colvector_ref = uint16([1;4;7]);
 uint16matrix_ref = uint16([1 4 7;9 6 3]);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/uint16.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/uint16.sod");
 assert_checkequal(emptyuint16matrix, emptyuint16matrix_ref);
 assert_checkequal(uint16scalar, uint16scalar_ref);
 assert_checkequal(uint16rowvector, uint16rowvector_ref);
@@ -131,19 +131,19 @@ uint32scalar_ref = uint32(1);
 uint32rowvector_ref = uint32([1 4 7]);
 uint32colvector_ref = uint32([1;4;7]);
 uint32matrix_ref = uint32([1 4 7;9 6 3]);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/uint32.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/uint32.sod");
 assert_checkequal(emptyuint32matrix, emptyuint32matrix_ref);
 assert_checkequal(uint32scalar, uint32scalar_ref);
 assert_checkequal(uint32rowvector, uint32rowvector_ref);
 assert_checkequal(uint32colvector, uint32colvector_ref);
 assert_checkequal(uint32matrix, uint32matrix_ref);
 // undefined
-undefinedelement_ref=list(2,%i,'f',ones(3,3));
+undefinedelement_ref=list(2,%i,"f",ones(3,3));
 undefinedelement_ref(6)="toto";
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/undefinedelement.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/undefinedelement.sod");
 assert_checkequal(undefinedelement, undefinedelement_ref);
 // void
 voidelement_ref=list(1,,3);
-import_from_hdf5(SCI+"/modules/hdf5/tests/sample_scilab_data/voidelement.sod");
+load(SCI+"/modules/hdf5/tests/sample_scilab_data/voidelement.sod");
 // Commented because of bug 9529
 //assert_checkequal(voidelement, voidelement_ref);
index b99638f..497fc52 100644 (file)
@@ -23,10 +23,10 @@ load(SCI+"/modules/hdf5/tests/sample_scilab_data/matricestringscalar_v1.sod");
 assert_checkequal(cscalar,["my single string"]);
 // Polynomials
 load(SCI+"/modules/hdf5/tests/sample_scilab_data/polynomials_v1.sod");
-p_reference=poly([1 2],'s') ;
+p_reference=poly([1 2],"s") ;
 assert_checkequal(p,p_reference);
 load(SCI+"/modules/hdf5/tests/sample_scilab_data/polynomialscoef_v1.sod");
-q_reference=poly([1 42],'s','c');
+q_reference=poly([1 42],"s","c");
 assert_checkequal(q,q_reference);
 // Boolean matrices
 load(SCI+"/modules/hdf5/tests/sample_scilab_data/booleanscalar_v1.sod");
@@ -48,16 +48,16 @@ load(SCI+"/modules/hdf5/tests/sample_scilab_data/booleansparse_v1.sod");
 assert_checkequal(sp,sp_reference);
 // List
 load(SCI+"/modules/hdf5/tests/sample_scilab_data/list_v1.sod");
-assert_checkequal(ls,list(2,%i,'f',ones(3,3)));
+assert_checkequal(ls,list(2,%i,"f",ones(3,3)));
 ls(2) =  list( %t, [32,42]); // alter ls to add the list
 load(SCI+"/modules/hdf5/tests/sample_scilab_data/listnested_v1.sod");
 assert_checkequal(lsnested,ls);
 // tlist
-lst_reference  =  tlist(['random numbers';'Name';'Example'], 'Uniform',ones(1,2, 3));
+lst_reference  =  tlist(["random numbers";"Name";"Example"], "Uniform",ones(1,2, 3));
 load(SCI+"/modules/hdf5/tests/sample_scilab_data/tlist_v1.sod");
 assert_checkequal(lst,lst_reference);
 // mlist
-M_ref=mlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
+M_ref=mlist(["V","name","value"],["a","b";"c" "d"],[1 2; 3 4]);
 load(SCI+"/modules/hdf5/tests/sample_scilab_data/mlist_v1.sod");
 // Commented because of bug 9531
 //assert_checkequal(M_ref,M);
@@ -135,7 +135,7 @@ assert_checkequal(uint32rowvector, uint32rowvector_ref);
 assert_checkequal(uint32colvector, uint32colvector_ref);
 assert_checkequal(uint32matrix, uint32matrix_ref);
 // undefined
-undefinedelement_ref=list(2,%i,'f',ones(3,3));
+undefinedelement_ref=list(2,%i,"f",ones(3,3));
 undefinedelement_ref(6)="toto";
 load(SCI+"/modules/hdf5/tests/sample_scilab_data/undefinedelement_v1.sod");
 assert_checkequal(undefinedelement, undefinedelement_ref);
diff --git a/scilab/modules/hdf5/tests/unit_tests/saveloadHdf5.dia.ref b/scilab/modules/hdf5/tests/unit_tests/saveloadHdf5.dia.ref
new file mode 100644 (file)
index 0000000..9d2c828
--- /dev/null
@@ -0,0 +1,267 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Vladislav TRUBKIN
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// check function
+function checkValue(value)
+    clear "varName";
+    varName = value;
+    fileName = TMPDIR + "/saveloadHdf5.sod";
+    // export to hdf5
+    oldVarName = varName;
+    save(fileName, "varName");
+    // check that the "varName" has not been modified by export
+    assert_checkequal(oldVarName, varName);
+    // reset ref value
+    clear "varName" "oldVarName";
+    assert_checkequal(exists("varName"), 0);
+    // import from hdf5
+    load(fileName);
+    assert_checkequal(varName, value);
+endfunction
+//// Empty matrix
+checkValue([]);
+//// Double
+// scalar
+checkValue(77);
+// vector
+checkValue([1, 2, 3, 4, 5]);
+checkValue([1; 2; 3; 4; 5]);
+// matrix
+checkValue([1, 2, 3; 4, 5, 6]);
+//// Double complex
+// scalar
+checkValue(1 + %i*2);
+// vector
+checkValue([1 + %i, 2 + %i, 3 + %i*2, 4 + %i*3, 5 + %i*4]);
+checkValue([1 + %i; 2 + %i; 3 + %i*2; 4 + %i*3; 5 + %i*4]);
+// matrix
+checkValue([1 + %i, 2 + %i, 3 + %i*2; 4 + %i*3, 5 + %i*4, 6 + %i]);
+//// String
+// single
+checkValue("Single String");
+// vector
+checkValue(["a", "b", "c"]);
+checkValue(["a"; "b"; "c"]);
+// matrix
+checkValue(["a", "b", "c"; "d", "e", "f"]);
+//// Polynomials
+s = poly(0, "s");
+// single
+checkValue(poly([1, 2], "s", "c"));
+// vector
+checkValue([s, s^2, 1 + 3*s^2, 1 + 2*s + 4*s^3]);
+checkValue([s; s^2; 1 + 3*s^2; 1 + 2*s + 4*s^3]);
+// matrix
+checkValue([s, s^2; 1 + 3*s^2, 1 + 2*s + 4*s^3]);
+//// Boolean
+// single
+checkValue(%t);
+// vector
+checkValue([%t, %t, %f, %t, %t]);
+checkValue([%t; %t; %f; %t; %t]);
+// matrix
+checkValue([%t, %t; %f, %f]);
+//// Integer
+clear "createIntValues";
+function intValues = createIntValues(value, flag)
+    select flag
+    case 8 // int8
+        intValues = int8(value);
+        break;
+    case -8 // uint8
+        intValues = uint8(value);
+        break;
+    case 16
+        intValues = int16(value);
+        break;
+    case -16
+        intValues = uint16(value);
+        break;
+    case 32
+        intValues = int32(value);
+        break;
+    case -32
+        intValues = uint32(value);
+        break;
+    end
+endfunction
+clear "checkIntValue";
+function checkIntValue(refValue, flag)
+    for i = 1:6
+        checkValue(createIntValues(refValue, flag(i)));
+    end
+endfunction
+// all flags for createIntValues
+flag = [8, -8, 16, -16, 32, -32];
+// scalar
+checkIntValue(5, flag);
+// vector
+checkIntValue([1, 2, 3, 4, 5], flag);
+checkIntValue([1, 2, 3, 4, 5]', flag);
+// matrix
+checkIntValue([1, 2, 3; 4, 5, 6], flag);
+//// Sparse
+checkValue(sparse([1, 2; 4, 5; 3, 10], [1, 2, 3]));
+checkValue(sparse([1, 2; 4, 5; 3, 10], [1 + %i, 2 + 2*%i, 3 + 3*%i]));
+//// Boolean sparse
+valueRef = [%F, %F, %T, %F, %F
+%T, %F, %F, %F, %F
+%F, %F, %F, %F, %F
+%F, %F, %F, %F, %T];
+checkValue(sparse(valueRef));
+checkValue(sparse([1, 1; 2, 2; 3, 3; 4, 4], [%t, %t, %t, %t]));
+//// List
+listNew = list();
+// empty list
+checkValue(listNew);
+// double in list
+listNew(1) = 111;
+listNew(2) = [1, 2, 3];
+listNew(3) = [1, 2, 3]';
+// string in list
+listNew(4) = ["a", "b"; "c", "d"];
+// double complex in list
+listNew(5) = [complex(1, 2), complex(1, 3); complex(1, 4), complex(1, 5)];
+// boolean in list
+listNew(6) = [%t, %t, %t; %f, %f, %f];
+// integer in list
+valueRef = ones(4, 3);
+for i = 7:12
+    listNew(i) = createIntValues(valueRef, flag(i - 6));
+end
+// polynom in list
+listNew(13) = [s, s^2; 1 + 3*s^2, 1 + 2*s + 4*s^3];
+// empty matrix in list
+listNew(14) = [];
+checkValue(listNew);
+// list in list
+listNew = list();
+listNew(1) = 111;
+listNew(2) = list([1, 2, 3]);
+valueRef = ones(4, 3);
+for i = 3:8
+    listNew(i) = list(createIntValues(valueRef, flag(i - 2)));
+end
+listNew(9) = list(string([1, 2, 3; 4, 5, 6]));
+listNew(10) = list([%f, %f; %t, %t]);
+checkValue(listNew);
+// nested list
+listNew2 = list(listNew, listNew, list("Scilab", 7, %t));
+checkValue(listNew2);
+// tlist and mlist in the list
+tlstRef = tlist(["random numbers"; "Name"; "Example"; "Example_2"], "Uniform", [%f, %t; %f, %t], [1, 2; 3, 4]);
+mlstRef = mlist(["V", "name", "value"], ["a", "b"; "c", "d"], [1, 2; 3, 4]);
+listNew = list("only one mlist", mlstRef);
+checkValue(listNew);
+listNew = list("only one tlist", tlstRef);
+checkValue(listNew);
+listNew = list(["mlist", "and", "tlist"], mlstRef, tlstRef);
+checkValue(listNew);
+// sparse in the list
+listNew = list(sparse([1, 2; 4, 5; 3, 10], [1, 2, 3]), ...
+sparse([1, 1; 2, 2; 3, 3; 4, 4], [%t, %t, %t, %t]), ...
+sparse([1, 2; 4, 5; 3, 10], [1 + %i, 2 + 2*%i, 3 + 3*%i]));
+//// Tlist
+valueRef = ones(2, 2);
+lstRef = tlist(["TLIST";
+"String";
+"Double";
+"DoubleCplx";
+"Int";
+"Bool"], ["A", "B"; "C", "D"], valueRef, ...
+complex(valueRef, 2), createIntValues(valueRef, 16), ...
+[%f, %t; %f, %t]);
+checkValue(lstRef);
+// hypermatrix in tlist
+lstRef = tlist(["hmInTlist";
+"Name";
+"Example_1"
+"Example_2"], "List", ones(1, 2, 3), hypermat([2 2 1 2], (1:8) == 0));
+checkValue(lstRef);
+// tlist in tlist
+lstRef = tlist(["tlistInTlist";
+"Name";
+"Tlist";
+"Poly";
+"List"], "List", lstRef, poly([1, 2], "s", "c"), list(1, %t));
+checkValue(lstRef);
+//// Mlist
+lstRef = mlist(["MLIST", "Name", "Value"], ["a", "b"; "c", "d"], [1, 2; 3, 4]);
+checkValue(lstRef);
+lstRef = mlist(["MLIST";
+"String";
+"Double";
+"DoubleCplx";
+"Int";
+"Bool"], ["A", "B"; "C", "D"], valueRef, ...
+complex(valueRef, 2), createIntValues(valueRef, 8), ...
+[%f, %t; %f, %t]);
+checkValue(lstRef);
+// hypermatrix in mlist
+lstRef = mlist(["hmInMlist";
+"Name";
+"Example_1"
+"Example_2"], "List", ones(1, 2, 3), hypermat([2 2 1 2], (1:8) == 0));
+checkValue(lstRef);
+//// Hypermatrix
+// double
+checkValue(ones(1, 2, 3, 4));
+checkValue(complex(ones(1, 2, 3, 4), 2));
+checkValue(rand(3, 3));
+// integer
+for i = flag
+    checkValue(createIntValues(ones(1, 2, 3, 4), i));
+end
+// boolean
+checkValue(hypermat([2 2 1 2],(1:8) == 0));
+//// Undefined
+valueRef = list(1, "two", "three");
+valueRef(5) = "five";
+valueRef(7) = 7;
+checkValue(valueRef);
+//// Void
+l = list(1, , 3);
+// l == l return [%t %f %t],
+// we can't use assertcheck_equal(computed, expected)
+fileName = TMPDIR + "/saveloadHdf5.sod";
+// export to hdf5
+old_l = l;
+save(fileName, "l");
+// check that the "l" has not been modified by export
+assert_checkequal(old_l == l, [%t %f %t]);
+// reset ref value
+clear l old_l
+assert_checktrue(exists("l")==0);
+// import from hdf5
+load(fileName);
+assert_checkequal(l == list(1, , 3), [%t %f %t]);
+// Struct
+data.data.data = 0;
+data.data.string = "Scilab";
+data.list = list(1,["S" "E"]);
+checkValue(data);
+data2.data.data = 42;
+data2.data.string = "Test";
+data2.list = list(1,["a" "b"]);
+checkValue(data2);
+struct_ = [data, data, data2; data2, data2, data];
+checkValue(struct_);
+emptyStruct = struct();
+checkValue(emptyStruct);
+// Cell
+Cell_ = cell(2,2,2);
+Cell_{1} = "scilab";
+Cell_{2} = 42;
+Cell_{3} = list(1,["a" "b"]);
+Cell_{4} = int8(2);
+Cell_{5} = 5;
+Cell_{6} = 6;
+Cell_{7} = poly(1:3,"s");
+Cell_{8} = "Yasp";
+checkValue(Cell_);
+emptyCell = cell();
+checkValue(emptyCell);
index 358cb92..de66c13 100644 (file)
@@ -7,21 +7,20 @@
 //
 
 // check function
-clear "checkValue";
 function checkValue(value)
     clear "varName";
     varName = value;
     fileName = TMPDIR + "/saveloadHdf5.sod";
     // export to hdf5
     oldVarName = varName;
-    assert_checkequal(save(fileName, "varName"), %t);
+    save(fileName, "varName");
     // check that the "varName" has not been modified by export
     assert_checkequal(oldVarName, varName);
     // reset ref value
     clear "varName" "oldVarName";
     assert_checkequal(exists("varName"), 0);
     // import from hdf5
-    assert_checkequal(load(fileName), %t);
+    load(fileName);
     assert_checkequal(varName, value);
 endfunction
 
@@ -249,14 +248,14 @@ l = list(1, , 3);
 fileName = TMPDIR + "/saveloadHdf5.sod";
 // export to hdf5
 old_l = l;
-assert_checktrue(save(fileName, "l"));
+save(fileName, "l");
 // check that the "l" has not been modified by export
 assert_checkequal(old_l == l, [%t %f %t]);
 // reset ref value
 clear l old_l
 assert_checktrue(exists("l")==0);
 // import from hdf5
-assert_checktrue(load(fileName));
+load(fileName);
 assert_checkequal(l == list(1, , 3), [%t %f %t]);
 
 // Struct