/* __ __ __ __ __ ___ * \ \ / / \ \ / / __/ * \ \/ / /\ \ \/ / / * \____/__/ \__\____/__/.ɪᴏ * ᶜᵒᵖʸʳᶦᵍʰᵗ ᵇʸ ᵛᵃᵛʳ ⁻ ˡᶦᶜᵉⁿˢᵉᵈ ᵘⁿᵈᵉʳ ᵗʰᵉ ᵃᵖᵃᶜʰᵉ ˡᶦᶜᵉⁿˢᵉ ᵛᵉʳˢᶦᵒⁿ ᵗʷᵒ ᵈᵒᵗ ᶻᵉʳᵒ */ package io.vavr.collection; import org.junit.Test; import java.math.BigDecimal; import java.util.Spliterator; public abstract class AbstractIndexedSeqTest extends AbstractSeqTest { @Override abstract protected <T> IndexedSeq<T> of(T element); // -- static narrow @Test public void shouldNarrowIndexedSeq() { final IndexedSeq<Double> doubles = of(1.0d); final IndexedSeq<Number> numbers = IndexedSeq.narrow(doubles); final int actual = numbers.append(new BigDecimal("2.0")).sum().intValue(); assertThat(actual).isEqualTo(3); } // -- spliterator @Test public void shouldHaveSizedSpliterator() { assertThat(of(1, 2, 3).spliterator().hasCharacteristics(Spliterator.SIZED | Spliterator.SUBSIZED)).isTrue(); } @Test public void shouldReturnSizeWhenSpliterator() { assertThat(of(1, 2, 3).spliterator().getExactSizeIfKnown()).isEqualTo(3); } }