package com.annimon.stream.intstreamtests;
import com.annimon.stream.Functions;
import com.annimon.stream.IntStream;
import com.annimon.stream.Stream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import static com.annimon.stream.test.hamcrest.IntStreamMatcher.assertElements;
import static org.hamcrest.Matchers.arrayContaining;
import static org.hamcrest.Matchers.contains;
import static org.junit.Assert.assertThat;
public final class DistinctTest {
@Test
public void testDistinct() {
IntStream.of(1, 2, -1, 10, 1, 1, -1, 5)
.distinct()
.custom(assertElements(arrayContaining(
1, 2, -1, 10, 5
)));
}
@Test
public void testDistinctLazy() {
Integer[] expected = { 1, 2, 3, 5, -1 };
List<Integer> input = new ArrayList<Integer>();
input.addAll(Arrays.asList(1, 1, 2, 3, 5));
IntStream stream = Stream.of(input)
.mapToInt(Functions.toInt())
.distinct();
input.addAll(Arrays.asList(3, 2, 1, 1, -1));
List<Integer> actual = stream.boxed().toList();
assertThat(actual, contains(expected));
}
}