|
1 | 1 | package fj.test; |
2 | 2 |
|
3 | 3 | import fj.data.List; |
| 4 | +import fj.data.Stream; |
4 | 5 | import fj.function.Effect1; |
5 | 6 | import org.junit.Test; |
6 | 7 |
|
7 | 8 | import static fj.Ord.charOrd; |
8 | 9 | import static fj.data.List.list; |
9 | 10 | import static fj.data.List.range; |
10 | | -import static fj.test.Gen.selectionOf; |
11 | 11 | import static fj.test.Gen.combinationOf; |
12 | | -import static fj.test.Gen.wordOf; |
13 | 12 | import static fj.test.Gen.permutationOf; |
| 13 | +import static fj.test.Gen.pickOne; |
| 14 | +import static fj.test.Gen.selectionOf; |
| 15 | +import static fj.test.Gen.streamOf; |
| 16 | +import static fj.test.Gen.wordOf; |
14 | 17 | import static fj.test.Rand.standard; |
15 | 18 | import static org.junit.Assert.assertEquals; |
16 | 19 | import static org.junit.Assert.assertTrue; |
@@ -175,6 +178,15 @@ public void testWordOf_four() { |
175 | 178 | }); |
176 | 179 | } |
177 | 180 |
|
| 181 | + @Test |
| 182 | + public void testStreamOf() { |
| 183 | + final Gen<Stream<Character>> instance = streamOf(pickOne(AS)); |
| 184 | + testPick(100, instance.map(stream -> stream.take(4).toList()), actual -> { |
| 185 | + assertEquals(4, actual.length()); |
| 186 | + assertTrue(actual.forall(actualA -> AS.exists(a -> a.equals(actualA)))); |
| 187 | + }); |
| 188 | + } |
| 189 | + |
178 | 190 | private static <A> void testPick(int n, Gen<List<A>> instance, Effect1<List<A>> test) { |
179 | 191 | range(0, n).map(ignore -> instance.gen(0, standard)).foreachDoEffect(test); |
180 | 192 | } |
|
0 commit comments