Author: dfilimon
Date: Fri May  3 11:24:46 2013
New Revision: 1478733

URL: http://svn.apache.org/r1478733
Log:
Fixes MAHOUT-1189

https://issues.apache.org/jira/browse/MAHOUT-1189


Modified:
    
mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/CosineDistanceMeasure.java
    
mahout/trunk/core/src/test/java/org/apache/mahout/clustering/iterator/TestClusterClassifier.java
    
mahout/trunk/core/src/test/java/org/apache/mahout/common/distance/CosineDistanceMeasureTest.java

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/CosineDistanceMeasure.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/CosineDistanceMeasure.java?rev=1478733&r1=1478732&r2=1478733&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/CosineDistanceMeasure.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/CosineDistanceMeasure.java
 Fri May  3 11:24:46 2013
@@ -65,7 +65,7 @@ public class CosineDistanceMeasure imple
     
     // correct for zero-vector corner case
     if (denominator == 0 && dotProduct == 0) {
-      return 1;
+      return 0;
     }
     
     return 1.0 - dotProduct / denominator;
@@ -89,7 +89,7 @@ public class CosineDistanceMeasure imple
     
     // correct for zero-vector corner case
     if (denominator == 0 && dotProduct == 0) {
-      return 1;
+      return 0;
     }
     
     return 1.0 - dotProduct / denominator;
@@ -110,7 +110,7 @@ public class CosineDistanceMeasure imple
     
     // correct for zero-vector corner case
     if (denominator == 0 && dotProduct == 0) {
-      return 1;
+      return 0;
     }
     
     return 1.0 - dotProduct / denominator;

Modified: 
mahout/trunk/core/src/test/java/org/apache/mahout/clustering/iterator/TestClusterClassifier.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/test/java/org/apache/mahout/clustering/iterator/TestClusterClassifier.java?rev=1478733&r1=1478732&r2=1478733&view=diff
==============================================================================
--- 
mahout/trunk/core/src/test/java/org/apache/mahout/clustering/iterator/TestClusterClassifier.java
 (original)
+++ 
mahout/trunk/core/src/test/java/org/apache/mahout/clustering/iterator/TestClusterClassifier.java
 Fri May  3 11:24:46 2013
@@ -287,6 +287,6 @@ public final class TestClusterClassifier
     Vector pdf = classifier.classify(new DenseVector(2));
     assertEquals("[0,0]", "[0.333, 0.333, 0.333]", 
AbstractCluster.formatVector(pdf, null));
     pdf = classifier.classify(new DenseVector(2).assign(2));
-    assertEquals("[2,2]", "[0.545, 0.273, 0.182]", 
AbstractCluster.formatVector(pdf, null));
+    assertEquals("[2,2]", "[0.429, 0.429, 0.143]", 
AbstractCluster.formatVector(pdf, null));
   }
 }

Modified: 
mahout/trunk/core/src/test/java/org/apache/mahout/common/distance/CosineDistanceMeasureTest.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/test/java/org/apache/mahout/common/distance/CosineDistanceMeasureTest.java?rev=1478733&r1=1478732&r2=1478733&view=diff
==============================================================================
--- 
mahout/trunk/core/src/test/java/org/apache/mahout/common/distance/CosineDistanceMeasureTest.java
 (original)
+++ 
mahout/trunk/core/src/test/java/org/apache/mahout/common/distance/CosineDistanceMeasureTest.java
 Fri May  3 11:24:46 2013
@@ -19,6 +19,7 @@ package org.apache.mahout.common.distanc
 
 import org.apache.mahout.common.MahoutTestCase;
 import org.apache.mahout.math.DenseVector;
+import org.apache.mahout.math.SequentialAccessSparseVector;
 import org.apache.mahout.math.Vector;
 import org.junit.Test;
 
@@ -55,7 +56,9 @@ public final class CosineDistanceMeasure
     assertTrue(distanceMatrix[2][0] > distanceMatrix[2][1]);
     assertTrue(distanceMatrix[2][1] > distanceMatrix[2][2]);
 
-
+    // Two equal vectors (despite them being zero) should have 0 distance.
+    assertEquals(distanceMeasure.distance(new SequentialAccessSparseVector(1),
+        new SequentialAccessSparseVector(1)), 0, EPSILON);
   }
 
 }


Reply via email to