aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--process_output.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/process_output.java b/process_output.java
index 4349872..655b514 100644
--- a/process_output.java
+++ b/process_output.java
@@ -17,8 +17,10 @@
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
+import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
+import java.time.Duration;
public class process_output {
@@ -63,5 +65,25 @@ public class process_output {
.map(t -> t.substring(5))
.map(t -> t.replace("s", "").replace("m", ":"))
.collect(Collectors.joining(System.lineSeparator())));
+
+ var asDurations = times.stream()
+ .map(t -> t.substring(5))
+ .map(t -> t.replace("s", "S").replace("m", "M"))
+ .map(t -> "PT" + t)
+ .map(Duration::parse)
+ .collect(Collectors.toList());
+
+ var min = asDurations.stream().min(Comparator.naturalOrder()).get();
+ var max = asDurations.stream().max(Comparator.naturalOrder()).get();
+
+ var evaluated = asDurations.stream()
+ .filter(d -> d != min && d != max)
+ .collect(Collectors.toList());
+
+ var mean = evaluated.get(0).plus(evaluated.get(1)).plus(evaluated.get(2)).dividedBy(3);
+ var result = String.format("%02d:%02d.%03d", mean.toMinutesPart(), mean.toSecondsPart(), mean.toMillisPart());
+ var author = actualFile.replace(".out", "");
+
+ System.out.println(String.format("\n| | %s| [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_%s.java)| 21.0.1-open | [%s](https://github.com/%s)|", result, author, author, author));
}
}