private static void testEmptyNonZeroIterator(Vector vector) { // Test non zero iterator. Iterator<Element> it = vector.nonZeroes().iterator(); int i = 0; while (it.hasNext()) { ++i; } assertEquals(0, i); it = vector.nonZeroes().iterator(); assertFalse(it.hasNext()); try { it.next(); fail(); } catch (NoSuchElementException e) { // expected; } }
private static void testEmptyAllIterator(Vector vector) { // Test non zero iterator. Iterator<Element> it = vector.all().iterator(); int i = 0; while (it.hasNext()) { ++i; } assertEquals(0, i); it = vector.nonZeroes().iterator(); assertFalse(it.hasNext()); try { it.next(); fail(); } catch (NoSuchElementException e) { // expected; } it = vector.all().iterator(); assertFalse(it.hasNext()); try { it.next(); fail(); } catch (NoSuchElementException e) { // expected; } }
private static void testSingleNonZeroIterator(Vector vector) { vector.set(1, 6); // Test non zero iterator. Iterator<Element> it = vector.nonZeroes().iterator(); for (int i = 0; i < 10; ++i) { assertTrue(it.hasNext()); } it = vector.nonZeroes().iterator(); it.next(); for (int i = 0; i < 10; ++i) { assertFalse(it.hasNext()); } try { it.next(); fail(); } catch (NoSuchElementException e) { // expected; } }
right.setQuick(0, 1); right.setQuick(1, 2); assertFalse(left.equals(right)); assertFalse(left.hashCode() == right.hashCode()); right.setQuick(0, 1); right.setQuick(1, 2); assertFalse(left.equals(right)); assertFalse(left.hashCode() == right.hashCode()); right.setQuick(0, 1); right.setQuick(2, 2); assertFalse(left.equals(right)); assertFalse(left.hashCode() == right.hashCode()); assertFalse(left.equals(right)); assertFalse(left.hashCode() == right.hashCode());
private static void testSkipsLast(Vector vector) { vector.set(1, 6); vector.set(98, 6); // Test non zero iterator. Iterator<Element> it = vector.nonZeroes().iterator(); int i = 0; while (it.hasNext()) { // hasNext is called more often than next it.next(); ++i; } assertEquals(2, i); // Last element is print only once. // Test all iterator. it = vector.all().iterator(); i = 0; while (it.hasNext()) { // hasNext is called more often than next Element element = it.next(); assertEquals(i, element.index()); ++i; } assertFalse(it.hasNext()); assertEquals(99, i); // Last element is print only once. }
@Test public void testSparseVectorSparseIteration() { int[] index = {0, 1, 2, 3, 4, 5}; double[] values = {1, 2, 3, 4, 5, 6}; assertEquals(index.length, values.length); int n = index.length; Vector vector = new SequentialAccessSparseVector(n); for (int i = 0; i < n; i++) { vector.set(index[i], values[i]); } for (int i = 0; i < n; i++) { assertEquals(vector.get(i), values[i], EPSILON); } int elements = 0; for (Element ignored : vector.nonZeroes()) { elements++; } assertEquals(n, elements); Vector empty = new SequentialAccessSparseVector(0); assertFalse(empty.nonZeroes().iterator().hasNext()); }
@Test public void testSparseVectorFullIteration() { int[] index = {0, 1, 2, 3, 4, 5}; double[] values = {1, 2, 3, 4, 5, 6}; assertEquals(index.length, values.length); int n = index.length; Vector vector = new SequentialAccessSparseVector(n); for (int i = 0; i < n; i++) { vector.set(index[i], values[i]); } for (int i = 0; i < n; i++) { assertEquals(vector.get(i), values[i], EPSILON); } int elements = 0; for (Element ignore : vector.all()) { elements++; } assertEquals(n, elements); assertFalse(new SequentialAccessSparseVector(0).iterator().hasNext()); }
@Test public void testAddTo() throws Exception { Vector v = new DenseVector(4); Vector w = new DenseVector(4); v.setQuick(0, 1); v.setQuick(1, 2); v.setQuick(2, 0); v.setQuick(3, 4); w.setQuick(0, 1); w.setQuick(1, 1); w.setQuick(2, 1); w.setQuick(3, 1); w.assign(v, Functions.PLUS); Vector gold = new DenseVector(new double[]{2, 3, 1, 5}); assertEquals(w, gold); assertFalse(v.equals(gold)); }
assertFalse(randomAccessLeft.equals(right)); right = new DenseVector(4); right.setQuick(0, 1); right.setQuick(2, 3); right.setQuick(3, 3); assertFalse(randomAccessLeft.equals(right)); randomAccessLeft = new RandomAccessSparseVector(2); randomAccessLeft.setQuick(0, 1); randomAccessLeft.setQuick(1, 2); assertFalse(randomAccessLeft.equals(right));
right.setQuick(0, 1); right.setQuick(1, 2); assertFalse(left.equals(right)); assertFalse(left.hashCode() == right.hashCode()); right.setQuick(0, 1); right.setQuick(1, 2); assertFalse(left.equals(right)); assertFalse(left.hashCode() == right.hashCode()); right.setQuick(0, 1); right.setQuick(2, 2); assertFalse(left.equals(right)); assertFalse(left.hashCode() == right.hashCode()); assertFalse(left.equals(right)); assertFalse(left.hashCode() == right.hashCode());
@Test public void testSparseVectorSparseIteration() { int[] index = {0, 1, 2, 3, 4, 5}; double[] values = {1, 2, 3, 4, 5, 6}; assertEquals(index.length, values.length); int n = index.length; Vector vector = new SequentialAccessSparseVector(n); for (int i = 0; i < n; i++) { vector.set(index[i], values[i]); } for (int i = 0; i < n; i++) { assertEquals(vector.get(i), values[i], EPSILON); } int elements = 0; Iterator<Vector.Element> it = vector.iterateNonZero(); while (it.hasNext()) { it.next(); elements++; } assertEquals(n, elements); Vector empty = new SequentialAccessSparseVector(0); assertFalse(empty.iterateNonZero().hasNext()); }
@Test public void testSparseVectorFullIteration() { int[] index = {0, 1, 2, 3, 4, 5}; double[] values = {1, 2, 3, 4, 5, 6}; assertEquals(index.length, values.length); int n = index.length; Vector vector = new SequentialAccessSparseVector(n); for (int i = 0; i < n; i++) { vector.set(index[i], values[i]); } for (int i = 0; i < n; i++) { assertEquals(vector.get(i), values[i], EPSILON); } int elements = 0; for (Vector.Element e : vector) { elements++; } assertEquals(n, elements); assertFalse(new SequentialAccessSparseVector(0).iterator().hasNext()); }
@Test public void testAddTo() throws Exception { Vector v = new DenseVector(4); Vector w = new DenseVector(4); v.setQuick(0, 1); v.setQuick(1, 2); v.setQuick(2, 0); v.setQuick(3, 4); w.setQuick(0, 1); w.setQuick(1, 1); w.setQuick(2, 1); w.setQuick(3, 1); w.assign(v, Functions.PLUS); Vector gold = new DenseVector(new double[]{2, 3, 1, 5}); assertEquals(w, gold); assertFalse(v.equals(gold)); }
assertFalse(randomAccessLeft.equals(right)); right = new DenseVector(4); right.setQuick(0, 1); right.setQuick(2, 3); right.setQuick(3, 3); assertFalse(randomAccessLeft.equals(right)); randomAccessLeft = new RandomAccessSparseVector(2); randomAccessLeft.setQuick(0, 1); randomAccessLeft.setQuick(1, 2); assertFalse(randomAccessLeft.equals(right));