summaryrefslogtreecommitdiff
path: root/modules/statistics/tests/unit_tests/meanf.tst
blob: f25e9999972f36075d5b8bf6d9242bf51aa335e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
// =============================================================================
// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
// Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS
//
//  This file is distributed under the same license as the Scilab package.
// =============================================================================

// <-- CLI SHELL MODE -->

// unit tests for meanf function
// =============================================================================

assert_checkfalse(execstr("meanf()"   ,"errcatch") == 0);
refMsg = msprintf(_("%s: Wrong number of input argument: %d to %d expected.\n"), "meanf", 2, 3);
assert_checkerror("meanf()", refMsg);

assert_checkequal(meanf([], 1), %nan);

assert_checkequal(meanf(%nan, 1), %nan);

assert_checkequal(meanf(%nan, %nan), %nan);

// Vector
x = 1:10;
assert_checkequal(meanf(x, 5), 55);
assert_checkequal(meanf(x', 5), 55);

assert_checkfalse(execstr("meanf(x, ''r'')"   ,"errcatch") == 0);
refMsg = msprintf(_("%s: Wrong type for input argument #%d: A full or sparse matrix, or an integer matrix, or an hypermat expected.\n"), "meanf", 2);
assert_checkerror("meanf(x, ''r'')", refMsg);

assert_checkequal(meanf(x, x), 7);
assert_checkequal(meanf(x', x'), 7);

assert_checkequal(meanf(x, []), %nan);
assert_checkequal(meanf(x', []), %nan);

assert_checkequal(meanf(x, x, "c"), 7);
assert_checkequal(meanf(x, x, 2), 7);
assert_checkequal(meanf(x, x, "*"), 7);
assert_checkequal(meanf(x', x', "r"), 7);
assert_checkequal(meanf(x', x', 1), 7);
assert_checkequal(meanf(x', x', "*"), 7);

assert_checkfalse(execstr("meanf(x, x, ''t'')"   ,"errcatch") == 0);
refMsg = msprintf(gettext("%s: Wrong value for input argument #%d: ''%s'', ''%s'', %d or %d expected.\n"),"meanf",3,"r","c",1,2);
assert_checkerror("meanf(x, x, ''t'')", refMsg);

assert_checkfalse(execstr("meanf(x, x, 4)"   ,"errcatch") == 0);
refMsg = msprintf(gettext("%s: Wrong value for input argument #%d: ''%s'', ''%s'', %d or %d expected.\n"),"meanf",3,"r","c",1,2);
assert_checkerror("meanf(x, x, 4)", refMsg);

// Matrix
A=[1,2,10;7,7.1,7.01];

assert_checkfalse(execstr("meanf(A, A'')"   ,"errcatch") == 0);
refMsg = msprintf(gettext("%s: Wrong size for input arguments #%d and #%d: Same dimensions expected.\n"),"meanf",1,2);
assert_checkerror("meanf(A, A'')", refMsg);

assert_checkequal(meanf(A, 3), 34.11);
assert_checkequal(meanf(A, 3, "r"), [8 9.1 17.01]);
assert_checkequal(meanf(A, 3, 1), [8 9.1 17.01]);
assert_checkequal(meanf(A, 3, "c"), [13;21.11]);
assert_checkequal(meanf(A, 3, 2), [13;21.11]);
assert_checkequal(meanf(A, 3, "*"), 34.11);

assert_checkalmostequal(meanf(A, A), 7.4333069, [], %eps);
assert_checkalmostequal(meanf(A, A, "*"), 7.4333069, [], %eps);
assert_checkalmostequal(meanf(A, A, "r"), [6.25 5.9791209 8.7677895], [], %eps);
assert_checkalmostequal(meanf(A, A, 1), [6.25 5.9791209 8.7677895], [], %eps);
assert_checkalmostequal(meanf(A, A, "c"), [8.0769231; 7.0369541], [], %eps);
assert_checkalmostequal(meanf(A, A, 2), [8.0769231; 7.0369541], [], %eps);

assert_checkequal(meanf(sparse(A), 3), 34.11);
assert_checkequal(meanf(sparse(A), 3, "*"), 34.11);
assert_checkalmostequal(meanf(sparse(A), 3, "r"), sparse([8 9.1 17.01]), [], %eps);
assert_checkalmostequal(meanf(sparse(A), 3, 1), sparse([8 9.1 17.01]), [], %eps);
assert_checkequal(meanf(sparse(A), 3, "c"), sparse([13;21.11]));
assert_checkequal(meanf(sparse(A), 3, 2), sparse([13;21.11]));

assert_checkalmostequal(meanf(sparse(A), A), 7.4333069, [], %eps);
assert_checkalmostequal(meanf(sparse(A), A, "*"), 7.4333069, [], %eps);
assert_checkalmostequal(meanf(sparse(A), A, "r"), sparse([6.25 5.9791209 8.7677895]), [], %eps);
assert_checkalmostequal(meanf(sparse(A), A, 1), sparse([6.25 5.9791209 8.7677895]), [], %eps);
assert_checkalmostequal(meanf(sparse(A), A, "c"), sparse([8.0769231; 7.0369541]), [], %eps);
assert_checkalmostequal(meanf(sparse(A), A, 2), sparse([8.0769231; 7.0369541]), [], %eps);

assert_checkalmostequal(meanf(A, sparse(A)), 7.4333069, [], %eps);
assert_checkalmostequal(meanf(A, sparse(A), "*"), 7.4333069, [], %eps);
assert_checkalmostequal(meanf(A, sparse(A), "r"), [6.25 5.9791209 8.7677895], [], %eps);
assert_checkalmostequal(meanf(A, sparse(A), 1), [6.25 5.9791209 8.7677895], [], %eps);
assert_checkalmostequal(meanf(A, sparse(A), "c"), [8.0769231; 7.0369541], [], %eps);
assert_checkalmostequal(meanf(A, sparse(A), 2), [8.0769231; 7.0369541], [], %eps);

assert_checkequal(meanf(int8(A), 3), int8(34));
assert_checkequal(meanf(int8(A), 3, "*"), int8(34));
assert_checkequal(meanf(int8(A), 3, "r"), int8([8 9 17]));
assert_checkequal(meanf(int8(A), 3, 1), int8([8 9 17]));
assert_checkequal(meanf(int8(A), 3, "c"), int8([13;21]));
assert_checkequal(meanf(int8(A), 3, 2), int8([13;21]));

assert_checkequal(meanf(int8(A), A), int8(0));
assert_checkequal(meanf(A, int8(A)), int8(0));
assert_checkequal(meanf(int8(A), A, "*"), int8(0));
assert_checkequal(meanf(int8(A), A, "r"), int8([6 5 -6]));
assert_checkequal(meanf(int8(A), A, 1), int8([6 5 -6]));
assert_checkequal(meanf(int8(A), A, "c"), int8([8; -5]));
assert_checkequal(meanf(int8(A), A, 2), int8([8; -5]));

assert_checkequal(meanf(A, int8(3)), int8(34));
assert_checkequal(meanf(A, int8(3), "*"), int8(34));
assert_checkequal(meanf(A, int8(3), "r"), int8([8 9 17]));
assert_checkequal(meanf(A, int8(3), 1), int8([8 9 17]));
assert_checkequal(meanf(A, int8(3), "c"), int8([13;21]));
assert_checkequal(meanf(A, int8(3), 2), int8([13;21]));


assert_checkequal(meanf(uint8(A), 3), uint8(34));
assert_checkequal(meanf(A, uint8(3)), uint8(34));
assert_checkequal(meanf(uint8(A), 3, "r"), uint8([8 9 17]));
assert_checkequal(meanf(uint8(A), 3, 1), uint8([8 9 17]));
assert_checkequal(meanf(uint8(A), 3, "c"), uint8([13; 21]));
assert_checkequal(meanf(uint8(A), 3, 2), uint8([13; 21]));

assert_checkequal(meanf(uint8(A), A), uint8(7));
assert_checkequal(meanf(A, uint8(A)), uint8(7));
assert_checkequal(meanf(uint8(A), A, "r"), uint8([6 5 8]));
assert_checkequal(meanf(uint8(A), A, 1), uint8([6 5 8]));
assert_checkequal(meanf(uint8(A), A, "c"), uint8([8;7]));
assert_checkequal(meanf(uint8(A), A, 2), uint8([8;7]));

assert_checkequal(meanf(int16(A), 3), int16(34));
assert_checkequal(meanf(int16(A), A), int16(7));
assert_checkequal(meanf(A, int16(3)), int16(34));
assert_checkequal(meanf(A, int16(A)), int16(7));

assert_checkequal(meanf(uint16(A), 3), uint16(34));
assert_checkequal(meanf(A, uint16(3)), uint16(34));

assert_checkequal(meanf(uint16(A), A), uint16(7));
assert_checkequal(meanf(A, uint16(A)), uint16(7));

assert_checkequal(meanf(int32(A), 3), int32(34));
assert_checkequal(meanf(A, int32(3)), int32(34));

assert_checkequal(meanf(int32(A), A), int32(7));
assert_checkequal(meanf(A, int32(A)), int32(7));

assert_checkequal(meanf(uint32(A), 3), uint32(34));
assert_checkequal(meanf(A, uint32(3)), uint32(34));

assert_checkequal(meanf(uint32(A), A), uint32(7));
assert_checkequal(meanf(A, uint32(A)), uint32(7));

M = hypermat([1 2 3], A(:));
assert_checkequal(meanf(M, 3), 34.11);
assert_checkequal(meanf(M, 3, "*"), 34.11);
assert_checkalmostequal(meanf(M, 3, "r"), M, [], %eps);
assert_checkalmostequal(meanf(M, 3, 1), M, [], %eps);
assert_checkequal(meanf(M, 3, "c"), hypermat([1 1 3], [8 9.1 17.01]));
assert_checkequal(meanf(M, 3, 2), hypermat([1 1 3], [8 9.1 17.01]));

assert_checkalmostequal(meanf(M, M), 7.4333069, [], %eps);
assert_checkalmostequal(meanf(M, M, "*"), 7.4333069, [], %eps);
assert_checkalmostequal(meanf(M, M, "r"), M, [], %eps);
assert_checkalmostequal(meanf(M, M, 1), M, [], %eps);
assert_checkalmostequal(meanf(M, M, "c"), hypermat([1 1 3], [6.25 5.9791209 8.7677895]), [], %eps);
assert_checkalmostequal(meanf(M, M, 2), hypermat([1 1 3], [6.25 5.9791209 8.7677895]), [], %eps);