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
11function foo_good(a,b)
12    x = checkNamedArguments();
13    assert_checktrue(isempty(x));
14endfunction
15
16foo_good(1);
17foo_good(1, 2);
18foo_good(a = 1, b = 2);
19foo_good(b = 2, a = 2);
20
21function foo_bad(a,b)
22    x = checkNamedArguments();
23    assert_checkfalse(isempty(x));
24endfunction
25
26foo_bad(a = 1, c = 2);
27foo_bad(c = 2, b = 2);
28
29
30function foo_varargin_good(a, b, varargin)
31    x = checkNamedArguments();
32   assert_checktrue(isempty(x));
33endfunction
34
35foo_varargin_good(1);
36foo_varargin_good(1, 2);
37foo_varargin_good(a = 1, b = 2);
38foo_varargin_good(b = 2, a = 2);
39foo_varargin_good(b = 2, a = 2, 3, 4);
40
41function foo_varargin_bad(a, b, varargin)
42    x = checkNamedArguments();
43    assert_checkfalse(isempty(x));
44endfunction
45
46foo_varargin_bad(c = 2);
47foo_varargin_bad(a = 1, c = 2);
48foo_varargin_bad(c = 1, b = 2);
49foo_varargin_bad(b = 2, c = 3, a = 3, 4);
50foo_varargin_bad(c = 3, a = 1, b = 2, 4);
51