@Test public void testTake() { assertThat(new Range<>(1).next(i -> i + 1).take(0), equalTo(Seqs.newMutableSeq())); assertThat(new Range<>(1).next(i -> i + 1).take(5), equalTo(Seqs.newMutableSeq(1, 2, 3, 4, 5))); assertThat(new Range<>(1).next(i -> i + 1).to(3).take(5), equalTo(Seqs.newMutableSeq(1, 2, 3))); Helpers.assertThrows(UnsupportedOperationException.class, () -> new Range<>(1).spliterator()); }
@Test public void testTakeWhile() { assertThat( new Range<>(1).next(i -> i + 1).takeWhile(e -> e <= 5), equalTo(Seqs.newMutableSeq(1, 2, 3, 4, 5))); assertThat( new Range<>(1).next(i -> i + 1).takeWhile(e -> e < 1), equalTo(Seqs.newMutableSeq())); assertThat( new Range<>(1).next(i -> i + 1).until(1).takeWhile(e -> e <= 5), equalTo(Seqs.newMutableSeq())); assertThat( new Range<>(1).next(i -> i + 1).takeWhile((e, i) -> i < 5), equalTo(Seqs.newMutableSeq(1, 2, 3, 4, 5))); assertThat( new Range<>(1).next(i -> i + 1).takeWhile((e, i) -> i < 0), equalTo(Seqs.newMutableSeq())); assertThat( new Range<>(1).next(i -> i + 1).until(1).takeWhile((e, i) -> i < 5), equalTo(Seqs.newMutableSeq())); List<Integer> indices = new ArrayList<>(); assertThat( new Range<>(1) .next(i -> i + i) .takeWhile( (e, i) -> { indices.add(i); return e < 64; }), equalTo(Seqs.newMutableSeq(1, 2, 4, 8, 16, 32))); assertThat(indices, equalTo(Arrays.asList(0, 1, 2, 3, 4, 5, 6))); }
@Test public void testToMutableSeq() { assertThat( new Range<>(1).to(5).next(i -> i + 1).toMutableSeq(), is(equalTo(Seqs.newMutableSeq(1, 2, 3, 4, 5)))); }