From 8187f024bae57267af514c5dcb730de09e573e41 Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Mon, 1 Jun 2015 11:41:16 +1000 Subject: Move packages, make lists shrink in size, generate lists instead of arrays as the 'primitive' operation (issues with generics) --- src/main/java/au/id/zancanaro/Generator.java | 35 ---------------------------- 1 file changed, 35 deletions(-) delete mode 100644 src/main/java/au/id/zancanaro/Generator.java (limited to 'src/main/java/au/id/zancanaro/Generator.java') diff --git a/src/main/java/au/id/zancanaro/Generator.java b/src/main/java/au/id/zancanaro/Generator.java deleted file mode 100644 index 1c948af..0000000 --- a/src/main/java/au/id/zancanaro/Generator.java +++ /dev/null @@ -1,35 +0,0 @@ -package au.id.zancanaro; - -import java.util.Random; -import java.util.function.Function; - -public interface Generator { - RoseTree generate(Random random, int size); - - static Generator pure(T value) { - return (random, size) -> RoseTree.pure(value); - } - - @SafeVarargs - static Generator tuple(Generator... generators) { - return (random, size) -> { - @SuppressWarnings("unchecked") - RoseTree[] result = (RoseTree[]) new RoseTree[generators.length]; - int index = 0; - for (Generator generator : generators) { - result[index++] = generator.generate(random, size); - } - return RoseTree.zip(Function.identity(), result); - }; - } - - default Generator fmap(Function f) { - return (random, size) -> this.generate(random, size).fmap(f); - } - - default Generator flatMap(Function> action) { - return (random, size) -> { - return RoseTree.join(this.generate(random, size).fmap(action).fmap(g -> g.generate(random, size))); - }; - } -} -- cgit v1.2.3