I downloaded the Java source for SimMetrics after reading the Help Wanted post for a Mahalanobis Distance algorithm. I looked at the EuclideanDistance.java file for a start. I ran the JUnit test and it failed output was
junit.framework.AssertionFailedError: expected:<0.29289323> but was:<0.5>
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.failNotEquals(Assert.java:277)
at junit.framework.Assert.assertEquals(Assert.java:64)
at junit.framework.Assert.assertEquals(Assert.java:71)
at uk.ac.shef.wit.simmetrics.similaritymetrics.EuclideanDistanceTest.testGetSimilarity(EuclideanDistanceTest.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:228)
at junit.framework.TestSuite.run(TestSuite.java:223)
at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:35)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
I'm kinda of baffled about what the Euclidean Distance between two string is supposed to represent. Any pointers?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for this it slipped through somehow... the error is in the junit test not the underlying class, this is now corrected in CVS, it will be a while with xmas before i have time to put a new release our to fix it in the file downloads.
I downloaded the Java source for SimMetrics after reading the Help Wanted post for a Mahalanobis Distance algorithm. I looked at the EuclideanDistance.java file for a start. I ran the JUnit test and it failed output was
junit.framework.AssertionFailedError: expected:<0.29289323> but was:<0.5>
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.failNotEquals(Assert.java:277)
at junit.framework.Assert.assertEquals(Assert.java:64)
at junit.framework.Assert.assertEquals(Assert.java:71)
at uk.ac.shef.wit.simmetrics.similaritymetrics.EuclideanDistanceTest.testGetSimilarity(EuclideanDistanceTest.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:228)
at junit.framework.TestSuite.run(TestSuite.java:223)
at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:35)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
I'm kinda of baffled about what the Euclidean Distance between two string is supposed to represent. Any pointers?
Thanks for this it slipped through somehow... the error is in the junit test not the underlying class, this is now corrected in CVS, it will be a while with xmas before i have time to put a new release our to fix it in the file downloads.
Euclidean distance - is a very high dimensional vector space, each term being a dimension, see http://www.dcs.shef.ac.uk/~sam/stringmetrics.html#dist for more details or http://en.wikipedia.org/wiki/Euclidean_distance just the n-space is with dimensions equal to unique terms. It would be good if you do get time to look at the Mahalanobis Distance, let me know if you need anything regarding this.