Skip to content
Snippets Groups Projects
Select Git revision
  • c54d7e77cfcb734a62a3da77769a4a16bc345402
  • master default protected
  • bug-collection
3 results

MetricMeasurement.scala

Blame
  • 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)
      }
    }