44 assertFalse(countTo(10).stream().filter(x -> x > 10).findAny().isPresent(), "no result");
45 assertTrue(countTo(10).stream().filter(pEven).findAny().isPresent(), "with result");
46 }
47
48 public void testFindAnyParallel() {
49 assertFalse(Collections.emptySet().parallelStream().findAny().isPresent(), "no result");
50 assertFalse(countTo(1000).parallelStream().filter(x -> x > 1000).findAny().isPresent(), "no result");
51 assertTrue(countTo(1000).parallelStream().filter(pEven).findAny().isPresent(), "with result");
52 }
53
54 @Test(dataProvider = "StreamTestData<Integer>", dataProviderClass = StreamTestDataProvider.class)
55 public void testStream(String name, TestData.OfRef<Integer> data) {
56 exerciseStream(data, s -> s);
57 exerciseStream(data, s -> s.filter(pTrue));
58 exerciseStream(data, s -> s.filter(pFalse));
59 exerciseStream(data, s -> s.filter(pEven));
60 }
61
62 void exerciseStream(TestData.OfRef<Integer> data, Function<Stream<Integer>, Stream<Integer>> fs) {
63 Optional<Integer> or = withData(data).terminal(fs, s -> s.findAny()).equalator(VALID_ANSWER).exercise();
64 if (or.isPresent()) {
65 Integer r = or.get();
66 Iterator<Integer> it = fs.apply(data.stream()).iterator();
67 boolean contained = false;
68 while (!contained && it.hasNext()) {
69 contained = Objects.equals(r, it.next());
70 }
71 assertTrue(contained);
72 }
73 else {
74 assertFalse(fs.apply(data.stream()).iterator().hasNext());
75 }
76 }
77
78 @Test(dataProvider = "IntStreamTestData", dataProviderClass = IntStreamTestDataProvider.class)
79 public void testIntStream(String name, TestData.OfInt data) {
80 exerciseIntStream(data, s -> s);
81 exerciseIntStream(data, s -> s.filter(ipTrue));
82 exerciseIntStream(data, s -> s.filter(ipFalse));
83 exerciseIntStream(data, s -> s.filter(ipEven));
84 }
85
86 void exerciseIntStream(TestData.OfInt data, Function<IntStream, IntStream> fs) {
87 OptionalInt or = withData(data).terminal(fs, s -> s.findAny()).equalator(INT_VALID_ANSWER).exercise();
88 if (or.isPresent()) {
89 int r = or.getAsInt();
90 PrimitiveIterator.OfInt it = fs.apply(data.stream()).iterator();
91 boolean contained = false;
92 while (!contained && it.hasNext()) {
93 contained = r == it.nextInt();
94 }
95 assertTrue(contained);
|
44 assertFalse(countTo(10).stream().filter(x -> x > 10).findAny().isPresent(), "no result");
45 assertTrue(countTo(10).stream().filter(pEven).findAny().isPresent(), "with result");
46 }
47
48 public void testFindAnyParallel() {
49 assertFalse(Collections.emptySet().parallelStream().findAny().isPresent(), "no result");
50 assertFalse(countTo(1000).parallelStream().filter(x -> x > 1000).findAny().isPresent(), "no result");
51 assertTrue(countTo(1000).parallelStream().filter(pEven).findAny().isPresent(), "with result");
52 }
53
54 @Test(dataProvider = "StreamTestData<Integer>", dataProviderClass = StreamTestDataProvider.class)
55 public void testStream(String name, TestData.OfRef<Integer> data) {
56 exerciseStream(data, s -> s);
57 exerciseStream(data, s -> s.filter(pTrue));
58 exerciseStream(data, s -> s.filter(pFalse));
59 exerciseStream(data, s -> s.filter(pEven));
60 }
61
62 void exerciseStream(TestData.OfRef<Integer> data, Function<Stream<Integer>, Stream<Integer>> fs) {
63 Optional<Integer> or = withData(data).terminal(fs, s -> s.findAny()).equalator(VALID_ANSWER).exercise();
64 assertContains(or, fs.apply(data.stream()).iterator());
65 }
66
67 @Test(dataProvider = "IntStreamTestData", dataProviderClass = IntStreamTestDataProvider.class)
68 public void testIntStream(String name, TestData.OfInt data) {
69 exerciseIntStream(data, s -> s);
70 exerciseIntStream(data, s -> s.filter(ipTrue));
71 exerciseIntStream(data, s -> s.filter(ipFalse));
72 exerciseIntStream(data, s -> s.filter(ipEven));
73 }
74
75 void exerciseIntStream(TestData.OfInt data, Function<IntStream, IntStream> fs) {
76 OptionalInt or = withData(data).terminal(fs, s -> s.findAny()).equalator(INT_VALID_ANSWER).exercise();
77 if (or.isPresent()) {
78 int r = or.getAsInt();
79 PrimitiveIterator.OfInt it = fs.apply(data.stream()).iterator();
80 boolean contained = false;
81 while (!contained && it.hasNext()) {
82 contained = r == it.nextInt();
83 }
84 assertTrue(contained);
|