1+ import munit .Assertions as A
2+
3+ import scala .math as math
4+ import org .expr .mcdm .Matrix
5+ import org .expr .mcdm .Statistics
6+
7+ class TestStatistics extends munit.FunSuite {
8+
9+ test(" Mean of vector" ){
10+ val a = Array (1.0 , 2.0 , 3.0 , 4.0 , 5.0 )
11+ val mean = Statistics .mean(a)
12+ val expected = 3.0
13+ A .assertEquals(mean, expected)
14+ }
15+ test(" Variance of vector" ){
16+ val a = Array (1.0 , 2.0 , 3.0 , 4.0 , 5.0 )
17+ val variance = Statistics .variance(a)
18+ val expected = 2.5
19+ A .assertEquals(variance, expected)
20+ }
21+ test(" Correlation of vector with itself" ){
22+ val a = Array (1.0 , 2.0 , 3.0 , 4.0 , 5.0 )
23+ val covariance = Statistics .correlation(a, a)
24+ val expected = 1.0
25+ A .assertEquals(covariance, expected)
26+ }
27+ test(" Correlation of two different vectors (-1)" ){
28+ val a = Array (1.0 , 2.0 , 3.0 , 4.0 , 5.0 )
29+ val b = Array (5.0 , 4.0 , 3.0 , 2.0 , 1.0 )
30+ val covariance = Statistics .correlation(a, b)
31+ val expected = - 1.0
32+ A .assertEquals(covariance, expected)
33+ }
34+ test(" Correlation matrix of columns of matrix" ){
35+ val a = Array (Array (1.0 , 2.0 , 3.0 ), Array (4.0 , 5.0 , 6.0 ), Array (7.0 , 8.0 , 90.0 ))
36+ val corr = Statistics .correlation(a)
37+ val expected = Array (
38+ Array (1.0 , 1.0 , 0.880812 ),
39+ Array (1.0 , 1.0 , 0.880812 ),
40+ Array (0.880812 , 0.880812 , 1.0 ))
41+ A .assert(Matrix .elementwise_equal(corr, expected, 1e-6 ))
42+ }
43+
44+ }
0 commit comments