@@ -18,6 +18,11 @@ case class Coverage()
18
18
override def statements = statementsById.values
19
19
def add (stmt : Statement ): Unit = statementsById.put(stmt.id, stmt)
20
20
21
+ private val ignoredStatementsById = mutable.Map [Int , Statement ]()
22
+ override def ignoredStatements = ignoredStatementsById.values
23
+ def addIgnoredStatement (stmt : Statement ): Unit = ignoredStatementsById.put(stmt.id, stmt)
24
+
25
+
21
26
def avgClassesPerPackage = classCount / packageCount.toDouble
22
27
def avgClassesPerPackageFormatted : String = " %.2f" .format(avgClassesPerPackage)
23
28
@@ -65,23 +70,30 @@ trait FileBuilders {
65
70
def fileCount : Int = files.size
66
71
}
67
72
68
- case class MeasuredMethod (name : String , statements : Iterable [Statement ]) extends CoverageMetrics
73
+ case class MeasuredMethod (name : String , statements : Iterable [Statement ]) extends CoverageMetrics {
74
+ override def ignoredStatements : Iterable [Statement ] = ???
75
+ }
69
76
70
77
case class MeasuredClass (name : String , statements : Iterable [Statement ])
71
78
extends CoverageMetrics with MethodBuilders {
72
79
def source : String = statements.head.source
73
80
def simpleName = name.split('.' ).last
74
81
def loc = statements.map(_.line).max
82
+
83
+ override def ignoredStatements : Iterable [Statement ] = ???
75
84
}
76
85
77
86
case class MeasuredPackage (name : String , statements : Iterable [Statement ])
78
87
extends CoverageMetrics with ClassCoverage with ClassBuilders with FileBuilders {
88
+ override def ignoredStatements : Iterable [Statement ] = ???
79
89
}
80
90
81
91
case class MeasuredFile (source : String , statements : Iterable [Statement ])
82
92
extends CoverageMetrics with ClassCoverage with ClassBuilders {
83
93
def filename = new File (source).getName
84
94
def loc = statements.map(_.line).max
95
+
96
+ override def ignoredStatements : Iterable [Statement ] = ???
85
97
}
86
98
87
99
case class Statement (source : String ,
@@ -127,6 +139,10 @@ object ClassRef {
127
139
trait CoverageMetrics {
128
140
def statements : Iterable [Statement ]
129
141
def statementCount : Int = statements.size
142
+
143
+ def ignoredStatements : Iterable [Statement ]
144
+ def ignoredStatementCount : Int = ignoredStatements.size
145
+
130
146
def invokedStatements : Iterable [Statement ] = statements.filter(_.count > 0 )
131
147
def invokedStatementCount = invokedStatements.size
132
148
def statementCoverage : Double = if (statementCount == 0 ) 1 else invokedStatementCount / statementCount.toDouble
0 commit comments