package com.annimon.stream.intstreamtests;
import com.annimon.stream.IntStream;
import com.annimon.stream.function.IntConsumer;
import com.annimon.stream.function.IntSupplier;
import org.junit.Test;
import static org.junit.Assert.assertTrue;
public final class PeekTest {
@Test
public void testPeek() {
assertTrue(IntStream.empty().peek(new IntConsumer() {
@Override
public void accept(int value) {
throw new IllegalStateException();
}
}).count() == 0);
assertTrue(IntStream.generate(new IntSupplier() {
int value = 2;
@Override
public int getAsInt() {
int v = value;
value *= 2;
return v;
}
}).peek(new IntConsumer() {
int curValue = 1;
@Override
public void accept(int value) {
if(value != curValue*2)
throw new IllegalStateException();
curValue = value;
}
}).limit(10).count() == 10);
}
}