929c74f4f5ff7a09b6c6592791a2a6fdb90182c2
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - INRIA - Michael Baudin
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // With x as a row vector and 1 argument
8 data = [10 20 30 40 50 60 70 80 90];
9 computed = variance(data);
10 expected = 750;
11 if abs(computed-expected)>%eps then bugmes();quit;end
12 // With x as a column vector and 1 argument
13 data = [10; 20; 30; 40; 50; 60; 70; 80; 90];
14 computed = variance(data);
15 expected = 750;
16 if abs(computed-expected)>%eps then bugmes();quit;end
17 // With x as a matrix
18 data = [10 20 30 40;50 60 70 90];
19 computed = variance(data);
20 expected = 712.5;
21 if abs(computed-expected)>%eps then bugmes();quit;end
22 // With x as a row vector and specified orient
23 data = [10 20 30 40;50 60 70 90];
24 computed = variance(data,1);
25 expected = [800. 800. 800. 1250.];
26 if abs(computed-expected)>%eps then bugmes();quit;end
27 // With x as a row vector and specified orient
28 data = [10 20 30 40;50 60 70 90];
29 computed = variance(data,"r");
30 expected = [800. 800. 800. 1250.];
31 if abs(computed-expected)>%eps then bugmes();quit;end
32 // With x as a row vector and specified orient
33 data = [10 20 30 40;50 60 70 90];
34 computed = variance(data,2);
35 expected = [500.;875.]/3.;
36 if abs(computed-expected)>%eps then bugmes();quit;end
37 // With x as a row vector and specified orient
38 data = [10 20 30 40;50 60 70 90];
39 computed = variance(data,"c");
40 expected = [500.;875.]/3.;
41 if abs(computed-expected)>%eps then bugmes();quit;end
42 // With x as a complex row vector and 1 argument
43 a = [ 0.9, 0.7;
44 0.1, 0.1;
45 0.5, 0.4 ];
46 data = a + a * 2 * %i;
47 computed = variance(data);
48 expected = - 0.3089999999999999413802 + 0.4119999999999999218403 * %i;
49 if abs(computed-expected)>%eps then bugmes();quit;end
50 // With x as a complex row vector and computation by column
51 a = [ 0.9, 0.7;
52 0.1, 0.1;
53 0.5, 0.4 ];
54 data = a + a * 2 * %i;
55 computed = variance(data,1);
56 expected = [0.8 0.45];
57 if abs(computed-expected)>%eps then bugmes();quit;end
58 // With x as a complex row vector and computation by row
59 a = [ 0.9, 0.7;
60 0.1, 0.1;
61 0.5, 0.4 ];
62 data = a + a * 2 * %i;
63 computed = variance(data,2);
64 expected = [0.1
65     0.
66     0.025];
67 if abs(computed-expected)>%eps then bugmes();quit;end
68 // Normalization with N-1
69 x = [0.9    0.7
70     0.1    0.1
71     0.5    0.4];
72 orien = 1;
73 w = 0;
74 computed = variance(x,orien,w);
75 expected = [0.16 0.09];
76 if abs(computed-expected)>%eps then bugmes();quit;end
77 // Normalization with N
78 x = [0.9    0.7
79     0.1    0.1
80     0.5    0.4];
81 orien = 1;
82 w = 1;
83 computed = variance(x,orien,w);
84 expected = [0.32 0.18] / 3;
85 if abs(computed-expected)>%eps then bugmes();quit;end