Skip to content

Commit b2aa6e2

Browse files
committed
Reformatted code
1 parent d09c473 commit b2aa6e2

File tree

7 files changed

+377
-363
lines changed

7 files changed

+377
-363
lines changed

src/main/scala/scales/IOUtils.scala

+17-17
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
package scales
22

3-
import java.io.{FileWriter, BufferedWriter}
3+
import java.io.{File, FileWriter, BufferedWriter}
44

55
/** @author Stephen Samuel */
66
object IOUtils {
77

8-
def dropScalaPath(path: String) = path.split("src/main/scala").last
8+
def dropScalaPath(path: String) = path.split("src/main/scala").last
99

10-
def toOutputPath(path: String) = "target/scales/" + dropScalaPath(path)
11-
def createDirs(path: String) = new File(path).isDirectory match {
12-
case false => new File(path).getParentFile.mkdirs
13-
case true => new File(path).mkdirs
14-
}
10+
def toOutputPath(path: String) = "target/scales/" + dropScalaPath(path)
11+
def createDirs(path: String) = new File(path).isDirectory match {
12+
case false => new File(path).getParentFile.mkdirs
13+
case true => new File(path).mkdirs
14+
}
1515

16-
// write to relative path
17-
def write(path: String, data: AnyRef) {
18-
val outputPath = toOutputPath(path)
19-
createDirs(outputPath)
20-
println(s"Writing to path $outputPath")
21-
val file = new File(outputPath)
22-
val writer = new BufferedWriter(new FileWriter(file))
23-
writer.write(data.toString)
24-
writer.close()
25-
}
16+
// write to relative path
17+
def write(path: String, data: AnyRef) {
18+
val outputPath = toOutputPath(path)
19+
createDirs(outputPath)
20+
println(s"Writing to path $outputPath")
21+
val file = new File(outputPath)
22+
val writer = new BufferedWriter(new FileWriter(file))
23+
writer.write(data.toString)
24+
writer.close()
25+
}
2626
}

src/main/scala/scales/Instrumenter.scala

+18-12
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,26 @@ import scala.reflect.internal.util.SourceFile
66
/** @author Stephen Samuel */
77
object Instrumentation {
88

9-
val ids = new AtomicInteger(0)
10-
val coverage = new Coverage
9+
val ids = new AtomicInteger(0)
10+
val coverage = new Coverage
1111

12-
def add(source: SourceFile, _package: String, _class: String, _method: String, start: Int, line: Int, desc: String) = {
13-
val id = ids.incrementAndGet()
14-
val stmt = MeasuredStatement(source, _package, _class, _method: String, id, start, line, desc)
15-
coverage.add(stmt)
16-
stmt
17-
}
12+
def add(source: SourceFile,
13+
_package: String,
14+
_class: String,
15+
_method: String,
16+
start: Int,
17+
line: Int,
18+
desc: String) = {
19+
val id = ids.incrementAndGet()
20+
val stmt = MeasuredStatement(source, _package, _class, _method: String, id, start, line, desc)
21+
coverage.add(stmt)
22+
stmt
23+
}
1824

19-
def invoked(id: Int): Int = {
20-
coverage.invoked(id)
21-
id
22-
}
25+
def invoked(id: Int): Int = {
26+
coverage.invoked(id)
27+
id
28+
}
2329
}
2430

2531
sealed trait LineStatus

src/main/scala/scales/coverage.scala

+48-42
Original file line numberDiff line numberDiff line change
@@ -7,45 +7,51 @@ import scala.collection.mutable
77
/** @author Stephen Samuel */
88
class Coverage extends StatementCoverage {
99

10-
val statements = new ListBuffer[MeasuredStatement]
11-
val sources = new ListBuffer[SourceFile]
12-
val packageNames = mutable.Set[String]()
13-
val classNames = new ListBuffer[String]()
14-
val methodNames = new ListBuffer[String]()
10+
val statements = new ListBuffer[MeasuredStatement]
11+
val sources = new ListBuffer[SourceFile]
12+
val packageNames = mutable.Set[String]()
13+
val classNames = new ListBuffer[String]()
14+
val methodNames = new ListBuffer[String]()
1515

16-
def loc = sources.map(src => new String(src.content).replaceAll("^\\s.*$", "").split("\n").length).sum
17-
def ncloc =
18-
sources
19-
.map(src => new String(src.content).replaceAll("/\\*.*?\\*/", "").replace("//.*$", "").split("\n").count(_ == '\n')).sum
20-
def packageCount = packageNames.size
21-
def classCount = classNames.size
22-
def methodCount = methodNames.size
23-
def classesPerPackage = classCount / packageCount.toDouble
24-
def methodsPerClass = methodCount / classCount.toDouble
16+
def loc = sources.map(src => new String(src.content).replaceAll("^\\s.*$", "").split("\n").length).sum
17+
def ncloc =
18+
sources
19+
.map(src => new String(src.content)
20+
.replaceAll("/\\*.*?\\*/", "")
21+
.replace("//.*$", "")
22+
.split("\n")
23+
.count(_ == '\n')).sum
24+
def packageCount = packageNames.size
25+
def classCount = classNames.size
26+
def methodCount = methodNames.size
27+
def classesPerPackage = classCount / packageCount.toDouble
28+
def methodsPerClass = methodCount / classCount.toDouble
2529

26-
def add(stmt: MeasuredStatement): Unit = statements.append(stmt)
27-
def invoked(id: Int): Unit = statements.find(_.id == id).foreach(_.invoked)
30+
def add(stmt: MeasuredStatement): Unit = statements.append(stmt)
31+
def invoked(id: Int): Unit = statements.find(_.id == id).foreach(_.invoked)
2832

29-
def files = statements.groupBy(_.source.path).map(arg => MeasuredFile(arg._2.head.source, arg._2))
30-
def packages: Iterable[MeasuredPackage] = statements.groupBy(_._package).map(arg => MeasuredPackage(arg._1, arg._2))
31-
def classes = statements.groupBy(_.fqn).map(arg => MeasuredClass(arg._1, arg._2))
33+
def files = statements.groupBy(_.source.path).map(arg => MeasuredFile(arg._2.head.source, arg._2))
34+
def packages: Iterable[MeasuredPackage] = statements.groupBy(_._package).map(arg => MeasuredPackage(arg._1, arg._2))
35+
def classes = statements.groupBy(_.fqn).map(arg => MeasuredClass(arg._1, arg._2))
3236

33-
def risks(limit: Int) = classes.toSeq.sortBy(_.statementCoverage).take(limit)
37+
def risks(limit: Int) = classes.toSeq.sortBy(_.statementCoverage).take(limit)
3438
}
3539

