4da83e26bfa446e437e7dbf7e113b4e9955c9ee4
[scilab.git] / scilab / modules / statistics / tests / nonreg_tests / bug_7858.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 //
10 // <-- Non-regression test for bug 7858 -->
11 //
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/show_bug.cgi?id=7858
14 //
15 // <-- Short Description -->
16 // variance and variancef can take now take the a priori mean as input, and it can be a scalar.
17 // =============================================================================
18
19 //--------------------------------------------------------------
20 // Variance
21
22 x = [
23 0.9    0.7
24 0.1    0.1
25 0.5    0.4 ];
26 orien = "r";
27 expectedM = [1 1];
28 expectedV = [1.07 1.26]/3;
29
30 // Voluntarily passing a bad a priori mean, to check that we get the same results with scalar
31 [Variance, Mean] = variance( x, orien, ones(mean(x,orien)) );
32 assert_checkalmostequal([Variance Mean], [expectedV expectedM]);
33 // With a scalar
34 [Variance, Mean] = variance( x, orien, 1 );
35 assert_checkalmostequal([Variance Mean], [expectedV expectedM]);
36
37 orien = "c";
38 expectedM = [1; 1; 1];
39 expectedV = [0.05; 0.81; 0.305];
40
41 // Voluntarily passing a bad a priori mean, to check that we get the same results with scalar
42 [Variance, Mean] = variance( x, orien, ones(mean(x,orien)) );
43 assert_checkalmostequal([Variance Mean], [expectedV expectedM]);
44 // With a scalar
45 [Variance, Mean] = variance( x, orien, 1 );
46 assert_checkalmostequal([Variance Mean], [expectedV expectedM]);
47
48
49 //--------------------------------------------------------------
50 // Variancef
51
52 x = [0.2113249 0.0002211 0.6653811; 0.7560439 0.9546254 0.6283918];
53 fre = [1 2 3; 3 4 3];
54 orien = "r";
55 refM = [1 1 1];
56 refV = [0.889522663062 0.593015108708 0.593015108708];
57
58 [v, m] = variancef( x, fre, orien, ones(meanf(x,fre,orien)) );
59 assert_checkalmostequal([v m], [refV refM]);
60
61 [v, m] = variancef( x, fre, orien, 1 );
62 assert_checkalmostequal([v m], [refV refM]);
63
64 orien = "c";
65 refM = [1; 1];
66 refV = [0.288922678414; 0.019966608736];
67 [v, m] = variancef( x, fre, orien, ones(meanf(x,fre,orien)) );
68 assert_checkalmostequal([v m], [refV refM]);
69
70 [v, m] = variancef( x, fre, orien, 1 );
71 assert_checkalmostequal([v m], [refV refM]);