Merge remote-tracking branch 'origin/master' into yasp
[scilab.git] / scilab / modules / core / tests / unit_tests / varargout.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2011 - DIGITEO - Bruno JOFRET
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 //
9 // Return 3 values
10 //
11 function varargout=__test_function__()
12   varargout(1) = 42;
13   varargout(2) = "value";
14   varargout(3) = list(51);
15 endfunction
16
17 // Simple call
18 __test_function__();
19
20 a = __test_function__();
21 if a <> 42 then pause, end;
22 clear a;
23
24 [a,b] = __test_function__();
25 if a <> 42 then pause, end;
26 if b <> "value" then pause, end;
27 clear a;
28 clear b;
29
30 [a,b,c] = __test_function__();
31 if a <> 42 then pause, end;
32 if b <> "value" then pause, end;
33 if c <> list(51) then pause, end;
34 clear a;
35 clear b;
36 clear c;
37
38 // Check call with too much output values.
39 <<<<<<< HEAD
40 ierr = execstr("[a,b,c,d] = __test_function__();", "errcatch")
41 if ierr == 0 then pause, end;
42 =======
43 ierr = execstr("[a,b,c,d] = __test_function__();", "errcatch");
44 assert_checkfalse(ierr == 0);
45 >>>>>>> origin/master
46
47 //
48 // Return a list of 3 elements with second missing.
49 //
50 function varargout=__test_function2__()
51   varargout(1) = 42;
52   varargout(3) = "value";
53 endfunction
54
55 // Simple call
56 __test_function2__();
57
58 a = __test_function2__();
59 if a <> 42 then pause, end;
60 clear a;
61
62 // varargout(2) is undefined
63 ierr = execstr("[a,b] = __test_function2__();", "errcatch");
64 <<<<<<< HEAD
65 if ierr == 0 then pause, end;
66 =======
67 assert_checkfalse(ierr == 0);
68 >>>>>>> origin/master
69
70 //
71 // varargout is not set : should not work.
72 //
73 function varargout=__test_function3__()
74 endfunction
75
76 ierr = execstr("__test_function3__();", "errcatch");
77 <<<<<<< HEAD
78 if ierr == 0 then pause, end;
79 =======
80 assert_checkfalse(ierr == 0);
81 >>>>>>> origin/master