Skip to content

Commit d011bf1

Browse files
committed
Remove use of Arbitrary wrapper
1 parent efe666a commit d011bf1

18 files changed

Lines changed: 513 additions & 546 deletions

File tree

demo/src/main/java/fj/demo/test/EqualsHashCode.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package fj.demo.test;
22

33
import static fj.Function.curry;
4-
import fj.test.Arbitrary;
4+
import fj.test.Gen;
55
import static fj.test.Arbitrary.arbByte;
66
import static fj.test.Arbitrary.arbCharacter;
7-
import static fj.test.Arbitrary.arbitrary;
87
import static fj.test.Bool.bool;
98
import static fj.test.CheckResult.summary;
109
import fj.test.Property;
@@ -55,14 +54,14 @@ public int hashCode() {
5554

5655
public static void main(final String[] args) {
5756
// Restrictive arbitrary for Byte, produces from three possible values.
58-
final Arbitrary<Byte> arbByteR = arbitrary(arbByte.gen.map(b -> (byte)(b % 3)));
57+
final Gen<Byte> arbByteR = arbByte.map(b -> (byte)(b % 3));
5958

6059
// Restrictive arbitrary for String, produces from twelve (2 * 3 * 2) possible values.
61-
final Arbitrary<String> arbStringR = arbitrary(arbCharacter.gen.bind(arbCharacter.gen, arbCharacter.gen, curry((c1, c2, c3) -> new String(new char[]{(char)(c1 % 2 + 'a'), (char)(c2 % 3 + 'a'), (char)(c3 % 2 + 'a')}))));
60+
final Gen<String> arbStringR = arbCharacter.bind(arbCharacter, arbCharacter, curry((c1, c2, c3) -> new String(new char[]{(char)(c1 % 2 + 'a'), (char)(c2 % 3 + 'a'), (char)(c3 % 2 + 'a')})));
6261

6362
// Arbitrary for MyClass that uses the restrictive arbitraries above.
6463
// We are using the monad pattern (bind) to make this a trivial exercise.
65-
final Arbitrary<MyClass> arbMyClass = arbitrary(arbByteR.gen.bind(arbStringR.gen, curry(MyClass::new)));
64+
final Gen<MyClass> arbMyClass = arbByteR.bind(arbStringR, curry(MyClass::new));
6665

6766
// Finally the property.
6867
// if m1 equals m2, then this implies that m1's hashCode is equal to m2's hashCode.

props-core/src/test/java/fj/data/ReaderTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public void testMapProp() {
5252

5353
@Test
5454
public void testFlatMapProp() {
55-
Arbitrary<F<Integer, Reader<Integer, Integer>>> a = arbF(coarbInteger, arbReader());
55+
Gen<F<Integer, Reader<Integer, Integer>>> a = arbF(coarbInteger, arbReader());
5656
Property p = property(
5757
arbF(coarbInteger, arbInteger),
5858
a,
@@ -108,7 +108,7 @@ public void testAssociativity() {
108108
PropertyAssert.assertResult(p);
109109
}
110110

111-
public Arbitrary<Reader<Integer, Integer>> arbReader() {
111+
public Gen<Reader<Integer, Integer>> arbReader() {
112112
return Arbitrary.arbReader(coarbInteger, arbInteger);
113113
}
114114

props-core/src/test/java/fj/data/TestRngState.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,19 +79,19 @@ public void testTraverse() {
7979
Assert.assertTrue(listIntEqual.eq(list, expected));
8080
}
8181

82-
public static Arbitrary<State<LcgRng, Integer>> arbState() {
82+
public static Gen<State<LcgRng, Integer>> arbState() {
8383
return Arbitrary.arbState(Arbitrary.arbLcgRng(), Coarbitrary.coarbLcgRng(), arbInteger);
8484
}
8585

86-
public static Arbitrary<F<LcgRng, P2<LcgRng, Integer>>> arbStateF() {
86+
public static Gen<F<LcgRng, P2<LcgRng, Integer>>> arbStateF() {
8787
return arbF(Coarbitrary.coarbLcgRng(), arbP2(arbLcgRng(), arbInteger));
8888
}
8989

9090
public static Coarbitrary<State<LcgRng, Integer>> coarbState() {
9191
return Coarbitrary.coarbState(Arbitrary.arbLcgRng(), (LcgRng s, Integer j) -> (long) (j >= 0 ? 2 * j : -2 * j + 1));
9292
}
9393

94-
public static Arbitrary<F<Integer, State<LcgRng, Integer>>> arbBindable() {
94+
public static Gen<F<Integer, State<LcgRng, Integer>>> arbBindable() {
9595
return arbF(coarbInteger, arbState());
9696
}
9797

props-core/src/test/java/fj/data/WriterTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import fj.F;
55
import fj.data.test.PropertyAssert;
66
import fj.test.Arbitrary;
7+
import fj.test.Gen;
78
import fj.test.Property;
89
import org.junit.Assert;
910
import org.junit.Test;
@@ -62,12 +63,12 @@ public void testFlatMap() {
6263

6364
}
6465

65-
public Arbitrary<Writer<String, Integer>> arbWriterStringInt() {
66+
public Gen<Writer<String, Integer>> arbWriterStringInt() {
6667
return arbWriterString(arbInteger);
6768
}
6869

69-
public <A> Arbitrary<Writer<String, A>> arbWriterString(Arbitrary<A> arb) {
70-
return Arbitrary.arbitrary(arb.gen.map(a -> Writer.<A>stringLogger().f(a)));
70+
public <A> Gen<Writer<String, A>> arbWriterString(Gen<A> arb) {
71+
return arb.map(a -> Writer.<A>stringLogger().f(a));
7172
}
7273

7374
// Left identity: return a >>= f == f a

props-core/src/test/java/fj/data/properties/ArrayProperties.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import fj.*;
44
import fj.data.Array;
55
import fj.data.Either;
6-
import fj.test.Arbitrary;
76
import fj.test.Gen;
87
import fj.test.Property;
98
import fj.test.reflect.CheckParams;
@@ -31,9 +30,9 @@ public class ArrayProperties {
3130

3231
private static final Equal<Array<Integer>> eq = arrayEqual(intEqual);
3332

34-
private static final Arbitrary<P2<Array<Integer>, Integer>> arbArrayWithIndex = arbitrary(arbArray(arbInteger).gen
33+
private static final Gen<P2<Array<Integer>, Integer>> arbArrayWithIndex = arbArray(arbInteger)
3534
.filter(Array::isNotEmpty)
36-
.bind(array -> Gen.choose(0, array.length() - 1).map(i -> P.p(array, i))));
35+
.bind(array -> Gen.choose(0, array.length() - 1).map(i -> P.p(array, i)));
3736

3837
public Property isEmpty() {
3938
return property(arbArray(arbInteger), array -> prop(array.isEmpty() != array.isNotEmpty()));

props-core/src/test/java/fj/data/properties/ListProperties.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import fj.data.List;
55
import fj.data.Stream;
66
import fj.data.TreeMap;
7-
import fj.test.Arbitrary;
87
import fj.test.reflect.CheckParams;
98
import fj.test.runner.PropertyTestRunner;
109
import fj.test.Gen;
@@ -36,9 +35,9 @@ public class ListProperties {
3635

3736
private static final Equal<List<Integer>> eq = listEqual(intEqual);
3837

39-
private static final Arbitrary<P2<List<Integer>, Integer>> arbListWithIndex = arbitrary(arbList(arbInteger).gen
38+
private static final Gen<P2<List<Integer>, Integer>> arbListWithIndex = arbList(arbInteger)
4039
.filter(List::isNotEmpty)
41-
.bind(list -> Gen.choose(0, list.length() - 1).map(i -> p(list, i))));
40+
.bind(list -> Gen.choose(0, list.length() - 1).map(i -> p(list, i)));
4241

4342
public Property isEmpty() {
4443
return property(arbList(arbInteger), list -> prop(list.isEmpty() != list.isNotEmpty()));
@@ -172,11 +171,11 @@ public Property appendLength() {
172171

173172
@CheckParams(minSize = 2, maxSize = 10000)
174173
public Property indexTail() {
175-
final Gen<P2<List<Integer>, Integer>> gen = arbList(arbInteger).gen
174+
final Gen<P2<List<Integer>, Integer>> gen = arbList(arbInteger)
176175
.filter(list -> list.length() > 1)
177176
.bind(list -> Gen.choose(1, list.length() - 1).map(i -> p(list, i)));
178177

179-
return property(Arbitrary.arbitrary(gen), pair -> {
178+
return property(gen, pair -> {
180179
final List<Integer> list = pair._1();
181180
final int i = pair._2();
182181
return prop(intEqual.eq(list.index(i), list.tail().index(i - 1)));
@@ -277,17 +276,17 @@ public Property groupByMonoid() {
277276
}
278277

279278
public Property isPrefixOf() {
280-
final Gen<P2<List<Integer>, Integer>> gen = arbList(arbInteger).gen.bind(list ->
279+
final Gen<P2<List<Integer>, Integer>> gen = arbList(arbInteger).bind(list ->
281280
Gen.choose(0, list.length()).map(i -> p(list, i)));
282281

283-
return property(arbitrary(gen), pair -> prop(pair._1().take(pair._2()).isPrefixOf(intEqual, pair._1())));
282+
return property(gen, pair -> prop(pair._1().take(pair._2()).isPrefixOf(intEqual, pair._1())));
284283
}
285284

286285
public Property isSuffixOf() {
287-
final Gen<P2<List<Integer>, Integer>> gen = arbList(arbInteger).gen.bind(list ->
286+
final Gen<P2<List<Integer>, Integer>> gen = arbList(arbInteger).bind(list ->
288287
Gen.choose(0, list.length()).map(i -> p(list, i)));
289288

290-
return property(arbitrary(gen), pair -> prop(pair._1().drop(pair._2()).isSuffixOf(intEqual, pair._1())));
289+
return property(gen, pair -> prop(pair._1().drop(pair._2()).isSuffixOf(intEqual, pair._1())));
291290
}
292291

293292
public Property isPrefixOfShorter() {

props-core/src/test/java/fj/data/properties/SeqProperties.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import fj.data.Seq;
77
import fj.test.reflect.CheckParams;
88
import fj.test.runner.PropertyTestRunner;
9-
import fj.test.Arbitrary;
109
import fj.test.Gen;
1110
import fj.test.Property;
1211
import org.junit.runner.RunWith;
@@ -21,9 +20,9 @@
2120
@CheckParams(maxSize = 10000)
2221
public class SeqProperties {
2322

24-
private static final Arbitrary<P2<Seq<Integer>, Integer>> arbSeqWithIndex = arbitrary(arbSeq(arbInteger).gen
23+
private static final Gen<P2<Seq<Integer>, Integer>> arbSeqWithIndex = arbSeq(arbInteger)
2524
.filter(Seq::isNotEmpty)
26-
.bind(seq -> Gen.choose(0, seq.length() - 1).map(i -> P.p(seq, i))));
25+
.bind(seq -> Gen.choose(0, seq.length() - 1).map(i -> P.p(seq, i)));
2726

2827
public Property consHead() {
2928
return property(arbSeq(arbInteger), arbInteger, (seq, n) -> prop(seq.cons(n).head().equals(n)));
@@ -107,12 +106,12 @@ public Property delete() {
107106
}
108107

109108
public Property foldLeft() {
110-
return property(arbSeq(arbitrary(Gen.value(1))), seq ->
109+
return property(arbSeq(Gen.value(1)), seq ->
111110
prop(seq.foldLeft((acc, i) -> acc + i, 0) == seq.length()));
112111
}
113112

114113
public Property foldRight() {
115-
return property(arbSeq(arbitrary(Gen.value(1))), seq ->
114+
return property(arbSeq(Gen.value(1)), seq ->
116115
prop(seq.foldRight((i, acc) -> acc + i, 0) == seq.length()));
117116
}
118117

props-core/src/test/java/fj/data/properties/SetProperties.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import fj.data.Set;
77
import fj.data.Stream;
88
import fj.test.Arbitrary;
9+
import fj.test.Gen;
910
import fj.test.Property;
1011
import fj.test.reflect.CheckParams;
1112
import fj.test.runner.PropertyTestRunner;
@@ -22,7 +23,7 @@
2223
public class SetProperties {
2324

2425
public final static int maxSize = 20;
25-
public final static Arbitrary<Set<Integer>> as = Arbitrary.arbSet(Ord.intOrd, Arbitrary.arbInteger, maxSize);
26+
public final static Gen<Set<Integer>> as = Arbitrary.arbSet(Ord.intOrd, Arbitrary.arbInteger, maxSize);
2627
public final static Equal<List<Integer>> eq = Equal.listEqual(Equal.intEqual);
2728

2829
Property setToListIsSorted() {

props-core/src/test/java/fj/data/properties/StreamProperties.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import fj.*;
44
import fj.data.Either;
55
import fj.data.Stream;
6-
import fj.test.Arbitrary;
76
import fj.test.Gen;
87
import fj.test.Property;
98
import fj.test.reflect.CheckParams;
@@ -170,11 +169,11 @@ public Property reverse() {
170169

171170
@CheckParams(minSize = 2, maxSize = 10000)
172171
public Property indexTail() {
173-
final Gen<P2<Stream<Integer>, Integer>> gen = arbStream(arbInteger).gen
172+
final Gen<P2<Stream<Integer>, Integer>> gen = arbStream(arbInteger)
174173
.filter(stream -> stream.length() > 1)
175174
.bind(stream -> Gen.choose(1, stream.length() - 1).map(i -> P.p(stream, i)));
176175

177-
return property(Arbitrary.arbitrary(gen), pair -> {
176+
return property(gen, pair -> {
178177
final Stream<Integer> stream = pair._1();
179178
final int i = pair._2();
180179
return prop(intEqual.eq(stream.index(i), stream.tail()._1().index(i - 1)));

props-core/src/test/java/fj/data/properties/TreeMapProperties.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import fj.data.List;
77
import fj.data.Stream;
88
import fj.data.TreeMap;
9-
import fj.test.Arbitrary;
109
import fj.test.Gen;
1110
import fj.test.Property;
1211
import fj.test.reflect.CheckParams;
@@ -33,8 +32,8 @@ public class TreeMapProperties {
3332

3433
private static final int smallMax = 5;
3534
private static final int midMax = 20;
36-
public static final Arbitrary<TreeMap<Integer, String>> smallArbTreeMapIS = arbTreeMap(intOrd, arbInteger, arbString, smallMax);
37-
public static final Arbitrary<TreeMap<Integer, String>> arbTreeMapIS = arbTreeMap(intOrd, arbInteger, arbString, midMax);
35+
public static final Gen<TreeMap<Integer, String>> smallArbTreeMapIS = arbTreeMap(intOrd, arbInteger, arbString, smallMax);
36+
public static final Gen<TreeMap<Integer, String>> arbTreeMapIS = arbTreeMap(intOrd, arbInteger, arbString, midMax);
3837
public static final Ord<P2<Integer, String>> p2Ord = Ord.p2Ord1(Ord.intOrd);
3938
Equal<List<P2<Integer, String>>> listEq = Equal.listEqual(p2Equal(intEqual, stringEqual));
4039

0 commit comments

Comments
 (0)