Author: smarthi
Date: Thu Aug  1 21:46:53 2013
New Revision: 1509439

URL: http://svn.apache.org/r1509439
Log:
MAHOUT-1301:  toString() method of SequentialAccessSparseVector has excess 
comma at the end

Modified:
    mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java
    mahout/trunk/math/src/main/java/org/apache/mahout/math/DenseVector.java
    
mahout/trunk/math/src/main/java/org/apache/mahout/math/RandomAccessSparseVector.java
    
mahout/trunk/math/src/main/java/org/apache/mahout/math/SequentialAccessSparseVector.java
    
mahout/trunk/math/src/test/java/org/apache/mahout/math/AbstractVectorTest.java
    mahout/trunk/math/src/test/java/org/apache/mahout/math/TestDenseVector.java
    
mahout/trunk/math/src/test/java/org/apache/mahout/math/TestRandomAccessSparseVector.java
    
mahout/trunk/math/src/test/java/org/apache/mahout/math/TestSequentialAccessSparseVector.java

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java?rev=1509439&r1=1509438&r2=1509439&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java 
(original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java 
Thu Aug  1 21:46:53 2013
@@ -633,6 +633,30 @@ public abstract class AbstractVector imp
     return result.toString();
   }
 
+  /**
+   * toString() implementation for sparse vectors via {@link #nonZeroes()} 
method
+   * @return String representation of the vector
+   */
+  public String sparseVectorToString() {
+    Iterator<Element> it = iterateNonZero();
+    if (!it.hasNext()) {
+      return "{}";
+    }
+    else {
+      StringBuilder result = new StringBuilder();
+      result.append('{');
+      while (it.hasNext()) {
+        Vector.Element e = it.next();
+        result.append(e.index());
+        result.append(':');
+        result.append(e.get());
+        result.append(',');
+      }
+      result.setCharAt(result.length() - 1, '}');
+      return result.toString();
+    }
+  }
+
   protected final class LocalElement implements Element {
     int index;
 

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/DenseVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/DenseVector.java?rev=1509439&r1=1509438&r2=1509439&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/DenseVector.java 
(original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/DenseVector.java Thu 
Aug  1 21:46:53 2013
@@ -33,7 +33,9 @@ public class DenseVector extends Abstrac
     super(0);
   }
 
-  /** Construct a new instance using provided values */
+  /** Construct a new instance using provided values
+   *  @param values - array of values
+   */
   public DenseVector(double[] values) {
     this(values, false);
   }
@@ -47,7 +49,9 @@ public class DenseVector extends Abstrac
     this(values.values, shallowCopy);
   }
 
