Select Git revision
MetricMeasurement.scala
MetricMeasurement.scala 2.06 KiB
package ttc2019
import org.rosi_project.model_management.core.ModelElementLists
import ttc2019.benchmark.Metrics
/**
* Object to create the metric values from the created target models.
*/
object MetricMeasurement {
var printDirectly = false
def printMetricsBDT(directly: Boolean = false): Metrics = {
printDirectly = directly
val bdd = ModelElementLists.getElementsFromType("sync.bdd.BDD").head.asInstanceOf[_root_.sync.bdd.BDD]
val numberSubtrees = ModelElementLists.getElementsFromType("sync.bdd.Subtree").size
val numberLeafs = ModelElementLists.getElementsFromType("sync.bdd.Leaf").size
val maxPath = bdd.getTree().getMaxPath()
val minPath = bdd.getTree().getMinPath()
val averagePath = bdd.getTree().getAvgPath()
if (directly) {
println("Number Subtrees: " + numberSubtrees)
println("Number Leaf: " + numberLeafs)
println("Max Path Length: " + maxPath)
println("Min Path Length: " + minPath)
println("Average Path Length: " + averagePath)
}
Metrics(nLeafs = numberLeafs, nSubTrees = numberSubtrees, maxPathLength = maxPath, minPathLength = minPath, avgPathLength = averagePath)
}
def printMetricsBDD(directly: Boolean = false): Metrics = {
printDirectly = directly
val bdd = ModelElementLists.getElementsFromType("sync.bddg.BDD").head.asInstanceOf[_root_.sync.bddg.BDD]
val numberSubtrees = ModelElementLists.getElementsFromType("sync.bddg.Subtree").size
val numberLeafs = ModelElementLists.getElementsFromType("sync.bddg.Leaf").size
val maxPath = bdd.getRoot().getMaxPath()
val minPath = bdd.getRoot().getMinPath()
val averagePath = bdd.getRoot().getAvgPath()
if (directly) {
println("Number Subtrees: " + numberSubtrees)
println("Number Leaf: " + numberLeafs)
println("Max Path Length: " + maxPath)
println("Min Path Length: " + minPath)
println("Average Path Length: " + averagePath)
}
Metrics(nLeafs = numberLeafs, nSubTrees = numberSubtrees, maxPathLength = maxPath, minPathLength = minPath, avgPathLength = averagePath)
}
}