diff --git a/primitiveCollections/src/test/java/org/lucares/collections/BenchmarkHarness.java b/primitiveCollections/src/test/java/org/lucares/collections/BenchmarkHarness.java deleted file mode 100644 index dcb1249..0000000 --- a/primitiveCollections/src/test/java/org/lucares/collections/BenchmarkHarness.java +++ /dev/null @@ -1,129 +0,0 @@ -package org.lucares.collections; - -import java.util.ArrayList; -import java.util.DoubleSummaryStatistics; -import java.util.List; -import java.util.stream.IntStream; - -public class BenchmarkHarness { - - static class IntListPair { - IntList a, b; - } - - interface Generator { - T generateInput(); - } - - interface Invocation { - void run(T input); - } - - static class SortedListGenerator implements Generator { - - private final int size; - - public SortedListGenerator(final int size) { - this.size = size; - } - - @Override - public IntList generateInput() { - - final IntList result = IntList.of(); - IntStream.range(0, size).forEachOrdered(i -> result.add(i)); - result.sort(); - return result; - } - }; - - static class UnsortedListGenerator implements Generator { - - private final int size; - - public UnsortedListGenerator(final int size) { - this.size = size; - } - - @Override - public IntList generateInput() { - final SortedListGenerator sortedListGenerator = new SortedListGenerator(size); - final IntList list = sortedListGenerator.generateInput(); - list.shuffle(); - return list; - } - }; - - static class ListPairGenerator implements Generator { - - private final Generator generatorA; - private final Generator generatorB; - - public ListPairGenerator(final Generator generator) { - this(generator, generator); - } - - public ListPairGenerator(final Generator generatorA, final Generator generatorB) { - this.generatorA = generatorA; - this.generatorB = generatorB; - } - - @Override - public IntListPair generateInput() { - final IntListPair result = new IntListPair(); - - result.a = generatorA.generateInput(); - result.b = generatorB.generateInput(); - - return result; - } - } - - public

void test(final String name, final Generator

generator, final Invocation

invoker, - final int iterations) { - - final List durationsInMs = new ArrayList<>(); - - for (int i = 0; i < iterations; i++) { - final P input = generator.generateInput(); - - final long start = System.nanoTime(); - - invoker.run(input); - - final long duration = (System.nanoTime() - start); - - durationsInMs.add(duration / 1_000_000.0); - } - - final DoubleSummaryStatistics statistics = durationsInMs.stream().mapToDouble(l -> l).summaryStatistics(); - - System.out.println(name + ": " + statistics.toString()); - - } - - public static void main(final String[] args) { - final BenchmarkHarness harness = new BenchmarkHarness<>(); - - final IntList sizes = IntList.of(10, 100, 1000, 10_000, 100_000); - - for (int l = 0; l < sizes.size(); l++) { - - final int size = sizes.get(l); - - final Generator generatorSorted = new SortedListGenerator(size); - final Generator generatorUnsorted = new UnsortedListGenerator(size); - final Generator generatorSortedPair = new ListPairGenerator(generatorSorted); - final Generator generatorUnsortedPair = new ListPairGenerator(generatorUnsorted); - - final Invocation union = p -> IntList.union(p.a, p.b); - - for (int i = 0; i < 5; i++) { - harness.test("union(" + size + "): unsorted" + i, generatorUnsortedPair, union, 100); - } - for (int i = 0; i < 5; i++) { - harness.test("union(" + size + "): sorted" + i, generatorSortedPair, union, 100); - } - } - } -}