Uploaded image for project: 'Mahout'
  1. Mahout
  2. MAHOUT-489

SequentialAccessSparseVector iterators skip items

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.4
    • Math
    • None

    Description

      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);
      }

      Attachments

        1. MAHOUT-489.patch
          2 kB
          Ted Dunning
        2. MAHOUT-489.patch
          1 kB
          Ted Dunning

        Activity

          People

            srowen Sean R. Owen
            ldosa Laszlo Dosa
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: