SequentialAccessSparseVector iterators skip items
-------------------------------------------------
Key: MAHOUT-489
URL: https://issues.apache.org/jira/browse/MAHOUT-489
Project: Mahout
Issue Type: Bug
Components: Math
Reporter: Laszlo Dosa
The following test cases fail, which iterates through the elements of the
SequentialAccessSparseVector, because not every value is given back.
SequentialAccessSparseVector.iterator() skips the last element, while the
SequentialAccessSparseVector.iterateNonZero() skips the first element.
int [] index = new int[] { 0, 1, 2, 3, 4, 5 };
int [] values = new int[] { 0, 1, 2, 3, 4, 5 };
SequentialAccessSparseVector vector;
@Before
public void setUp() {
vector = new SequentialAccessSparseVector(6);
for(int i = 0; i < Math.min(index.length, values.length); i++ ) {
vector.set(index[i], values[i]);
}
}
@Test
public void testIteratorAll() {
int elements = 0;
Iterator<Element> it = vector.iterator();
while (it.hasNext()) {
System.out.println(it.next().get());
elements++;
}
assertEquals((int)vector.get(Math.min(index.length,values.length)-1),values[Math.min(index.length,
values.length)-1]);
assertEquals(Math.min(index.length, values.length),elements);
}
@Test
public void testIteratorNonNull() {
int elements = 0;
Iterator<Element> it = vector.iterateNonZero();
while (it.hasNext()) {
System.out.println(it.next().get());
elements++;
}
assertEquals((int)vector.get(Math.min(index.length,values.length)-1),values[Math.min(index.length,
values.length)-1]);
assertEquals(Math.min(index.length,values.length),elements);
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.