annotate src/test/java/fj/data/test/TestCheck.java @ 0:fe80c1edf1be

add getLoop
author tatsuki
date Fri, 20 Mar 2015 21:04:03 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
1 package fj.data.test;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
2
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
3 import fj.F2;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
4 import fj.F3;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
5 import fj.data.List;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
6 import fj.test.Arbitrary;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
7 import fj.test.CheckResult;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
8 import fj.test.Gen;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
9 import fj.test.Property;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
10 import org.junit.*;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
11
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
12 import static fj.Function.compose;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
13 import static fj.test.Arbitrary.*;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
14 import static fj.test.Arbitrary.arbLong;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
15 import static fj.test.Coarbitrary.coarbInteger;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
16 import static fj.test.Coarbitrary.coarbLong;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
17 import static fj.test.Property.prop;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
18 import static fj.test.Property.property;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
19 import static org.junit.Assert.*;
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
20
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
21 public class TestCheck {
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
22
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
23 @Test(timeout=1000 /*ms*/)
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
24 public void testExceptionsThrownFromGeneratorsArePropagated() {
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
25 Gen<Integer> failingGen = Gen.<Integer>value(0).map((i) -> {
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
26 throw new RuntimeException("test failure");
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
27 });
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
28
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
29 Property p = property(arbitrary(failingGen), (Integer i) -> {
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
30 return prop(i == 0);
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
31 });
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
32
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
33 CheckResult res = p.check(
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
34 1, /*minSuccessful*/
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
35 0, /*maxDiscarded*/
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
36 0, /*minSize*/
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
37 1 /*maxSize*/
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
38 );
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
39 assertTrue("Exception not propagated!", res.isGenException());
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
40 }
fe80c1edf1be add getLoop
tatsuki
parents:
diff changeset
41 }