Skip to content

Commit ba7d2a0

Browse files
committed
initial implementation of marcos
1 parent 8767069 commit ba7d2a0

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

src/main/scala/marcos.scala

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.expr.mcdm
2+
3+
case class MarcosResult() extends MCDMResult
4+
5+
def marcos(
6+
decmat: Mat,
7+
weights: Vec,
8+
directions: Array[Direction],
9+
normalization: NormalizationFunction =
10+
Normalization.MarcosNormalization,
11+
options: Map[String, Any] = Map.empty
12+
): MarcosResult = ???

src/test/scala/testmarcos.scala

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import munit.Assertions as A
2+
3+
import org.expr.mcdm.marcos
4+
import org.expr.mcdm.Direction.{Maximize, Minimize}
5+
import org.expr.mcdm.Matrix
6+
7+
class TestMarcos extends munit.FunSuite {
8+
test("Marcos Example - 1") {
9+
val decmat = Array(
10+
Array(8.675, 8.433, 8.000, 7.800, 8.025, 8.043),
11+
Array(8.825, 8.600, 7.420, 7.463, 7.825, 8.229),
12+
Array(8.325, 7.600, 8.040, 7.700, 7.925, 7.600),
13+
Array(8.525, 8.667, 7.180, 7.375, 7.750, 8.071))
14+
15+
val weights = Array(0.19019, 0.15915, 0.19819, 0.19019, 0.15115, 0.11111)
16+
17+
val fns = Array(Maximize, Maximize, Maximize, Maximize, Maximize, Maximize)
18+
19+
val expected_scores = Array(0.684865943528, 0.672767106696, 0.662596906139, 0.661103207660)
20+
21+
//val result = marcos(decmat, weights, fns)
22+
23+
println("*****************************")
24+
println("Marcos not implemented yet!")
25+
println("*****************************")
26+
//A.assert(Matrix.elementwise_equal(result, expected_scores, 1e-6), "Marcos scores do not match expected values")
27+
}
28+
}

0 commit comments

Comments
 (0)