36-
case class MeasuredPackage(name: String, statements: Iterable[MeasuredStatement]) extends StatementCoverage with ClassCoverage {
37-
def files = statements.groupBy(_.source).map(arg => MeasuredFile(arg._1, arg._2))
40+
case class MeasuredPackage(name: String, statements: Iterable[MeasuredStatement])
41+
extends StatementCoverage with ClassCoverage {
42+
def files = statements.groupBy(_.source).map(arg => MeasuredFile(arg._1, arg._2))
3843
}
3944

40-
case class MeasuredFile(source: SourceFile, statements: Iterable[MeasuredStatement]) extends StatementCoverage with ClassCoverage {
41-
def lineStatus(lineNumber: Int): LineStatus = {
42-
statements.filter(_.line == lineNumber) match {
43-
case i if i.isEmpty => NotInstrumented
44-
case i if i.size > 0 && i.exists(_.count == 0) => MissingCoverage
45-
case _ => Covered
46-
}
45+
case class MeasuredFile(source: SourceFile, statements: Iterable[MeasuredStatement])
46+
extends StatementCoverage with ClassCoverage {
47+
def lineStatus(lineNumber: Int): LineStatus = {
48+
statements.filter(_.line == lineNumber) match {
49+
case i if i.isEmpty => NotInstrumented
50+
case i if i.size > 0 && i.exists(_.count == 0) => MissingCoverage
51+
case _ => Covered
4752
}
48-
def packages: Iterable[MeasuredPackage] = statements.groupBy(_._package).map(arg => MeasuredPackage(arg._1, arg._2))
53+
}
54+
def packages: Iterable[MeasuredPackage] = statements.groupBy(_._package).map(arg => MeasuredPackage(arg._1, arg._2))
4955
}
5056

5157
case class MeasuredClass(name: String, statements: Iterable[MeasuredStatement]) extends StatementCoverage
@@ -58,22 +64,22 @@ case class MeasuredStatement(source: SourceFile,
5864
start: Int,
5965
line: Int,
6066
desc: String) {
61-
val fqn = (_package + ".").replace("<empty>.", "") + _class
62-
var count = 0
63-
def invoked: Unit = count = count + 1
67+
val fqn = (_package + ".").replace("<empty>.", "") + _class
68+
var count = 0
69+
def invoked(): Unit = count = count + 1
6470
}
6571

6672
trait StatementCoverage {
67-
val statements: Iterable[MeasuredStatement]
68-
def statementCoverage: Double = invokedStatements / statements.size.toDouble
69-
def statementCount: Int = statements.size
70-
def invokedStatements: Int = statements.count(_.count > 0)
73+
val statements: Iterable[MeasuredStatement]
74+
def statementCoverage: Double = invokedStatements / statements.size.toDouble
75+
def statementCount: Int = statements.size
76+
def invokedStatements: Int = statements.count(_.count > 0)
7177
}
7278

7379
trait ClassCoverage {
74-
val statements: Iterable[MeasuredStatement]
75-
def classes = statements.groupBy(_._class).map(arg => MeasuredClass(arg._1, arg._2))
76-
def classCount: Int = classes.size
77-
def invokedClasses: Int = classes.count(_.statements.count(_.count > 0) > 0)
78-
def classCoverage: Double = invokedClasses / classes.size.toDouble
80+
val statements: Iterable[MeasuredStatement]
81+
def classes = statements.groupBy(_._class).map(arg => MeasuredClass(arg._1, arg._2))
82+
def classCount: Int = classes.size
83+
def invokedClasses: Int = classes.count(_.statements.count(_.count > 0) > 0)
84+
def classCoverage: Double = invokedClasses / classes.size.toDouble
7985
}

0 commit comments

Comments
 (0)