add checkNamedArguments function to get unexpected named arguments.
[scilab.git] / scilab / modules / core / tests / unit_tests / checkNamedArguments.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2017 - ESI - Antoine ELIAS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // <-- CLI SHELL MODE -->
9 // <-- NO CHECK REF -->
10
11 function foo_good(a,b)
12     x = checkNamedArguments();
13     assert_checktrue(isempty(x));
14 endfunction
15
16 foo_good(1);
17 foo_good(1, 2);
18 foo_good(a = 1, b = 2);
19 foo_good(b = 2, a = 2);
20
21 function foo_bad(a,b)
22     x = checkNamedArguments();
23     assert_checkfalse(isempty(x));
24 endfunction
25
26 foo_bad(a = 1, c = 2);
27 foo_bad(c = 2, b = 2);
28
29
30 function foo_varargin_good(a, b, varargin)
31     x = checkNamedArguments();
32    assert_checktrue(isempty(x));
33 endfunction
34
35 foo_varargin_good(1);
36 foo_varargin_good(1, 2);
37 foo_varargin_good(a = 1, b = 2);
38 foo_varargin_good(b = 2, a = 2);
39 foo_varargin_good(b = 2, a = 2, 3, 4);
40
41 function foo_varargin_bad(a, b, varargin)
42     x = checkNamedArguments();
43     assert_checkfalse(isempty(x));
44 endfunction
45
46 foo_varargin_bad(c = 2);
47 foo_varargin_bad(a = 1, c = 2);
48 foo_varargin_bad(c = 1, b = 2);
49 foo_varargin_bad(b = 2, c = 3, a = 3, 4);
50 foo_varargin_bad(c = 3, a = 1, b = 2, 4);