1a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin/* 2a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. 3a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * 5a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * This code is free software; you can redistribute it and/or modify it 6a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * under the terms of the GNU General Public License version 2 only, as 7a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * published by the Free Software Foundation. 8a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * 9a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * This code is distributed in the hope that it will be useful, but WITHOUT 10a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * version 2 for more details (a copy is included in the LICENSE file that 13a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * accompanied this code). 14a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * 15a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * You should have received a copy of the GNU General Public License version 16a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * 2 along with this work; if not, write to the Free Software Foundation, 17a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * 19a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * or visit www.oracle.com if you need additional information or have any 21a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * questions. 22a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin */ 23a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkinpackage java.util.stream; 24a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 25a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkinimport org.testng.annotations.Test; 26a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 27a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkinimport java.util.function.Function; 28a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 29a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkinimport static org.testng.Assert.fail; 30a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 31a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin/** 32a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * StreamReuseTest 33a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * 34a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin * @author Brian Goetz 35a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin */ 36a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin@Test 37a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkinpublic class StreamReuseTest { 38a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 39a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin private <T, U, E, S extends BaseStream<E, S>, D extends TestData<E, S>> void assertSecondFails( 40a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin D data, 41a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Function<S, T> first, 42a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Function<S, U> second, 43a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Class<? extends Throwable> exception, 44a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin String text) { 45a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin S stream = data.stream(); 46a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin T fr = first.apply(stream); 47a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin try { 48a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin U sr = second.apply(stream); 49a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin fail(text + " (seq)"); 50a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 51a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin catch (Throwable e) { 52a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin if (exception.isAssignableFrom(e.getClass())) { 53a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin // Expected 54a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 55a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin else if (e instanceof Error) 56a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin throw (Error) e; 57a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin else if (e instanceof RuntimeException) 58a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin throw (RuntimeException) e; 59a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin else 60a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin throw new AssertionError("Unexpected exception " + e.getClass(), e); 61a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 62a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 63a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin stream = data.parallelStream(); 64a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin fr = first.apply(stream); 65a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin try { 66a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin U sr = second.apply(stream); 67a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin fail(text + " (par)"); 68a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 69a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin catch (Throwable e) { 70a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin if (exception.isAssignableFrom(e.getClass())) { 71a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin // Expected 72a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 73a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin else if (e instanceof Error) 74a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin throw (Error) e; 75a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin else if (e instanceof RuntimeException) 76a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin throw (RuntimeException) e; 77a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin else 78a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin throw new AssertionError("Unexpected exception " + e.getClass(), e); 79a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 80a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 81a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 82a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin // Stream 83a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 84a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "StreamTestData<Integer>", dataProviderClass = StreamTestDataProvider.class) 85a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoStreams(String name, TestData<Integer, Stream<Integer>> data) { 86a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 87a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (Stream<Integer> s) -> s.map(i -> i), (Stream<Integer> s) -> s.map(i -> i), 88a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 89a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream map / map succeeded erroneously"); 90a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 91a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::distinct, (Stream<Integer> s) -> s.map(i -> i), 92a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 93a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream distinct / map succeeded erroneously"); 94a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 95a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (Stream<Integer> s) -> s.map(i -> i), Stream::distinct, 96a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 97a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream map / distinct succeeded erroneously"); 98a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 99a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::distinct, Stream::distinct, 100a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 101a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream distinct / distinct succeeded erroneously"); 102a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 103a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 104a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "StreamTestData<Integer>", dataProviderClass = StreamTestDataProvider.class) 105a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoTerminals(String name, TestData<Integer, Stream<Integer>> data) { 106a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 107a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::findFirst, Stream::findFirst, 108a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 109a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream findFirst / findFirst succeeded erroneously"); 110a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 111a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 112a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "StreamTestData<Integer>", dataProviderClass = StreamTestDataProvider.class) 113a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTerminalStream(String name, TestData<Integer, Stream<Integer>> data) { 114a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 115a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::findFirst, (Stream<Integer> s) -> s.map(i -> i), 116a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 117a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream findFirst / map succeeded erroneously"); 118a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 119a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (Stream<Integer> s) -> s.map(i -> i), Stream::findFirst, 120a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 121a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream map / findFirst succeeded erroneously"); 122a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 123a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::findFirst, Stream::distinct, 124a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 125a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream findFirst / distinct succeeded erroneously"); 126a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 127a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::distinct, Stream::findFirst, 128a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 129a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream distinct / findFirst succeeded erroneously"); 130a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 131a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 132a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "StreamTestData<Integer>", dataProviderClass = StreamTestDataProvider.class) 133a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoIterators(String name, TestData<Integer, Stream<Integer>> data) { 134a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 135a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::iterator, Stream::iterator, 136a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 137a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream iterator / iterator succeeded erroneously"); 138a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 139a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 140a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "StreamTestData<Integer>", dataProviderClass = StreamTestDataProvider.class) 141a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTerminalIterator(String name, TestData<Integer, Stream<Integer>> data) { 142a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 143a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::iterator, Stream::findFirst, 144a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 145a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream iterator / findFirst succeeded erroneously"); 146a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 147a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::findFirst, Stream::iterator, 148a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 149a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream findFirst / iterator succeeded erroneously"); 150a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 151a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 152a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "StreamTestData<Integer>", dataProviderClass = StreamTestDataProvider.class) 153a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testStreamIterator(String name, TestData<Integer, Stream<Integer>> data) { 154a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 155a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::iterator, (Stream<Integer> s) -> s.map(i -> i), 156a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 157a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream iterator / map succeeded erroneously"); 158a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 159a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (Stream<Integer> s) -> s.map(i -> i), Stream::iterator, 160a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 161a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream map / iterator succeeded erroneously"); 162a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 163a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::iterator, Stream::distinct, 164a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 165a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream iterator / distinct succeeded erroneously"); 166a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 167a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin Stream::distinct, Stream::iterator, 168a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 169a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream distinct / iterator succeeded erroneously"); 170a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 171a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 172a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin // IntStream 173a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 174a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "IntStreamTestData", dataProviderClass = IntStreamTestDataProvider.class) 175a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoStreams(String name, TestData.OfInt data) { 176a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 177a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (IntStream s) -> s.mapToObj(i -> i), (IntStream s) -> s.mapToObj(i -> i), 178a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 179a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream map / map succeeded erroneously"); 180a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 181a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::distinct, (IntStream s) -> s.mapToObj(i -> i), 182a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 183a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream distinct / map succeeded erroneously"); 184a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 185a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (IntStream s) -> s.mapToObj(i -> i), IntStream::distinct, 186a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 187a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream map / distinct succeeded erroneously"); 188a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 189a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::distinct, IntStream::distinct, 190a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 191a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream distinct / distinct succeeded erroneously"); 192a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 193a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 194a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "IntStreamTestData", dataProviderClass = IntStreamTestDataProvider.class) 195a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoTerminals(String name, TestData.OfInt data) { 196a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 197a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::sum, IntStream::sum, 198a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 199a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream sum / sum succeeded erroneously"); 200a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 201a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 202a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "IntStreamTestData", dataProviderClass = IntStreamTestDataProvider.class) 203a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTerminalStream(String name, TestData.OfInt data) { 204a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 205a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::sum, (IntStream s) -> s.mapToObj(i -> i), 206a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 207a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream sum / map succeeded erroneously"); 208a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 209a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (IntStream s) -> s.mapToObj(i -> i), IntStream::sum, 210a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 211a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream map / sum succeeded erroneously"); 212a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 213a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::sum, IntStream::distinct, 214a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 215a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream sum / distinct succeeded erroneously"); 216a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 217a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::distinct, IntStream::sum, 218a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 219a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream distinct / sum succeeded erroneously"); 220a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 221a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 222a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "IntStreamTestData", dataProviderClass = IntStreamTestDataProvider.class) 223a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoIterators(String name, TestData.OfInt data) { 224a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 225a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::iterator, IntStream::iterator, 226a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 227a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream iterator / iterator succeeded erroneously"); 228a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 229a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 230a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "IntStreamTestData", dataProviderClass = IntStreamTestDataProvider.class) 231a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTerminalIterator(String name, TestData.OfInt data) { 232a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 233a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::iterator, IntStream::sum, 234a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 235a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream iterator / sum succeeded erroneously"); 236a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 237a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::sum, IntStream::iterator, 238a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 239a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream sum / iterator succeeded erroneously"); 240a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 241a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 242a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "IntStreamTestData", dataProviderClass = IntStreamTestDataProvider.class) 243a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testStreamIterator(String name, TestData.OfInt data) { 244a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 245a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::iterator, (IntStream s) -> s.mapToObj(i -> i), 246a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 247a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream iterator / map succeeded erroneously"); 248a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 249a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (IntStream s) -> s.mapToObj(i -> i), IntStream::iterator, 250a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 251a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream map / iterator succeeded erroneously"); 252a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 253a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::iterator, IntStream::distinct, 254a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 255a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream iterator / distinct succeeded erroneously"); 256a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 257a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IntStream::distinct, IntStream::iterator, 258a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 259a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "IntStream distinct / iterator succeeded erroneously"); 260a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 261a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 262a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin // LongStream 263a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 264a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "LongStreamTestData", dataProviderClass = LongStreamTestDataProvider.class) 265a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoStreams(String name, TestData.OfLong data) { 266a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 267a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (LongStream s) -> s.mapToObj(i -> i), (LongStream s) -> s.mapToObj(i -> i), 268a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 269a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream map / map succeeded erroneously"); 270a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 271a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::distinct, (LongStream s) -> s.mapToObj(i -> i), 272a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 273a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream distinct / map succeeded erroneously"); 274a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 275a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (LongStream s) -> s.mapToObj(i -> i), LongStream::distinct, 276a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 277a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream map / distinct succeeded erroneously"); 278a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 279a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::distinct, LongStream::distinct, 280a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 281a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream distinct / distinct succeeded erroneously"); 282a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 283a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 284a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "LongStreamTestData", dataProviderClass = LongStreamTestDataProvider.class) 285a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoTerminals(String name, TestData.OfLong data) { 286a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 287a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::sum, LongStream::sum, 288a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 289a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream sum / sum succeeded erroneously"); 290a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 291a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 292a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "LongStreamTestData", dataProviderClass = LongStreamTestDataProvider.class) 293a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTerminalStream(String name, TestData.OfLong data) { 294a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 295a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::sum, (LongStream s) -> s.mapToObj(i -> i), 296a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 297a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream sum / map succeeded erroneously"); 298a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 299a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (LongStream s) -> s.mapToObj(i -> i), LongStream::sum, 300a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 301a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream map / sum succeeded erroneously"); 302a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 303a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::sum, LongStream::distinct, 304a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 305a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream sum / distinct succeeded erroneously"); 306a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 307a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::distinct, LongStream::sum, 308a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 309a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream distinct / sum succeeded erroneously"); 310a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 311a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 312a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "LongStreamTestData", dataProviderClass = LongStreamTestDataProvider.class) 313a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoIterators(String name, TestData.OfLong data) { 314a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 315a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::iterator, LongStream::iterator, 316a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 317a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream iterator / iterator succeeded erroneously"); 318a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 319a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 320a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "LongStreamTestData", dataProviderClass = LongStreamTestDataProvider.class) 321a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTerminalIterator(String name, TestData.OfLong data) { 322a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 323a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::iterator, LongStream::sum, 324a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 325a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream iterator / sum succeeded erroneously"); 326a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 327a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::sum, LongStream::iterator, 328a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 329a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream sum / iterator succeeded erroneously"); 330a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 331a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 332a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "LongStreamTestData", dataProviderClass = LongStreamTestDataProvider.class) 333a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testStreamIterator(String name, TestData.OfLong data) { 334a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 335a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::iterator, (LongStream s) -> s.mapToObj(i -> i), 336a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 337a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream iterator / map succeeded erroneously"); 338a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 339a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (LongStream s) -> s.mapToObj(i -> i), LongStream::iterator, 340a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 341a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream map / iterator succeeded erroneously"); 342a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 343a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::iterator, LongStream::distinct, 344a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 345a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream iterator / distinct succeeded erroneously"); 346a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 347a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin LongStream::distinct, LongStream::iterator, 348a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 349a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "LongStream distinct / iterator succeeded erroneously"); 350a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 351a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 352a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin // DoubleStream 353a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 354a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "DoubleStreamTestData", dataProviderClass = DoubleStreamTestDataProvider.class) 355a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoStreams(String name, TestData.OfDouble data) { 356a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 357a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (DoubleStream s) -> s.mapToObj(i -> i), (DoubleStream s) -> s.mapToObj(i -> i), 358a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 359a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream map / map succeeded erroneously"); 360a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 361a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::distinct, (DoubleStream s) -> s.mapToObj(i -> i), 362a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 363a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream distinct / map succeeded erroneously"); 364a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 365a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (DoubleStream s) -> s.mapToObj(i -> i), DoubleStream::distinct, 366a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 367a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream map / distinct succeeded erroneously"); 368a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 369a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::distinct, DoubleStream::distinct, 370a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 371a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream distinct / distinct succeeded erroneously"); 372a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 373a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 374a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "DoubleStreamTestData", dataProviderClass = DoubleStreamTestDataProvider.class) 375a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoTerminals(String name, TestData.OfDouble data) { 376a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 377a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::sum, DoubleStream::sum, 378a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 379a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream sum / sum succeeded erroneously"); 380a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 381a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 382a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "DoubleStreamTestData", dataProviderClass = DoubleStreamTestDataProvider.class) 383a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTerminalStream(String name, TestData.OfDouble data) { 384a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 385a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::sum, (DoubleStream s) -> s.mapToObj(i -> i), 386a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 387a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream sum / map succeeded erroneously"); 388a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 389a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (DoubleStream s) -> s.mapToObj(i -> i), DoubleStream::sum, 390a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 391a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream map / sum succeeded erroneously"); 392a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 393a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::sum, DoubleStream::distinct, 394a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 395a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream sum / distinct succeeded erroneously"); 396a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 397a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::distinct, DoubleStream::sum, 398a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 399a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream distinct / sum succeeded erroneously"); 400a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 401a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 402a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "DoubleStreamTestData", dataProviderClass = DoubleStreamTestDataProvider.class) 403a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTwoIterators(String name, TestData.OfDouble data) { 404a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 405a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::iterator, DoubleStream::iterator, 406a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 407a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream iterator / iterator succeeded erroneously"); 408a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 409a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 410a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "DoubleStreamTestData", dataProviderClass = DoubleStreamTestDataProvider.class) 411a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testTerminalIterator(String name, TestData.OfDouble data) { 412a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 413a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::iterator, DoubleStream::sum, 414a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 415a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream iterator / sum succeeded erroneously"); 416a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 417a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::sum, DoubleStream::iterator, 418a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 419a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "Stream sum / iterator succeeded erroneously"); 420a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 421a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin 422a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin @Test(dataProvider = "DoubleStreamTestData", dataProviderClass = DoubleStreamTestDataProvider.class) 423a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin public void testStreamIterator(String name, TestData.OfDouble data) { 424a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 425a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::iterator, (DoubleStream s) -> s.mapToObj(i -> i), 426a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 427a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream iterator / map succeeded erroneously"); 428a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 429a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin (DoubleStream s) -> s.mapToObj(i -> i), DoubleStream::iterator, 430a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 431a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream map / iterator succeeded erroneously"); 432a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 433a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::iterator, DoubleStream::distinct, 434a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 435a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream iterator / distinct succeeded erroneously"); 436a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin assertSecondFails(data, 437a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin DoubleStream::distinct, DoubleStream::iterator, 438a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin IllegalStateException.class, 439a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin "DoubleStream distinct / iterator succeeded erroneously"); 440a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin } 441a405b7ea164e472bcf6b75d9890021bd82e4d60dIgor Murashkin} 442