[Obsolete] IsAScalar
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / isscalar.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- ENGLISH IMPOSED -->
9 // <-- CLI SHELL MODE -->
10 //
11 // unit tests for isscalar function
12 // =============================================================================
13
14 // Constants
15 assert_checkequal(isscalar([1 2 3]), %f);
16 assert_checkequal(isscalar([1 2 3]'), %f);
17 assert_checkequal(isscalar([1 2; 1 2]), %f);
18 assert_checkequal(isscalar(1), %t);
19 assert_checkequal(isscalar([]), %f);
20
21 // Strings
22 assert_checkequal(isscalar(["s" "s"; "s" "s"]), %f);
23 assert_checkequal(isscalar("s"), %t);
24
25 // Polynomials
26 s=poly(0,"s");
27 assert_checkequal(isscalar([s s; s s]), %f);
28 assert_checkequal(isscalar(1+s), %t);
29
30 // Booleans
31 assert_checkequal(isscalar([%t %t; %t %t]), %f);
32 assert_checkequal(isscalar(%t), %t);
33
34 // Sparses
35 assert_checkequal(isscalar(sparse([1 2; 1 2])), %f);
36 assert_checkequal(isscalar(sparse(0)), %t);
37
38 // Structures
39 clear s;
40 assert_checkequal(isscalar(struct()), %f); // Empty structure
41 s(1,1).a = "test";
42 assert_checkequal(isscalar(s), %t); // Scalar structure
43 clear s;
44 s(3,1).a = %pi;
45 assert_checkequal(isscalar(s), %f); // Column structure
46 clear s;
47 s(1,3).a = %e;
48 assert_checkequal(isscalar(s), %f); // Row structure
49 clear s;
50 s(3,2).a = %z;
51 assert_checkequal(isscalar(s), %f); // 2D structure array (not square)
52 clear s;
53 s(2,2,2).a = %s;
54 assert_checkequal(isscalar(s), %f); // 3D structure array (cube)
55 clear s;
56 s(2,1,2).a = %s;
57 assert_checkequal(isscalar(s), %f); // 3D structure array with singleton (square)
58
59 // Cells
60 assert_checkequal(isscalar(cell()), %f); // Empty cell
61 a = cell(1);
62 a(1).entries = 1;
63 assert_checkequal(isscalar(a), %t); // Scalar case
64 clear a;
65 a = cell(1,3);
66 a(1).entries = 1:3;
67 a(2).entries = 1:3;
68 a(3).entries = 1:3;
69 assert_checkequal(isscalar(a), %f); // Row case
70 clear a;
71 a = cell(3,1);
72 a(1).entries = 1:3;
73 a(2).entries = 1:3;
74 a(3).entries = 1:3;
75 assert_checkequal(isscalar(a), %f); // Column case
76 clear a;
77 a = cell(3,2);
78 a(1,1).entries = 1:3;
79 a(1,2).entries = 1:3;
80 a(2,1).entries = 1:3;
81 a(2,2).entries = 1:3;
82 a(3,2).entries = 1:3;
83 a(3,1).entries = 1:3;
84 assert_checkequal(isscalar(a), %f); // Matrix case
85 clear a;
86 a = cell(2,2,2);
87 a(1,1,1).entries =1:3;
88 a(1,2,1).entries =1:3;
89 a(2,1,1).entries =1:3;
90 a(2,2,1).entries =1:3;
91 a(1,1,2).entries =1:3;
92 a(1,2,2).entries =1:3;
93 a(2,1,2).entries =1:3;
94 a(2,2,2).entries =1:3;
95 assert_checkequal(isscalar(a), %f); // Cubic case
96 a = cell(2,1,2);
97 a(1,1,1).entries=1:3;
98 a(2,1,1).entries=1:3;
99 a(1,1,2).entries=1:3;
100 a(2,1,2).entries=1:3;
101 assert_checkequal(isscalar(a), %f); // Hypermatrix with singleton (square)
102
103 // Lists
104 assert_checkequal(isscalar(list()), %f); // Empty list
105 l=list(1);
106 assert_checkequal(isscalar(l), %t); // Scalar case
107 clear l;
108 l=list(1,"test");
109 assert_checkequal(isscalar(l), %f); // Column case
110
111 // Error messages
112 errmsg1 = msprintf(_("%s: Wrong number of input argument(s): %d expected.\n"),"isscalar", 1);
113 assert_checkerror("isscalar()", errmsg1);
114 errmsg2 = msprintf(_("Wrong number of input arguments."));
115 assert_checkerror("isscalar(1,2)", errmsg2);
116 errmsg3 = msprintf(_("Wrong number of output arguments.\n"));
117 assert_checkerror("[r,b]=isscalar([1 2 3]);", errmsg3);