diff --git a/analysis/src/test/java/ComputeTest.java b/analysis/src/test/java/ComputeTest.java index c693b6f..9c4283e 100644 --- a/analysis/src/test/java/ComputeTest.java +++ b/analysis/src/test/java/ComputeTest.java @@ -10,7 +10,6 @@ import net.laprun.sustainability.power.analysis.Compute; import net.laprun.sustainability.power.analysis.MeanComponentProcessor; import net.laprun.sustainability.power.measure.OngoingPowerMeasure; -import net.laprun.sustainability.power.measure.PowerMeasure; public class ComputeTest { private final static SensorMetadata metadata = SensorMetadata @@ -115,7 +114,5 @@ void averageShouldWork() { assertEquals(0, c3Avg, 0.0001, "Average did not match the expected value"); assertEquals(0, avgProc3.mean()); - - System.out.println(PowerMeasure.asString(measure)); } } diff --git a/measure/src/main/java/net/laprun/sustainability/power/analysis/DefaultProcessors.java b/measure/src/main/java/net/laprun/sustainability/power/analysis/DefaultProcessors.java index 2707ef2..7e58165 100644 --- a/measure/src/main/java/net/laprun/sustainability/power/analysis/DefaultProcessors.java +++ b/measure/src/main/java/net/laprun/sustainability/power/analysis/DefaultProcessors.java @@ -8,6 +8,7 @@ public class DefaultProcessors implements Processors { private final List[] processors; + private boolean hasComponentProcessors = false; private List measureProcessors; @SuppressWarnings("unchecked") @@ -39,6 +40,7 @@ public void registerProcessorFor(int componentIndex, ComponentProcessor processo processors[componentIndex] = processorsForComponent; } processorsForComponent.add(processor); + hasComponentProcessors = true; } } @@ -66,13 +68,25 @@ public List measureProcessors() { @Override public String output(SensorMetadata metadata) { StringBuilder builder = new StringBuilder(); - builder.append("# Component Processors\n"); - for (int i = 0; i < processors.length; i++) { - final var name = metadata.metadataFor(i).name(); - builder.append(" - ").append(name).append(" component:\n"); - for (var processor : processorsFor(i)) { - builder.append(" * ").append(processor.name()) - .append(": ").append(processor.output()).append("\n"); + final var measureProcs = measureProcessors(); + if (!measureProcs.isEmpty()) { + builder.append("# Measure Processors\n"); + for (var processor : measureProcs) { + builder.append(" * ").append(processor.name()).append(": ").append(processor.output()).append("\n"); + } + } + if (hasComponentProcessors) { + builder.append("# Component Processors\n"); + for (int i = 0; i < processors.length; i++) { + final var componentProcessors = processorsFor(i); + if (!componentProcessors.isEmpty()) { + final var name = metadata.metadataFor(i).name(); + builder.append(" - ").append(name).append(" component:\n"); + for (var processor : componentProcessors) { + builder.append(" * ").append(processor.name()) + .append(": ").append(processor.output()).append("\n"); + } + } } } return builder.toString(); diff --git a/measure/src/main/java/net/laprun/sustainability/power/analysis/Outputable.java b/measure/src/main/java/net/laprun/sustainability/power/analysis/Outputable.java index 258b48a..b4733b8 100644 --- a/measure/src/main/java/net/laprun/sustainability/power/analysis/Outputable.java +++ b/measure/src/main/java/net/laprun/sustainability/power/analysis/Outputable.java @@ -2,7 +2,8 @@ public interface Outputable { default String name() { - return this.getClass().getSimpleName(); + final var simpleName = this.getClass().getSimpleName(); + return !simpleName.isBlank() ? simpleName : this.getClass().getName(); } default String output() { diff --git a/measure/src/main/java/net/laprun/sustainability/power/analysis/TotalMeasureProcessor.java b/measure/src/main/java/net/laprun/sustainability/power/analysis/TotalMeasureProcessor.java index db2271b..154d2af 100644 --- a/measure/src/main/java/net/laprun/sustainability/power/analysis/TotalMeasureProcessor.java +++ b/measure/src/main/java/net/laprun/sustainability/power/analysis/TotalMeasureProcessor.java @@ -59,7 +59,7 @@ public double total() { } public double minMeasuredTotal() { - return convertToExpectedUnit(minTotal); + return minTotal == Double.MAX_VALUE ? 0.0 : convertToExpectedUnit(minTotal); } public double maxMeasuredTotal() { @@ -80,7 +80,8 @@ public String name() { @Override public String output() { - return MeasureProcessor.super.output(); + final var symbol = expectedResultUnit.symbol(); + return String.format("%.2f%s (min: %.2f / max: %.2f)", total(), symbol, minMeasuredTotal(), maxMeasuredTotal()); } @Override diff --git a/measure/src/test/java/net/laprun/sustainability/power/analysis/TotalMeasureProcessorTest.java b/measure/src/test/java/net/laprun/sustainability/power/analysis/TotalMeasureProcessorTest.java index b078d57..1f2cc0b 100644 --- a/measure/src/test/java/net/laprun/sustainability/power/analysis/TotalMeasureProcessorTest.java +++ b/measure/src/test/java/net/laprun/sustainability/power/analysis/TotalMeasureProcessorTest.java @@ -68,6 +68,8 @@ void testTotal() { assertEquals(m1c1 + m1c2 + m1c3 + m2c1 + m2c2 + m2c3 + m3c1 + m3c2 + m3c3, totalProc.total()); assertEquals(Stream.of(m1total, m2total, m3total).min(Double::compareTo).orElseThrow(), totalProc.minMeasuredTotal()); assertEquals(Stream.of(m1total, m2total, m3total).max(Double::compareTo).orElseThrow(), totalProc.maxMeasuredTotal()); + + assertTrue(totalProc.output().contains("" + totalProc.total())); } }