Author: jeastman
Date: Tue Jun 16 14:06:51 2009
New Revision: 785221

URL: http://svn.apache.org/viewvc?rev=785221&view=rev
Log:
MAHOUT-65: added set(label, index, value) and added a unit test thereof

Modified:
    
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractVector.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/Vector.java
    
lucene/mahout/trunk/core/src/test/java/org/apache/mahout/matrix/VectorTest.java

Modified: 
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractVector.java
URL: 
http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractVector.java?rev=785221&r1=785220&r2=785221&view=diff
==============================================================================
--- 
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractVector.java
 (original)
+++ 
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractVector.java
 Tue Jun 16 14:06:51 2009
@@ -18,6 +18,7 @@
 package org.apache.mahout.matrix;
 
 import java.lang.reflect.Type;
+import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.hadoop.io.WritableComparable;
@@ -355,6 +356,9 @@
     return result;
   }
 
+  /* (non-Javadoc)
+   * @see org.apache.mahout.matrix.Vector#get(java.lang.String)
+   */
   @Override
   public double get(String label) throws IndexException, UnboundLabelException 
{
     if (bindings == null)
@@ -365,11 +369,17 @@
     return get(index);
   }
 
+  /* (non-Javadoc)
+   * @see org.apache.mahout.matrix.Vector#getLabelBindings()
+   */
   @Override
   public Map<String, Integer> getLabelBindings() {
     return bindings;
   }
 
+  /* (non-Javadoc)
+   * @see org.apache.mahout.matrix.Vector#set(java.lang.String, double)
+   */
   @Override
   public void set(String label, double value) throws IndexException,
       UnboundLabelException {
@@ -381,9 +391,23 @@
     set(index, value);
   }
 
+  /* (non-Javadoc)
+   * @see org.apache.mahout.matrix.Vector#setLabelBindings(java.util.Map)
+   */
   @Override
   public void setLabelBindings(Map<String, Integer> bindings) {
     this.bindings = bindings;
   }
 
+  /* (non-Javadoc)
+   * @see org.apache.mahout.matrix.Vector#set(java.lang.String, int, double)
+   */
+  @Override
+  public void set(String label, int index, double value) throws IndexException 
{
+    if (bindings == null)
+      bindings = new HashMap<String, Integer>();
+    bindings.put(label, index);
+    set(index, value);
+  }
+
 }

Modified: 
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/Vector.java
URL: 
http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/Vector.java?rev=785221&r1=785220&r2=785221&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/Vector.java 
(original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/Vector.java 
Tue Jun 16 14:06:51 2009
@@ -290,6 +290,16 @@
    */
   void set(String label, double value) throws IndexException,
       UnboundLabelException;
+  
+  /**
+   * Set the value at the index and add the label to the bindings
+   * 
+   * @param label a String label that maps to an index
+   * @param index an int index
+   * @param value a double value
+   * @throws IndexException
+   */
+  void set(String label, int index, double value) throws IndexException;
 
   /**
    * Sets a map of label bindings in the receiver

Modified: 
lucene/mahout/trunk/core/src/test/java/org/apache/mahout/matrix/VectorTest.java
URL: 
http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/test/java/org/apache/mahout/matrix/VectorTest.java?rev=785221&r1=785220&r2=785221&view=diff
==============================================================================
--- 
lucene/mahout/trunk/core/src/test/java/org/apache/mahout/matrix/VectorTest.java 
(original)
+++ 
lucene/mahout/trunk/core/src/test/java/org/apache/mahout/matrix/VectorTest.java 
Tue Jun 16 14:06:51 2009
@@ -359,4 +359,14 @@
     }
   }
 
+  public void testLabelSet() {
+    Vector test = new DenseVector(3);
+    test.set("Fee", 0, 1.1);
+    test.set("Fie", 1, 2.2);
+    test.set("Foe", 2, 3.3);
+    assertEquals("Fee", 1.1, test.get("Fee"));
+    assertEquals("Fie", 2.2, test.get("Fie"));
+    assertEquals("Foe", 3.3, test.get("Foe"));
+  }
+
 }


Reply via email to