package com.annimon.stream.streamtests; import com.annimon.stream.Stream; import com.annimon.stream.function.IndexedPredicate; import org.junit.Test; import static com.annimon.stream.test.hamcrest.StreamMatcher.assertElements; import static org.hamcrest.Matchers.contains; public final class TakeUntilIndexedTest { @Test public void testTakeUntilIndexed() { Stream.of(1, 2, 3, 4, 0, 1, 2) .takeUntilIndexed(new IndexedPredicate<Integer>() { @Override public boolean test(int index, Integer value) { return (index + value) > 4; } }) .custom(assertElements(contains( 1, 2, 3 ))); } @Test public void testTakeUntilIndexedWithStartAndStep() { Stream.of(1, 2, 3, 4, 0, 1, 2) .takeUntilIndexed(2, 2, new IndexedPredicate<Integer>() { @Override public boolean test(int index, Integer value) { return (index + value) > 8; } }) .custom(assertElements(contains( 1, 2, 3 ))); } }