@Test(timeout = 100) public void testIterator() { double[] expectedRes = new double[] {38, 44, 50, 56, 0, 0, 3, 0, 0, 0}; DoubleVector vec = new DenseDoubleVector(expectedRes); Iterator<DoubleVectorElement> itr = vec.iterate(); int curIdx = 0; while (itr.hasNext()) { DoubleVectorElement elem = itr.next(); assertEquals(curIdx, elem.getIndex()); assertEquals(expectedRes[curIdx++], elem.getValue(), 0.000001); } Iterator<DoubleVectorElement> itrNonZero = vec.iterateNonDefault(); curIdx = 0; while (itrNonZero.hasNext()) { while (expectedRes[curIdx] == 0.0) { ++curIdx; } assertEquals(expectedRes[curIdx++], itrNonZero.next().getValue(), 0.000001); } }