Fix localization issues
[scilab.git] / scilab / modules / m2sci / tests / unit_tests / matfile2sci.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2014      - Scilab-Enterprises - Pierre-Aime Agnel <pierre-aime.agnel@scilab-enterprises.com>
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // <-- CLI SHELL MODE -->
9
10 // <-- Unit test for macro matfile2sci -->
11
12 //==============================================================================
13 //Testing the error messagge on an non empty file with empty content
14 matfile_content_empty = pathconvert("SCI/modules/m2sci/tests/unit_tests/m2sci_c_empty.mat",%F,%T);
15 w_file_content_empty  = pathconvert("TMPDIR/w_content_empty.sod",%F,%T);
16 a_file_content_empty  = pathconvert("TMPDIR/a_content_empty.sod",%F,%T);
17 errmsg_c_empty = msprintf(_("%s: Could not read variables in %s"), "matfile2sci", matfile_content_empty);
18
19 //m2sci_c_empty.mat is not a completely blank file but has no variables
20 assert_checkerror("matfile2sci(matfile_content_empty, w_file_content_empty, %t)", errmsg_c_empty);
21 assert_checkerror("matfile2sci(matfile_content_empty, a_file_content_empty, %f)", errmsg_c_empty);
22
23 //Check files were not created
24 assert_checkfalse(isfile(w_file_content_empty));
25 assert_checkfalse(isfile(a_file_content_empty));
26
27 //==============================================================================
28 //Testing the error message on an empty file
29 matfile_empty         = pathconvert("SCI/modules/m2sci/tests/unit_tests/m2sci_empty.mat",%F,%T);
30 w_file_empty          = pathconvert("TMPDIR/w_empty.sod",%F,%T);
31 a_file_empty          = pathconvert("TMPDIR/a_empty.sod",%F,%T);
32
33 errmsg_empty = msprintf(_("%s: Could not read variables in %s"), "matfile2sci", matfile_empty);
34
35 assert_checkerror("matfile2sci(matfile_empty, w_file_empty, %t)", errmsg_empty);
36 assert_checkerror("matfile2sci(matfile_empty, a_file_empty, %f)", errmsg_empty);
37
38 //Check files were not created
39 assert_checkfalse(isfile(w_file_empty));
40 assert_checkfalse(isfile(a_file_empty));
41
42 //==============================================================================
43 //Testing the error message on a call with third argument different than %t or %f
44 matfile_notow         = pathconvert("SCI/modules/m2sci/tests/unit_tests/m2sci_empty.mat",%F,%T);
45 w_file_notow          = pathconvert("TMPDIR/w_empty.sod",%F,%T);
46
47 errmsg_notow = msprintf(_("%s: Wrong type for argument #%d: Boolean matrix expected.\n"), "matfile2sci", 3);
48 errmsg_notow2 = msprintf(_("%s: Wrong size for input argument #%d: %d-by-%d matrix expected.\n"), "matfile2sci", 3, 1, 1);
49
50 assert_checkerror("matfile2sci(matfile_empty, w_file_empty, ""a wrong value"")", errmsg_notow);
51 assert_checkerror("matfile2sci(matfile_empty, w_file_empty, [%t, %f, %t])", errmsg_notow2);
52
53 //==============================================================================
54 //Testing non empty files
55 matfile_not_empty1    = pathconvert("SCI/modules/m2sci/tests/unit_tests/m2sci_n_empty1.mat",%F,%T);
56 matfile_not_empty2    = pathconvert("SCI/modules/m2sci/tests/unit_tests/m2sci_n_empty2.mat",%F,%T);
57 w_file_not_empty      = pathconvert("TMPDIR/w_not_empty.sod",%F,%T);
58 def_file_not_empty    = pathconvert("TMPDIR/def_not_empty.sod",%F,%T);
59 a_file_not_empty      = pathconvert("TMPDIR/a_not_empty.sod",%F,%T);
60
61 //Matfile m2sci_n_empty1.mat contains:
62 // tst_append_double1  = 1;
63 // tst_append_mdouble1 = [0,1.1,2,3.3];
64 // tst_append_str1     = "a tested string";
65
66 //Matfile m2sci_n_empty2.mat contains:
67 // tst_append_double2  = 2;
68 // tst_append_mdouble2 = [11,12.1,12,13.3];
69 // tst_append_str2     = "a tested string2";
70
71 var_ne1 = ["tst_append_double1","tst_append_mdouble1","tst_append_str1"];
72 var_ne2 = ["tst_append_double2","tst_append_mdouble2","tst_append_str2"];
73
74
75 //==============================================================================
76 //Testing append Default behaviour
77 //def_file_not_empty : appended values of matfile_not_empty1 and 2
78 matfile2sci(matfile_not_empty1, def_file_not_empty);
79 matfile2sci(matfile_not_empty2, def_file_not_empty);
80
81 //File must be written
82 assert_checktrue(isfile(def_file_not_empty));
83
84 load(def_file_not_empty);
85 //if not overwritten all values from both files should exist
86 for v = var_ne1
87     assert_checktrue(exists(v)==1);
88 end
89
90 for v = var_ne2
91     assert_checktrue(exists(v)==1);
92 end
93
94 //clearing variables for future tests
95 for v = [var_ne1, var_ne2]
96     clear(v);
97 end
98
99 //==============================================================================
100 //File not empty with append flag = default behaviour
101 matfile2sci(matfile_not_empty1, a_file_not_empty, %f);
102 matfile2sci(matfile_not_empty2, a_file_not_empty, %f);
103
104 //File must be written
105 assert_checktrue(isfile(a_file_not_empty));
106
107 load(a_file_not_empty);
108 //if not overwritten all values from both files should exist
109 for v = var_ne1
110     assert_checktrue(exists(v)==1);
111 end
112
113 for v = var_ne2
114     assert_checktrue(exists(v)==1);
115 end
116
117 //clearing variables for future tests
118 for v = [var_ne1, var_ne2]
119     clear(v);
120 end
121
122 //==============================================================================
123 //Testing the writing flag
124 matfile2sci(matfile_not_empty1, w_file_not_empty, %t);
125
126 //File must be written
127 assert_checktrue(isfile(w_file_not_empty));
128
129 //Checks variables in the file written
130 load(w_file_not_empty);
131 for v = var_ne1
132     assert_checktrue(exists(v)==1);
133     clear(v) //clearing to have an empty variable for next test
134 end
135
136 matfile2sci(matfile_not_empty2, w_file_not_empty, %t);
137
138 //File must be written
139 assert_checktrue(isfile(w_file_not_empty));
140
141 //File w_file_not_empty must be overwritten
142 load(w_file_not_empty);
143 for v = var_ne1
144     assert_checkfalse(exists(v)==1); //variables in matfile_not_empty1 must not be in the file overwritten
145 end
146
147 for v = var_ne2
148     assert_checktrue(exists(v)==1);
149 end
150
151 //clearing variables for future tests
152 for v = [var_ne1, var_ne2]
153     clear(v); // clear is silent on unexisting variables
154 end
155 //==============================================================================