Skip to content

Commit dca5168

Browse files
committed
Added measured file builders
1 parent 53c2016 commit dca5168

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/main/scala/scales/coverage.scala

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package scales
22

33
import scala.collection.mutable.ListBuffer
4-
import scala.reflect.internal.util.SourceFile
54

65
/**
76
* @author Stephen Samuel */
87
class Coverage
9-
extends CoverageMetrics with
10-
MethodBuilders with
11-
java.io.Serializable with
12-
ClassBuilders with
13-
PackageBuilders with
14-
Numerics {
8+
extends CoverageMetrics
9+
with MethodBuilders
10+
with java.io.Serializable
11+
with ClassBuilders
12+
with PackageBuilders
13+
with FileBuilders
14+
with Numerics {
1515

1616
val statements = new ListBuffer[MeasuredStatement]
1717

@@ -49,17 +49,25 @@ trait ClassBuilders {
4949
def classCount: Int = classes.size
5050
}
5151

52+
trait FileBuilders {
53+
val statements: Iterable[MeasuredStatement]
54+
def files: Iterable[MeasuredFile] = statements.groupBy(_.source).map(arg => MeasuredFile(arg._1, arg._2))
55+
def fileCount: Int = files.size
56+
}
57+
5258
case class MeasuredMethod(name: String, statements: Iterable[MeasuredStatement]) extends CoverageMetrics
5359

5460
case class MeasuredClass(name: String, statements: Iterable[MeasuredStatement])
55-
extends CoverageMetrics with MethodBuilders with Numerics
61+
extends CoverageMetrics with MethodBuilders with Numerics {
62+
def source = statements.head.source
63+
}
5664

5765
case class MeasuredPackage(name: String, statements: Iterable[MeasuredStatement])
5866
extends CoverageMetrics with ClassCoverage with ClassBuilders {
5967
def files = Nil //statements.groupBy(_.source).map(arg => MeasuredFile(arg._1, arg._2))
6068
}
6169

62-
case class MeasuredFile(source: SourceFile, statements: Iterable[MeasuredStatement])
70+
case class MeasuredFile(source: String, statements: Iterable[MeasuredStatement])
6371
extends CoverageMetrics with ClassCoverage with ClassBuilders {
6472
def lineStatus(lineNumber: Int): LineStatus = {
6573
statements.filter(_.line == lineNumber) match {

0 commit comments

Comments
 (0)