package mikera.vectorz;
import java.util.Arrays;
import static org.junit.Assert.*;
import mikera.vectorz.impl.SparseHashedVector;
import mikera.vectorz.impl.SparseIndexedVector;
import mikera.vectorz.impl.ZeroVector;
import org.junit.Test;
public class TestSparseVectors {
@Test
public void testHashed() {
SparseHashedVector v=SparseHashedVector.createLength(10);
assertEquals(0,v.nonZeroCount());
v.set(1,1);
assertEquals(1.0,v.elementSum(),0.0);
assertEquals(1,v.nonZeroCount());
}
@Test
public void testIndexed() {
SparseIndexedVector v=SparseIndexedVector.createLength(10);
assertEquals(0,v.nonZeroCount());
v.set(1,1);
assertEquals(1.0,v.elementSum(),0.0);
assertEquals(1,v.nonZeroCount());
assertTrue(Arrays.equals(new int[]{1},v.nonZeroIndices()));
SparseIndexedVector w=v.clone();
v.add(ZeroVector.create(10));
assertEquals(w, v);
SparseIndexedVector empty=SparseIndexedVector.createLength(3);
SparseIndexedVector nonEmpty=SparseIndexedVector.create(Vector.of(1,0,2));
empty.add(nonEmpty);
assertEquals(Vector.of(1,0,2), empty);
}
}