* Bug 15859 fixed: isempty() overloadable for tlists & mlists
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / isempty.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
4 // Copyright (C) 2016, 2018 - Samuel GOUGEON
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8
9 // <-- CLI SHELL MODE -->
10 // <-- NO CHECK REF -->
11
12 // unit tests for isempty function
13 // =============================================================================
14
15 // empty matrix
16 assert_checktrue(isempty([]));
17
18 // character string
19 assert_checktrue(isempty(''));
20
21 // matrix of character string
22 assert_checktrue(isempty([ '' , '' ; '' , '' ]));
23 assert_checkfalse(isempty([ ' ' , '' ; '' , '' ]));
24
25 // empty list
26 assert_checktrue(isempty(list()));
27
28 // list with only undefined elements
29 assert_checktrue(isempty(list(,)));
30
31 // empty structure()
32 assert_checktrue(isempty(struct()));
33
34 // empty cell()
35 assert_checktrue(isempty({}));
36
37 // nested empty containers
38 assert_checktrue(isempty(list({}, list("",,[]), [], struct())));
39 s.r = [];
40 s.c = {};
41 s.L = list();
42 s.s = struct();
43 assert_checktrue(isempty(s));
44
45 // existing overloads
46 t = tlist("abc");
47 function r = %abc_isempty(L)
48     r = "%abc_isempty called"
49 endfunction
50 assert_checkequal(isempty(t), "%abc_isempty called");
51 t = mlist("abc");
52 assert_checkequal(isempty(t), "%abc_isempty called");
53
54 // other mlists are never empty
55 assert_checkfalse(isempty(mlist('')));