f5d30b172813009b2b3fb06adda8a80d2af97b88
[scilab.git] / scilab / modules / hdf5 / tests / unit_tests / binary_bit-for-bit.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2015 - Scilab Enterprises - Antoine ELIAS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8
9 clear;
10 function writeData(filename, data)
11     save_new(filename, data);
12 endfunction
13
14 function checkBinary(file1, file2)
15     //open 1st file
16     f1 = mopen(file1, "rb");
17     mseek(0, f1, "end");
18     size1 = mtell(f1);
19     mseek(0, f1, "set");
20
21     //open 2nd file
22     f2 = mopen(file2, "rb");
23     mseek(0, f2, "end");
24     size2 = mtell(f2);
25     mseek(0, f2, "set");
26
27     //check file sizes
28     if size1 <> size2 then
29         mclose(f1);
30         mclose(f2);
31     end
32
33     assert_checkequal(size1, size2);
34
35     //get data for files
36     data1 = mget(size1, "uc", f1);
37     data2 = mget(size2, "uc", f2);
38
39     mclose(f1);
40     mclose(f2);
41
42     assert_checkequal(data1, data2);
43
44     //mdelete(file1);
45     //mdelete(file2);
46
47     disp(size(data1, "*"));
48 endfunction
49
50 function writeAllData(path, radical)
51     d = matrix(1:100, [10, 10]);
52     data(:,:,1) = d - d * %i;
53     data(:,:,2) = -d;
54     data(:,:,3) = d * 2 + 4*d*%i;
55     data(:,:,4) = -d * 2;
56     data(:,:,5) = d - d * %i;
57     data(:,:,6) = -d
58     data(:,:,7) = d * 2 + 4*d*%i;
59     data(:,:,8) = -d * 2;
60     data(:,:,9) = d - d * %i;
61     data(:,:,10) = -d;
62
63     //write double
64     d = data;
65     writeData(path + "double" + radical + ".sod", "d");
66     //write string
67     s = string(data);
68     writeData(path + "string" + radical + ".sod", "s");
69     //write boolean
70     b = real(data) > 0;
71     writeData(path + "boolean" + radical + ".sod", "b");
72     //write ints
73     i8 = int8(data);
74     writeData(path + "int8" + radical + ".sod", "i8");
75     i16 = int16(data);
76     writeData(path + "int16" + radical + ".sod", "i16");
77     i32 = int32(data);
78     writeData(path + "int32" + radical + ".sod", "i32");
79     i64 = int64(data);
80     writeData(path + "int64" + radical + ".sod", "i64");
81     ui8 = uint8(data);
82     writeData(path + "uint8" + radical + ".sod", "ui8");
83     ui16 = uint16(data);
84     writeData(path + "uint16" + radical + ".sod", "ui16");
85     ui32 = uint32(data);
86     writeData(path + "uint32" + radical + ".sod", "ui32");
87     ui64 = uint64(data);
88     writeData(path + "uint64" + radical + ".sod", "ui64");
89     //write polynom
90     p = data * %s;
91     writeData(path + "poly" + radical + ".sod", "p");
92     //write list
93     l = list(d,s,b,i8,i16,i32,i64,ui8,ui16,ui32,ui64,p);
94     writeData(path + "list" + radical + ".sod", "l");
95 endfunction
96
97 function checkAllData(path, radical1, radical2)
98     //check double
99     checkBinary(path + "double" + radical1 + ".sod", path + "double" + radical2 + ".sod");
100     //check string
101     checkBinary(path + "string" + radical1 + ".sod", path + "string" + radical2 + ".sod");
102     //check boolean
103     checkBinary(path + "boolean" + radical1 + ".sod", path + "boolean" + radical2 + ".sod");
104     //check ints
105     checkBinary(path + "int8" + radical1 + ".sod", path + "int8" + radical2 + ".sod");
106     checkBinary(path + "int16" + radical1 + ".sod", path + "int16" + radical2 + ".sod");
107     checkBinary(path + "int32" + radical1 + ".sod", path + "int32" + radical2 + ".sod");
108     checkBinary(path + "int64" + radical1 + ".sod", path + "int64" + radical2 + ".sod");
109     checkBinary(path + "uint8" + radical1 + ".sod", path + "uint8" + radical2 + ".sod");
110     checkBinary(path + "uint16" + radical1 + ".sod", path + "uint16" + radical2 + ".sod");
111     checkBinary(path + "uint32" + radical1 + ".sod", path + "uint32" + radical2 + ".sod");
112     checkBinary(path + "uint64" + radical1 + ".sod", path + "uint64" + radical2 + ".sod");
113     //check poly
114     checkBinary(path + "poly" + radical1 + ".sod", path + "poly" + radical2 + ".sod");
115     //check list
116     checkBinary(path + "list" + radical1 + ".sod", path + "list" + radical2 + ".sod");
117 endfunction
118
119 path = TMPDIR + "/";
120 radical1 = "1";
121 radical2 = "2";
122
123 writeAllData(path, radical1);
124 sleep(2000);
125 writeAllData(path, radical2);
126
127 checkAllData(path, radical1, radical2);
128