1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - INRIA
4 // Copyright (C) 2010 - DIGITEO - Bruno JOFRET
6 // This file is distributed under the same license as the Scilab package.
7 // =============================================================================
9 // <-- CLI SHELL MODE -->
10 // <-- NO CHECK REF -->
15 assert_checkequal(exists([]),[]);
16 assert_checkequal(exists([],"a"), []);
17 assert_checkequal(exists([],"l"), []);
18 assert_checkequal(exists([],"n"), []);
21 assert_checkequal(exists('a'), 1);
23 assert_checkequal(exists('a'), 0);
26 assert_checkequal(exists(['a', 'b']), [1, 1]);
27 assert_checkequal(exists(['a'; 'b']), [1; 1]);
28 assert_checkequal(exists(['a', 'b'; 'a', 'b']), [1, 1; 1, 1]);
30 assert_checkequal(exists(['a', 'b']), [1, 0]);
31 assert_checkequal(exists(['a'; 'b']), [1; 0]);
32 assert_checkequal(exists(['b', 'a']), [0, 1]);
33 assert_checkequal(exists(['b'; 'a']), [0; 1]);
34 assert_checkequal(exists(['a', 'b'; 'a', 'b']), [1, 0; 1, 0]);
36 assert_checkequal(exists(['a', 'b']), [0, 0]);
37 assert_checkequal(exists(['a'; 'b']), [0; 0]);
38 assert_checkequal(exists(['a', 'b'; 'a', 'b']), [0, 0; 0, 0]);
40 function __check_exists__(x, scope)
41 assert_checkequal(exists("a", scope), 1);
44 function __check_exists2__(x, scope)
46 assert_checkequal(exists(['a', 'b'], scope), [1, 1]);
47 assert_checkequal(exists(['a'; 'b'], scope), [1; 1]);
48 assert_checkequal(exists(['a', 'b'; 'a' 'b'], scope), [1, 1; 1, 1]);
51 function __check_not_exists__(x, scope)
52 assert_checkequal(exists("a", scope), 0);
55 function __check_not_exists2__(x, scope)
57 assert_checkequal(exists(['a', 'b'], scope), [0, 0]);
58 assert_checkequal(exists(['a'; 'b'], scope), [0; 0]);
59 assert_checkequal(exists(['a', 'b'; 'a', 'b'], scope), [0, 0; 0, 0]);
62 // Define a ONLY in calling scope
64 __check_exists__([], "all");
65 __check_exists__([], "nolocal");
66 __check_not_exists__([], "local");
69 // Define a ONLY in function local scope
70 __check_exists__(a = 42, "all");
71 __check_exists__(a = 42, "local");
72 __check_not_exists__(a = 42, "nolocal");
73 __check_exists2__([], "all");
74 __check_exists2__([], "local");
75 __check_not_exists2__([], "nolocal");
77 // Define a BOTH in calling and local scope
79 __check_exists__(a = 51, "all");
80 __check_exists__(a = 51, "local");
81 __check_exists__(a = 51, "nolocal");
82 __check_exists2__([], "all");
83 __check_exists2__([], "local");
84 __check_exists2__([], "nolocal");