diff options
| author | Gunnar Morling <gunnar.morling@googlemail.com> | 2024-01-07 09:24:21 +0100 |
|---|---|---|
| committer | Gunnar Morling <gunnar.morling@googlemail.com> | 2024-01-07 09:24:21 +0100 |
| commit | fe61b354fd5dc157489789e78dfb263462b6bf7a (patch) | |
| tree | 75f60373a6672cb9e6444624d46771fc1832a17b | |
| parent | f99d20b3da789860b14ced8f660879bd0aa02cb4 (diff) | |
Infra
| -rw-r--r-- | process_output.java | 22 |
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)); } } |