-  /** Construct a new instance of the given cardinality */
+  /** Construct a new instance of the given cardinality
+   * @param cardinality - number of values in the vector
+   */
   public DenseVector(int cardinality) {
     super(cardinality);
     this.values = new double[cardinality];

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/RandomAccessSparseVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/RandomAccessSparseVector.java?rev=1509439&r1=1509438&r2=1509439&view=diff
==============================================================================
--- 
mahout/trunk/math/src/main/java/org/apache/mahout/math/RandomAccessSparseVector.java
 (original)
+++ 
mahout/trunk/math/src/main/java/org/apache/mahout/math/RandomAccessSparseVector.java
 Thu Aug  1 21:46:53 2013
@@ -75,23 +75,7 @@ public class RandomAccessSparseVector ex
 
   @Override
   public String toString() {
-    StringBuilder result = new StringBuilder();
-    result.append('{');
-    Iterator<Element> it = iterateNonZero();
-    boolean first = true;
-    while (it.hasNext()) {
-      if (first) {
-        first = false;
-      } else {
-        result.append(',');
-      }
-      Element e = it.next();
-      result.append(e.index());
-      result.append(':');
-      result.append(e.get());
-    }
-    result.append('}');
-    return result.toString();
+    return sparseVectorToString();
   }
 
   @Override

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/SequentialAccessSparseVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/SequentialAccessSparseVector.java?rev=1509439&r1=1509438&r2=1509439&view=diff
==============================================================================
--- 
mahout/trunk/math/src/main/java/org/apache/mahout/math/SequentialAccessSparseVector.java
 (original)
+++ 
mahout/trunk/math/src/main/java/org/apache/mahout/math/SequentialAccessSparseVector.java
 Thu Aug  1 21:46:53 2013
@@ -126,18 +126,7 @@ public class SequentialAccessSparseVecto
 
   @Override
   public String toString() {
-    StringBuilder result = new StringBuilder();
-    result.append('{');
-    Iterator<Element> it = iterateNonZero();
-    while (it.hasNext()) {
-      Element e = it.next();
-      result.append(e.index());
-      result.append(':');
-      result.append(e.get());
-      result.append(',');
-    }
-    result.append('}');
-    return result.toString();
+    return sparseVectorToString();
   }
 
   /**

Modified: 
mahout/trunk/math/src/test/java/org/apache/mahout/math/AbstractVectorTest.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/test/java/org/apache/mahout/math/AbstractVectorTest.java?rev=1509439&r1=1509438&r2=1509439&view=diff
==============================================================================
--- 
mahout/trunk/math/src/test/java/org/apache/mahout/math/AbstractVectorTest.java 
(original)
+++ 
mahout/trunk/math/src/test/java/org/apache/mahout/math/AbstractVectorTest.java 
Thu Aug  1 21:46:53 2013
@@ -3,6 +3,7 @@ package org.apache.mahout.math;
 import java.util.Iterator;
 import java.util.Random;
 
+import com.google.common.collect.Iterables;
 import org.apache.mahout.common.RandomUtils;
 import org.apache.mahout.math.Vector.Element;
 import org.apache.mahout.math.function.Functions;
@@ -593,11 +594,7 @@ public abstract class AbstractVectorTest
       }
     }
 
-    int nonZeroIterated = 0;
-
-    for (Element ignored : v0.nonZeroes()) {
-      nonZeroIterated++;
-    }
+    int nonZeroIterated = Iterables.size(v0.nonZeroes());
     assertEquals(20, elements);
     assertEquals(v0.size(), elements);
     assertEquals(nonZeroIterated, nonZero);
@@ -623,4 +620,22 @@ public abstract class AbstractVectorTest
       }
     }
   }
+
+
+  public void testToString() {
+    Vector w;
+
+    w = generateTestVector(20);
+    w.set(0, 1.1);
+    w.set(13, 100500.);
+    w.set(19, 3.141592);
+    assertEquals("{0:1.1,13:100500.0,19:3.141592}", w.toString());
+
+    w = generateTestVector(12);
+    w.set(10, 0.1);
+    assertEquals("{10:0.1}", w.toString());
+
+    w = generateTestVector(12);
+    assertEquals("{}", w.toString());
+  }
 }

Modified: 
mahout/trunk/math/src/test/java/org/apache/mahout/math/TestDenseVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/test/java/org/apache/mahout/math/TestDenseVector.java?rev=1509439&r1=1509438&r2=1509439&view=diff
==============================================================================
--- mahout/trunk/math/src/test/java/org/apache/mahout/math/TestDenseVector.java 
(original)
+++ mahout/trunk/math/src/test/java/org/apache/mahout/math/TestDenseVector.java 
Thu Aug  1 21:46:53 2013
@@ -18,6 +18,7 @@
 package org.apache.mahout.math;
 
 import org.apache.mahout.math.function.Functions;
+import org.junit.Test;
 
 public final class TestDenseVector extends AbstractVectorTest<DenseVector> {
 
@@ -37,4 +38,10 @@ public final class TestDenseVector exten
     r.assign(Functions.random());
     return r;
   }
+
+  @Override
+  @Test
+  public void testToString() {
+    super.testToString();
+  }
 }

Modified: 
mahout/trunk/math/src/test/java/org/apache/mahout/math/TestRandomAccessSparseVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/test/java/org/apache/mahout/math/TestRandomAccessSparseVector.java?rev=1509439&r1=1509438&r2=1509439&view=diff
==============================================================================
--- 
mahout/trunk/math/src/test/java/org/apache/mahout/math/TestRandomAccessSparseVector.java
 (original)
+++ 
mahout/trunk/math/src/test/java/org/apache/mahout/math/TestRandomAccessSparseVector.java
 Thu Aug  1 21:46:53 2013
@@ -18,6 +18,7 @@
 package org.apache.mahout.math;
 
 import org.apache.mahout.common.RandomUtils;
+import org.junit.Test;
 
 import java.util.Random;
 
@@ -39,4 +40,9 @@ public final class TestRandomAccessSpars
     return r;
   }
 
+  @Override
+  @Test
+  public void testToString() {
+    super.testToString();
+  }
 }

Modified: 
mahout/trunk/math/src/test/java/org/apache/mahout/math/TestSequentialAccessSparseVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/test/java/org/apache/mahout/math/TestSequentialAccessSparseVector.java?rev=1509439&r1=1509438&r2=1509439&view=diff
==============================================================================
--- 
mahout/trunk/math/src/test/java/org/apache/mahout/math/TestSequentialAccessSparseVector.java
 (original)
+++ 
mahout/trunk/math/src/test/java/org/apache/mahout/math/TestSequentialAccessSparseVector.java
 Thu Aug  1 21:46:53 2013
@@ -52,4 +52,11 @@ public final class TestSequentialAccessS
     }
     return r;
   }
+
+
+  @Override
+  @Test
+  public void testToString() {
+    super.testToString();
+  }
 }
\ No newline at end of file


Reply via email to