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