@@ -2,6 +2,8 @@ import munit.Assertions as A
22
33import scala .math as math
44import org .expr .mcdm .Matrix
5+ import org .expr .mcdm .Direction ._
6+ import org .expr .mcdm .Normalization ._
57
68class TestNormalizations extends munit.FunSuite {
79
@@ -17,5 +19,26 @@ class TestNormalizations extends munit.FunSuite {
1719 )
1820 A .assert(Matrix .elementwise_equal(columnnorms, expected))
1921 }
22+ test(" Divide By Columns Sum Normalization" ){
23+ val decmat = Array (
24+ Array (0.616812 , 0.415094 , 0.0168757 , 0.338965 , 0.190954 ),
25+ Array (0.938958 , 0.363936 , 0.528116 , 0.739575 , 0.669537 ),
26+ Array (0.816357 , 0.538917 , 0.306811 , 0.356321 , 0.380972 ),
27+ Array (0.874629 , 0.0295879 , 0.340564 , 0.0345955 , 0.291483 ))
28+
29+ val weights = Array (0.2 , 0.2 , 0.2 , 0.2 , 0.2 )
30+
31+ val directions = Array (Maximize , Maximize , Minimize , Minimize , Maximize )
32+
33+ val normalizedMatrix = DivideByColumnnsSumNormalization (decmat, weights, directions)
34+
35+ val expected = Array (
36+ Array (0.189978 , 0.30804 , 0.0141531 , 0.230674 , 0.124567 ),
37+ Array (0.289199 , 0.270075 , 0.442914 , 0.503298 , 0.436765 ),
38+ Array (0.251438 , 0.399928 , 0.257313 , 0.242485 , 0.248523 ),
39+ Array (0.269385 , 0.021957 , 0.28562 , 0.0235431 , 0.190145 ))
40+
41+ A .assert(Matrix .elementwise_equal(normalizedMatrix, expected, 1e-5 ))
42+ }
2043
2144}
0 commit comments