From ebe12dc432b662365c1852174aafb14c582f11ce Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Mon, 13 May 2024 14:30:28 +0200 Subject: [PATCH] chore(test): add test --- .../measure/OngoingPowerMeasureTest.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 measure/src/test/java/net/laprun/sustainability/power/measure/OngoingPowerMeasureTest.java diff --git a/measure/src/test/java/net/laprun/sustainability/power/measure/OngoingPowerMeasureTest.java b/measure/src/test/java/net/laprun/sustainability/power/measure/OngoingPowerMeasureTest.java new file mode 100644 index 0000000..bde26e5 --- /dev/null +++ b/measure/src/test/java/net/laprun/sustainability/power/measure/OngoingPowerMeasureTest.java @@ -0,0 +1,52 @@ +package net.laprun.sustainability.power.measure; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +import net.laprun.sustainability.power.SensorMetadata; + +public class OngoingPowerMeasureTest { + + @Test + void testStatistics() { + final var m1c1 = 10.0; + final var m1c2 = 12.0; + final var m2c1 = 8.0; + final var m2c2 = 17.0; + final var metadata = new SensorMetadata(null, null) { + + @Override + public int componentCardinality() { + return 2; + } + }; + final var measure = new OngoingPowerMeasure(metadata, 1, 500); + + final var components = new double[metadata.componentCardinality()]; + components[0] = m1c1; + components[1] = m1c2; + measure.recordMeasure(components); + + components[0] = m2c1; + components[1] = m2c2; + measure.recordMeasure(components); + + assertEquals(m1c1 + m1c2 + m2c1 + m2c2, measure.total()); + assertEquals((m1c1 + m1c2 + m2c1 + m2c2) / 2, measure.average()); + assertEquals(Math.min(m1c1 + m1c2, m2c1 + m2c2), measure.minMeasuredTotal()); + assertEquals(Math.max(m1c1 + m1c2, m2c1 + m2c2), measure.maxMeasuredTotal()); + final var c1Avg = measure.averagesPerComponent()[0]; + final var c2Avg = measure.averagesPerComponent()[1]; + assertEquals((m1c1 + m2c1) / 2, c1Avg); + assertEquals((m1c2 + m2c2) / 2, c2Avg); + + final var stdVarForC1 = Math.sqrt(Math.pow(m1c1 - c1Avg, 2) + Math.pow(m2c1 - c1Avg, 2)); + final var stdVarForC2 = Math.sqrt(Math.pow(m1c2 - c2Avg, 2) + Math.pow(m2c2 - c2Avg, 2)); + + assertEquals(stdVarForC1, measure.standardDeviations().perComponent()[0], 0.0001, + "Standard Deviation did not match the expected value"); + assertEquals(stdVarForC2, measure.standardDeviations().perComponent()[1], 0.0001, + "Standard Deviation did not match the expected value"); + } +}