7d5cd94f892f970c1621ceb6d37a6a8aecd1c6fa
[scilab.git] / scilab / modules / functions / tests / unit_tests / tree2code.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2018 - Samuel GOUGEON
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // Unit test for tree2code()
8 //
9 // <-- CLI SHELL MODE -->
10 // <-- NO CHECK REF -->
11
12 fp = funcprot(0);
13
14 // Tests the output prototype:
15 // -------------------------
16 protos = [
17 "function test()"
18 "function test(x)"
19 "function test(x,y)"
20 "function test(x,y,varargin)"
21 "function [z] = test()"
22 "function [z] = test(x)"
23 "function [z] = test(x,y)"
24 "function [z] = test(x,y,varargin)"
25 "function [u,v] = test()"
26 "function [u,v] = test(x)"
27 "function [u,v] = test(x,y)"
28 "function [u,v] = test(x,y,varargin)"
29 "function [u,v,varargout] = test()"
30 "function [u,v,varargout] = test(x)"
31 "function [u,v,varargout] = test(x,y)"
32 "function [u,v,varargout] = test(x,y,varargin)"
33 ];
34
35 for p = protos'
36     execstr(p+", endfunction");
37     txt = tree2code(macr2tree(test));
38     assert_checkequal(txt(1), p);
39 end
40
41 funcprot(fp);
42
43 // Tests the indentation width
44 // ---------------------------
45 function test()
46  disp(2)
47 endfunction
48 txt = tree2code(macr2tree(test), %t);
49 path = "//interface/scinotes/display/body/scinotes-display";
50 tmp = evstr(getPreferencesValue(path, "indent-size", "SCIHOME/XConfiguration.xml"));
51 assert_checkequal(txt(2), blanks(tmp)+"disp(2)");