summaryrefslogtreecommitdiff
path: root/modules/functions/tests/unit_tests/deff.dia.ref
blob: b760f5d5dd8e81cc74b72a4ce5f965adeb93f29a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// =============================================================================
// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
// Copyright (C) 2009 - DIGITEO - Allan CORNET
//
//  This file is distributed under the same license as the Scilab package.
// =============================================================================
// <-- CLI SHELL MODE -->
deff("[x] = myplus(y,z)","x=y+z");
assert_checktrue(isdef("myplus"));
assert_checkequal(myplus(3,2), 5);
clear myplus;
assert_checkfalse(isdef("myplus"));
deff("[x] = mymacro(y,z)",["a=3*y+1"; "x=a*z+y"]);
assert_checktrue(isdef("mymacro"));
assert_checkequal(mymacro(5,2), 37);
clear mymacro;
assert_checkfalse(isdef("mymacro"));
deff("[a,b,c] = mymacro(varargin)",["a = varargin(1); b = varargin(2) * a; c = varargin(3) * b"]);
assert_checktrue(isdef("mymacro"));
[a,b,c] = mymacro(3,4,5);
assert_checkequal(a, 3);
assert_checkequal(b, 12);
assert_checkequal(c, 60);
clear mymacro;
assert_checkfalse(isdef("mymacro"));
deff("[varargout] = mymacro(varargin)",["for i = 1 : size(varargin)"; "    varargout(i) = varargin(i) * 2;";"end"]);
assert_checktrue(isdef("mymacro"));
[a,b,c] = mymacro(3,4,5);
assert_checkequal(a, 6);
assert_checkequal(b, 8);
assert_checkequal(c, 10);
clear mymacro;
assert_checkfalse(isdef("mymacro"));
deff("[varargout] = mymacro(varargin)", ["deff(""varargout = mymacro2(varargin)"", [""for i = 1 : size(varargin)""; ""    varargout(i) = varargin(i) * 2;"";""end""]);";"[a,b,c] = mymacro2(varargin(:));";"varargout(1) = a*2;";"varargout(2) = b*2;";"varargout(3) = c*2;"]);
assert_checktrue(isdef("mymacro"));
assert_checkfalse(isdef("mymacro2"));
[a,b,c] = mymacro(3,4,5);
assert_checkequal(a, 12);
assert_checkequal(b, 16);
assert_checkequal(c, 20);
assert_checkfalse(isdef("mymacro2"));
clear mymacro;
assert_checkfalse(isdef("mymacro"));