Skip to content

Commit

Permalink
refactor: apply some cosmetics on code
Browse files Browse the repository at this point in the history
add several string interpolation
add toString() function within PowerReport instead of the toString() function in reporters
chore(README): update README
  • Loading branch information
huertas committed Jan 26, 2015
1 parent 7d09bf8 commit 9170543
Show file tree
Hide file tree
Showing 11 changed files with 25 additions and 57 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ We all stand on the shoulders of giants and get by with a little help from our f
* [Akka](http://akka.io) (version 2.3.6 under [Apache 2 license](http://www.apache.org/licenses/LICENSE-2.0)), for asynchronous processing
* [Typesage Config](https://github.com/typesafehub/config) (version 1.2.1 under [Apache 2 license](http://www.apache.org/licenses/LICENSE-2.0)), for reading configuration files.
* [Apache log4j2](http://logging.apache.org/log4j/2.x/) (version 2.1 under [Apache 2 license](http://www.apache.org/licenses/LICENSE-2.0)), for logging outside actors.
* [JFreeChart](http://www.jfree.org/jfreechart/) (version 1.0.19 under [LGPL license](https://www.gnu.org/licenses/lgpl.html)), for creation of interactive and animated charts.
* [Scala IO](http://jesseeichar.github.io/scala-io-doc/0.4.3/index.html#!/overview) (version 0.4.3), for an extensions of IO

# Licence
This software is licensed under the *GNU Affero General Public License*, quoted below.
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/org/powerapi/core/MonitorActors.scala
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class MonitorChild(eventBus: MessageBus,
import org.powerapi.module.PowerChannel.{ AggregateReport, render, subscribePowerReport, unsubscribePowerReport }

def receive: PartialFunction[Any, Unit] = LoggingReceive {
case MonitorStart(_, id, freq, targs, agg) if muid == id && frequency == freq && targets == targs && aggFunction == agg => start()
case MonitorStart(_, id, freq, targs, _) if muid == id && frequency == freq && targets == targs => start()
} orElse default

/**
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/org/powerapi/core/power/Power.scala
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ final class RawPower(val value: Double, val unit: PowerUnit) extends Power {
def toMegaWatts = unit.toMegaWatts(value)
def toUnit(u: PowerUnit) = toMilliWatts / MILLIWATTS.convert(1, u)

override def toString() = "" + value + " " + unit
override def toString() = s"$value $unit"

def compare(other: Power) = toMilliWatts compare other.toMilliWatts

Expand Down
1 change: 1 addition & 0 deletions src/main/scala/org/powerapi/module/PowerChannel.scala
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ object PowerChannel extends Channel {
def power: Power
def device: String
def tick: ClockTick
override def toString() = s"timestamp=${tick.timestamp};target=$target;device=$device;value=$power"
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/org/powerapi/reporter/Chart.scala
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import org.jfree.ui.ApplicationFrame
/**
* Display result received from the CpuDiskListener Component to a wrapped JFreeChart chart.
*
* @author abourdon
* @author Aurélien Bourdon <[email protected]>
*/
class Chart(title: String) {
val dataset = new TimeSeriesCollection
Expand Down
10 changes: 1 addition & 9 deletions src/main/scala/org/powerapi/reporter/ConsoleReporter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,8 @@ package org.powerapi.reporter
class ConsoleReporter extends ReporterComponent {
import org.powerapi.module.PowerChannel.PowerReport

case class Line(aggPpowerReport: PowerReport) {
override def toString() =
"timestamp=" + aggPpowerReport.tick.timestamp + ";" +
"target=" + aggPpowerReport.target + ";" +
"device=" + aggPpowerReport.device + ";" +
"value=" + aggPpowerReport.power
}

def report(aggPowerReport: PowerReport) {
println(Line(aggPowerReport))
println(aggPowerReport)
}
}

15 changes: 3 additions & 12 deletions src/main/scala/org/powerapi/reporter/FileReporter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -50,23 +50,14 @@ class FileReporter extends ReporterComponent with Configuration {
import scalax.io.Resource
import org.powerapi.core.FileHelper.using
import org.powerapi.module.PowerChannel.PowerReport

case class Line(aggPpowerReport: PowerReport) {
override def toString() =
"timestamp=" + aggPpowerReport.tick.timestamp + ";" +
"target=" + aggPpowerReport.target + ";" +
"device=" + aggPpowerReport.device + ";" +
"value=" + aggPpowerReport.power + scalax.io.Line.Terminators.NewLine.sep
}


lazy val output = {
if (log.isInfoEnabled) log.info("using " + filePath + " as output file")
Resource.fromFile(filePath)
if (log.isInfoEnabled) log.info("using {} as output file", filePath)
Resource.fromFile(filePath)
}

def report(aggPowerReport: PowerReport) {
output.append(Line(aggPowerReport).toString)
output.append(s"$aggPowerReport\n")
}
}

16 changes: 4 additions & 12 deletions src/test/scala/org/powerapi/reporter/ConsoleReporterSuite.scala
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,10 @@ import org.powerapi.module.PowerChannel.PowerReport

class ConsoleReporterMock(testActor: ActorRef) extends ConsoleReporter {
override def report(aggPowerReport: PowerReport) = {
testActor ! Line(aggPowerReport).toString
testActor ! aggPowerReport.toString
}
}

case class LineMock(aggPpowerReport: PowerReport) {
override def toString() =
"timestamp=" + aggPpowerReport.tick.timestamp + ";" +
"target=" + aggPpowerReport.target + ";" +
"device=" + aggPpowerReport.device + ";" +
"value=" + aggPpowerReport.power
}

class ConsoleReporterSuite(system: ActorSystem) extends UnitTest(system) {

implicit val timeout = Timeout(1.seconds)
Expand Down Expand Up @@ -87,9 +79,9 @@ class ConsoleReporterSuite(system: ActorSystem) extends UnitTest(system) {
render(aggR2)(eventBus)
render(aggR3)(eventBus)

expectMsgClass(classOf[String]) should equal(LineMock(RawPowerReport("topictest", muid, Process(1), 3.W, device, tickMock)).toString)
expectMsgClass(classOf[String]) should equal(LineMock(RawPowerReport("topictest", muid, Process(2), 1.W, device, tickMock)).toString)
expectMsgClass(classOf[String]) should equal(LineMock(RawPowerReport("topictest", muid, Process(3), 2.W, device, tickMock)).toString)
expectMsgClass(classOf[String]) should equal(RawPowerReport("topictest", muid, Process(1), 3.W, device, tickMock).toString)
expectMsgClass(classOf[String]) should equal(RawPowerReport("topictest", muid, Process(2), 1.W, device, tickMock).toString)
expectMsgClass(classOf[String]) should equal(RawPowerReport("topictest", muid, Process(3), 2.W, device, tickMock).toString)
}
}

6 changes: 3 additions & 3 deletions src/test/scala/org/powerapi/reporter/FileReporterSuite.scala
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,9 @@ class FileReporterSpec(system: ActorSystem) extends UnitTest(system) {
testFile.size.get should be > 0L
testFile.lines() should (
have size 3 and
contain(LineMock(RawPowerReport("topictest", muid, Process(1), 3.W, device, tickMock)).toString) and
contain(LineMock(RawPowerReport("topictest", muid, Process(2), 1.W, device, tickMock)).toString) and
contain(LineMock(RawPowerReport("topictest", muid, Process(3), 2.W, device, tickMock)).toString)
contain(RawPowerReport("topictest", muid, Process(1), 3.W, device, tickMock).toString) and
contain(RawPowerReport("topictest", muid, Process(2), 1.W, device, tickMock).toString) and
contain(RawPowerReport("topictest", muid, Process(3), 2.W, device, tickMock).toString)
)
testFile.delete(true)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ import akka.util.Timeout
import org.powerapi.UnitTest
import org.powerapi.core.MessageBus

class JFreeChartReporterMock extends JFreeChartReporter

class JFreeChartReporterSpec(system: ActorSystem) extends UnitTest(system) {
implicit val timeout = Timeout(1.seconds)

Expand All @@ -52,7 +50,7 @@ class JFreeChartReporterSpec(system: ActorSystem) extends UnitTest(system) {
import org.powerapi.core.power._
import org.powerapi.module.PowerChannel.{ AggregateReport, RawPowerReport, render, subscribeAggPowerReport }

val reporterMock = TestActorRef(Props[JFreeChartReporterMock], "jfreechartReporter")(system)
val reporterMock = TestActorRef(Props[JFreeChartReporter], "jfreechartReporter")(system)

val muid = UUID.randomUUID()
val aggFunction = (s: Seq[Power]) => s.foldLeft(0.0.W){ (acc, p) => acc + p }
Expand All @@ -64,11 +62,11 @@ class JFreeChartReporterSpec(system: ActorSystem) extends UnitTest(system) {

while(current <= (begin + (5.seconds).toMillis)) {
render(AggregateReport(muid, aggFunction) += RawPowerReport("topictest",
muid,
Process(1),
Math.random.W,
"mock",
ClockTick("ticktest", 25.milliseconds, current)))(eventBus)
muid,
Process(1),
Math.random.W,
"mock",
ClockTick("ticktest", 25.milliseconds, current)))(eventBus)
current += (1.seconds).toMillis
Thread.sleep((1.seconds).toMillis)
}
Expand Down
12 changes: 2 additions & 10 deletions src/test/scala/org/powerapi/reporter/ReporterComponentSuite.scala
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,13 @@ import java.util.UUID
import scala.concurrent.duration.DurationInt

import akka.actor.{ ActorRef, ActorSystem, Props }
import akka.testkit.{ TestActorRef, TestKit }
import akka.testkit.TestKit
import akka.util.Timeout

import org.powerapi.UnitTest
import org.powerapi.core.MessageBus
import org.powerapi.module.PowerChannel.PowerReport

class ReporterComponentMock(actorRef: ActorRef) extends ReporterComponent {
def report(aggPowerReport: PowerReport): Unit = {
actorRef ! aggPowerReport
}
}

class ReporterComponentSuite(system: ActorSystem) extends UnitTest(system) {

def this() = this(ActorSystem("ReporterComponentSuite"))
Expand All @@ -58,15 +52,13 @@ class ReporterComponentSuite(system: ActorSystem) extends UnitTest(system) {
import org.powerapi.core.power._
import org.powerapi.module.PowerChannel.{ AggregateReport, RawPowerReport, render, subscribeAggPowerReport }

val reporterMock = TestActorRef(Props(classOf[ReporterComponentMock], testActor))(system)

val muid = UUID.randomUUID()
val target = Process(1)
val device = "mock"
val tickMock = ClockTick("ticktest", 25.milliseconds)
val aggFunction = (s: Seq[Power]) => s.foldLeft(0.0.W){ (acc, p) => acc + p }

subscribeAggPowerReport(muid)(eventBus)(reporterMock)
subscribeAggPowerReport(muid)(eventBus)(testActor)

val aggR = AggregateReport(muid, aggFunction)
aggR += RawPowerReport("topictest", muid, target, 1.W, device, tickMock)
Expand Down

0 comments on commit 9170543

Please sign in to comment.