package mikera.vectorz.impl; import static org.junit.Assert.*; import mikera.vectorz.AVector; import mikera.vectorz.Vector; import mikera.vectorz.Vectorz; import org.junit.Test; public class TestMiscVectors { @Test public void testTriangularIndexedVector() { double[] data=new double[]{0,1,2,3,4,5,6,7,8,9}; AVector t1=TriangularIndexedVector.wrap(3, data, 1, 1); AVector t2=TriangularIndexedVector.wrap(4, data, 0, 0); assertEquals(Vector.of(1,3,6),t1); assertEquals(Vector.of(0,1,3,6),t2); assertEquals(t1,t2.subVector(1, 3)); } @Test public void testStridedAdd() { Vector v=Vector.of(1,2,3,4,5,6,7,8); StridedVector sv=StridedVector.wrap(v.data, 1, 3, 2); assertEquals(Vector.of(2,4,6),sv); sv.add(sv.exactClone()); assertEquals(Vector.of(1,4,3,8,5,12,7,8),v); } @Test public void testVectorStuff() { Vector v=Vector.of(0,1,2,3,4,5); v.subVector(1, 2).addMultiple(Vector.of(10,20), 2); assertEquals(Vector.of(0,21,42,3,4,5),v); v.subVector(1, 2).addMultiple(Vector.of(0,10,20).subVector(1,2), -2); assertEquals(Vector.of(0,1,2,3,4,5),v); } @Test public void testRejoin() { Vector v=Vector.createLength(10); Vectorz.fillGaussian(v); AVector sv1=v.subVector(0, 5); assertEquals(5,sv1.length()); AVector sv2=v.subVector(5, 5); assertEquals(5,sv2.length()); assertEquals(v.getClass(),sv1.join(sv2).getClass()); } @Test public void testReorder() { Vector v=Vector.of(1,2,3,4,5); AVector r=v.reorder(new int[] {1,3,4}); assertEquals(Vector.of(2,4,5),r); } }