< prev index next >
test/jdk/lib/testlibrary/bootlib/java.base/java/util/stream/LambdaTestHelpers.java
Print this page
rev 48452 : 8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
Reviewed-by: psandoz, rriggs
*** 46,55 ****
--- 46,56 ----
import java.util.function.ToLongFunction;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.assertFalse;
+ import static org.testng.Assert.fail;
/**
* LambdaTestHelpers -- assertion methods and useful objects for lambda test cases
*/
public class LambdaTestHelpers {
*** 275,294 ****
}
}
public static<T> void assertContents(Iterable<T> actual, Iterable<T> expected) {
if (actual instanceof Collection && expected instanceof Collection) {
! assertEquals(actual, expected);
} else {
assertContents(actual.iterator(), expected.iterator());
}
}
public static<T> void assertContents(Iterator<T> actual, Iterator<T> expected) {
assertEquals(toBoxedList(actual), toBoxedList(expected));
}
@SafeVarargs
@SuppressWarnings("varargs")
public static<T> void assertContents(Iterator<T> actual, T... expected) {
assertContents(actual, Arrays.asList(expected).iterator());
}
--- 276,332 ----
}
}
public static<T> void assertContents(Iterable<T> actual, Iterable<T> expected) {
if (actual instanceof Collection && expected instanceof Collection) {
! assertIterableEquals(actual, expected);
} else {
assertContents(actual.iterator(), expected.iterator());
}
}
public static<T> void assertContents(Iterator<T> actual, Iterator<T> expected) {
assertEquals(toBoxedList(actual), toBoxedList(expected));
}
+ // Workaround String creation in inner loop inside org.testng.Assert.assertEquals(Iterable<?>, Iterable<?>)
+ static public void assertIterableEquals(Iterable<?> actual, Iterable<?> expected) {
+ if(actual == expected) {
+ return;
+ }
+
+ if(actual == null || expected == null) {
+ fail("Iterables not equal: expected: " + expected + " and actual: " + actual);
+ }
+
+ assertIteratorsEquals(actual.iterator(), expected.iterator());
+ }
+
+ // Workaround String creation in inner loop inside org.testng.Assert.assertEquals(Iterator<?>, Iterator<?>)
+ static public void assertIteratorsEquals(Iterator<?> actual, Iterator<?> expected) {
+ if (actual == expected) {
+ return;
+ }
+
+ if (actual == null || expected == null) {
+ fail("Iterators not equal: expected: " + expected + " and actual: " + actual);
+ }
+
+ while (actual.hasNext() && expected.hasNext()) {
+ Object e = expected.next();
+ Object a = actual.next();
+ assertEquals(a, e, "Iterator contents differ");
+
+ }
+
+ if(actual.hasNext()) {
+ fail("Actual iterator returned more elements than the expected iterator.");
+ } else if(expected.hasNext()) {
+ fail("Expected iterator returned more elements than the actual iterator.");
+ }
+
+ }
@SafeVarargs
@SuppressWarnings("varargs")
public static<T> void assertContents(Iterator<T> actual, T... expected) {
assertContents(actual, Arrays.asList(expected).iterator());
}
< prev index next >