Author: gsingers
Date: Wed Nov  2 17:19:09 2011
New Revision: 1196707

URL: http://svn.apache.org/viewvc?rev=1196707&view=rev
Log:
MAHOUT-863: test for murmur hash

Added:
    mahout/trunk/math/src/test/java/org/apache/mahout/math/MurmurHash3Test.java

Added: 
mahout/trunk/math/src/test/java/org/apache/mahout/math/MurmurHash3Test.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/test/java/org/apache/mahout/math/MurmurHash3Test.java?rev=1196707&view=auto
==============================================================================
--- mahout/trunk/math/src/test/java/org/apache/mahout/math/MurmurHash3Test.java 
(added)
+++ mahout/trunk/math/src/test/java/org/apache/mahout/math/MurmurHash3Test.java 
Wed Nov  2 17:19:09 2011
@@ -0,0 +1,32 @@
+package org.apache.mahout.math;
+/**
+ * Public domain, just like the MurmurHash3 code.
+ */
+
+import junit.framework.TestCase;
+
+
+
+public class MurmurHash3Test extends TestCase {
+
+  public void testCorrectValues() throws Exception {
+    byte[] bytes = "Now is the time for all good men to come to the aid of 
their country".getBytes("UTF-8");
+    int hash=0;
+    for (int i=0; i<bytes.length; i++) {
+      hash = hash*31+(bytes[i]&0xff);
+      bytes[i] = (byte)hash;
+    }
+
+    // test different offsets.
+    for (int offset = 0; offset<10; offset++) {
+      byte[] arr = new byte[bytes.length + offset];
+      System.arraycopy(bytes, 0, arr, offset, bytes.length);
+      for (int len=0; len<bytes.length; len++) {
+        int h = MurmurHash3.murmurhash3_x86_32(arr, offset, len, len);
+        assertEquals(answers[len], h);
+      }
+    }
+  }
+
+  static int[] answers = new int[] 
{0x0,0xcf9ce026,0x7b1ebceb,0x8a59e474,0xcf337f94,0x8b678f66,0x813ff5a2,0x1c2f4b2b,0xa6fcba77,0xe658f908,0x9f2656af,0x826b85ca,0xebb6ceca,0x24c4112c,0x66eff5b0,0xa9aca7d5,0xf7f04d03,0x9d781105,0x6dcde4f3,0x69edd8a8,0x5cdcd417,0x18d67f6,0xea040c90,0xdf70ea4a,0x8fb349e6,0x79a89b03,0x7ef9fc34,0x6017f692,0x5be02058,0x9e3986f9,0x8fa6dd28,0x6733b993,0x26230d32,0x92051d69,0x8d6f37f7,0xa1653103,0x8491c23f,0x2e8f59ce,0x5ae9461e,0xfe286e6,0x844e6959,0x87e9065d,0xe302e21c,0x1b3b3296,0xd29849c9,0x4e625f26,0xa8c35ac0,0x71335a06,0xfd256d8f,0x4e5eb258,0x4e2320d1,0xba2e9832,0xb00df8eb,0xbd87594d,0x83b6dce3,0xcf8646d0,0x7e79f2e2,0xd41fcd97,0x556a93,0x4419437b,0x39aa0e4e,0x43a57251,0x9430922f,0xd784b08f,0xa2772512,0xa2a6ee4b,0x9cb1abae,0xebd2bef0};
+}
\ No newline at end of file


Reply via email to