diff --git a/src/main/scala/bad/robot/temperature/ErrorOnTemperatureSpike.scala b/src/main/scala/bad/robot/temperature/ErrorOnTemperatureSpike.scala index 91ce684..ba80669 100644 --- a/src/main/scala/bad/robot/temperature/ErrorOnTemperatureSpike.scala +++ b/src/main/scala/bad/robot/temperature/ErrorOnTemperatureSpike.scala @@ -9,8 +9,7 @@ object ErrorOnTemperatureSpike { private val spikePercentage = 30 - // negative numbers would be a decrease, which we'll ignore (use Math.abs if we change our mind later) - def percentageIncrease(oldValue: Double, newValue: Double): Double = (newValue - oldValue) / oldValue * 100 + def percentageIncrease(oldValue: Double, newValue: Double): Double = Math.abs((newValue - oldValue) / oldValue * 100) /** * @param delegate delegate writer diff --git a/src/test/scala/bad/robot/temperature/ErrorOnTemperatureSpikeTest.scala b/src/test/scala/bad/robot/temperature/ErrorOnTemperatureSpikeTest.scala index 3bbe9fb..d14ffa6 100644 --- a/src/test/scala/bad/robot/temperature/ErrorOnTemperatureSpikeTest.scala +++ b/src/test/scala/bad/robot/temperature/ErrorOnTemperatureSpikeTest.scala @@ -74,18 +74,17 @@ class ErrorOnTemperatureSpikeTest extends Specification { ) } - "Doesn't error on negative spiked values (single sensor)" >> { + "Negative spikes values (single sensor)" >> { val delegate = new StubWriter val writer = new ErrorOnTemperatureSpike(delegate) writer.write(Measurement(Host("example"), Seconds(1), List(SensorReading("A", Temperature(21.1))))) writer.write(Measurement(Host("example"), Seconds(2), List(SensorReading("A", Temperature(21.4))))) writer.write(Measurement(Host("example"), Seconds(3), List(SensorReading("A", Temperature(21.6))))) - writer.write(Measurement(Host("example"), Seconds(4), List(SensorReading("A", Temperature(1.1))))) must be_\/- + writer.write(Measurement(Host("example"), Seconds(4), List(SensorReading("A", Temperature(1.1))))) must be_-\/.like(SensorError) delegate.temperatures must_== List( Measurement(Host("example"), Seconds(1), List(SensorReading("A", Temperature(21.1)))), Measurement(Host("example"), Seconds(2), List(SensorReading("A", Temperature(21.4)))), Measurement(Host("example"), Seconds(3), List(SensorReading("A", Temperature(21.6)))), - Measurement(Host("example"), Seconds(4), List(SensorReading("A", Temperature(1.1)))) ) }