34 static const jchar TWO_CHAR[] = {(jchar) 0x8180, (jchar) 0x8382};
35 static const jint ONE_INT[] = {(jint) 0x83828180};
36 static const jbyte SIX_BYTE[] = {(jbyte) 0x80, (jbyte) 0x81, (jbyte) 0x82, (jbyte) 0x83, (jbyte) 0x84, (jbyte) 0x85};
37 static const jchar THREE_CHAR[] = {(jchar) 0x8180, (jchar) 0x8382, (jchar) 0x8584};
38 static const jbyte EIGHT_BYTE[] = {
39 (jbyte) 0x80, (jbyte) 0x81, (jbyte) 0x82,
40 (jbyte) 0x83, (jbyte) 0x84, (jbyte) 0x85,
41 (jbyte) 0x86, (jbyte) 0x87
42 };
43 static const jchar FOUR_CHAR[] = {
44 (jchar) 0x8180, (jchar) 0x8382,
45 (jchar) 0x8584, (jchar) 0x8786
46 };
47
48 static const jint TWO_INT[] = {(jint) 0x83828180, (jint) 0x87868584};
49 static const juint MURMUR3_32_X86_CHECK_VALUE = 0xB0F57EE3;
50
51 class AltHashingTest : public ::testing::Test {
52 public:
53
54 static juint murmur3_32(const int* data, int len) {
55 return AltHashing::murmur3_32(data, len);
56 }
57 };
58
59 TEST_F(AltHashingTest, murmur3_32_byte_array_test) {
60 jbyte vector[256];
61 jbyte hashes[4 * 256];
62
63 for (int i = 0; i < 256; i++) {
64 vector[i] = (jbyte) i;
65 }
66
67 // Hash subranges {}, {0}, {0,1}, {0,1,2}, ..., {0,...,255}
68 for (int i = 0; i < 256; i++) {
69 juint hash = AltHashing::murmur3_32(256 - i, vector, i);
70 hashes[i * 4] = (jbyte) hash;
71 hashes[i * 4 + 1] = (jbyte) (hash >> 8);
72 hashes[i * 4 + 2] = (jbyte) (hash >> 16);
73 hashes[i * 4 + 3] = (jbyte) (hash >> 24);
74 }
|
34 static const jchar TWO_CHAR[] = {(jchar) 0x8180, (jchar) 0x8382};
35 static const jint ONE_INT[] = {(jint) 0x83828180};
36 static const jbyte SIX_BYTE[] = {(jbyte) 0x80, (jbyte) 0x81, (jbyte) 0x82, (jbyte) 0x83, (jbyte) 0x84, (jbyte) 0x85};
37 static const jchar THREE_CHAR[] = {(jchar) 0x8180, (jchar) 0x8382, (jchar) 0x8584};
38 static const jbyte EIGHT_BYTE[] = {
39 (jbyte) 0x80, (jbyte) 0x81, (jbyte) 0x82,
40 (jbyte) 0x83, (jbyte) 0x84, (jbyte) 0x85,
41 (jbyte) 0x86, (jbyte) 0x87
42 };
43 static const jchar FOUR_CHAR[] = {
44 (jchar) 0x8180, (jchar) 0x8382,
45 (jchar) 0x8584, (jchar) 0x8786
46 };
47
48 static const jint TWO_INT[] = {(jint) 0x83828180, (jint) 0x87868584};
49 static const juint MURMUR3_32_X86_CHECK_VALUE = 0xB0F57EE3;
50
51 class AltHashingTest : public ::testing::Test {
52 public:
53
54 static juint murmur3_32(const jint* data, int len) {
55 return AltHashing::murmur3_32(data, len);
56 }
57 };
58
59 TEST_F(AltHashingTest, murmur3_32_byte_array_test) {
60 jbyte vector[256];
61 jbyte hashes[4 * 256];
62
63 for (int i = 0; i < 256; i++) {
64 vector[i] = (jbyte) i;
65 }
66
67 // Hash subranges {}, {0}, {0,1}, {0,1,2}, ..., {0,...,255}
68 for (int i = 0; i < 256; i++) {
69 juint hash = AltHashing::murmur3_32(256 - i, vector, i);
70 hashes[i * 4] = (jbyte) hash;
71 hashes[i * 4 + 1] = (jbyte) (hash >> 8);
72 hashes[i * 4 + 2] = (jbyte) (hash >> 16);
73 hashes[i * 4 + 3] = (jbyte) (hash >> 24);
74 }
|