From fef70631f4d1be56d772816af22778efebcc8391 Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Mon, 1 Jun 2015 12:47:05 +1000 Subject: Fix up list shrinking, remove minor superfluous things --- .../java/au/id/zancanaro/javacheck/Generators.java | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/main/java/au/id/zancanaro/javacheck/Generators.java') diff --git a/src/main/java/au/id/zancanaro/javacheck/Generators.java b/src/main/java/au/id/zancanaro/javacheck/Generators.java index ec6a329..9ced818 100644 --- a/src/main/java/au/id/zancanaro/javacheck/Generators.java +++ b/src/main/java/au/id/zancanaro/javacheck/Generators.java @@ -81,13 +81,11 @@ public final class Generators { } public static Generator> listOf(Generator gen) { - return sized(size -> - integer(0, size).flatMap(count -> { - @SuppressWarnings("unchecked") - Generator[] gens = (Generator[]) new Generator[count]; - Arrays.fill(gens, gen); - return Generator.tuple(gens); - })).fmap(Collections::unmodifiableList); + return (random, size) -> { + Generator countGen = sized(s -> integer(0, s)); + int count = countGen.generate(random, size).getValue(); + return Generator.list(count, gen).generate(random, size); + }; } public static Generator character() { @@ -124,12 +122,14 @@ public final class Generators { } public static Generator stringOf(Generator charGen) { - return Generators.listOf(charGen).fmap(list -> { - StringBuilder builder = new StringBuilder(list.size()); - for (Object c : list) { - builder.append(c); + return listOf(charGen).fmap(list -> { + char[] chars = new char[list.size()]; + int i = 0; + for (Character c : list) { + chars[i++] = c; } - return builder.toString(); + return String.valueOf(chars); +// return new String(chars); }); } } -- cgit v1.2.3