Home | History | Annotate | Download | only in hash

Lines Matching refs:hashFunction

35  * Various utilities for testing {@link HashFunction}s.
58 static void verifyHashFunction(HashFn hashFunction, int hashbits, int expected) {
68 byte[] hash = hashFunction.hash(Arrays.copyOf(key, i), seed);
73 byte[] result = hashFunction.hash(hashes, 0);
245 static void checkNoFunnels(HashFunction function) {
288 static void checkAvalanche(HashFunction function, int trials, double epsilon) {
328 static void checkNo2BitCharacteristics(HashFunction function) {
375 static void check2BitAvalanche(HashFunction function, int trials, double epsilon) {
414 static void assertInvariants(HashFunction hashFunction) {
419 HashCode hashcode1 = hashFunction.hashObject(o, HashTestUtils.BAD_FUNNEL);
420 HashCode hashcode2 = hashFunction.hashObject(o, HashTestUtils.BAD_FUNNEL);
422 Assert.assertEquals(hashFunction.bits(), hashcode1.bits());
423 Assert.assertEquals(hashFunction.bits(), hashcode1.asBytes().length * 8);
428 assertHashBytesThrowsCorrectExceptions(hashFunction);
429 assertIndependentHashers(hashFunction);
430 assertShortcutsAreEquivalent(hashFunction, 512);
433 static void assertHashBytesThrowsCorrectExceptions(HashFunction hashFunction) {
434 hashFunction.hashBytes(new byte[64], 0, 0);
437 hashFunction.hashBytes(new byte[128], -1, 128);
441 hashFunction.hashBytes(new byte[128], 64, 256 /* too long len */);
445 hashFunction.hashBytes(new byte[64], 0, -1);
450 static void assertIndependentHashers(HashFunction hashFunction) {
453 hashFunction, new Random(1L), numActions);
454 HashCode expected2 = randomHash(hashFunction, new Random(2L), numActions);
459 Hasher hasher1 = hashFunction.newHasher();
460 Hasher hasher2 = hashFunction.newHasher();
470 static HashCode randomHash(HashFunction hashFunction, Random random, int numActions) {
471 Hasher hasher = hashFunction.newHasher();
478 private static void assertShortcutsAreEquivalent(HashFunction hashFunction, int trials) {
481 assertHashBytesEquivalence(hashFunction, random);
482 assertHashIntEquivalence(hashFunction, random);
483 assertHashLongEquivalence(hashFunction, random);
484 assertHashStringEquivalence(hashFunction, random);
485 assertHashStringWithSurrogatesEquivalence(hashFunction, random);
489 private static void assertHashBytesEquivalence(HashFunction hashFunction, Random random) {
493 assertEquals(hashFunction.hashBytes(bytes),
494 hashFunction.newHasher(size).putBytes(bytes).hash());
497 assertEquals(hashFunction.hashBytes(bytes, off, len),
498 hashFunction.newHasher(size).putBytes(bytes, off, len).hash());
501 private static void assertHashIntEquivalence(HashFunction hashFunction, Random random) {
503 assertEquals(hashFunction.hashInt(i),
504 hashFunction.newHasher().putInt(i).hash());
507 private static void assertHashLongEquivalence(HashFunction hashFunction, Random random) {
509 assertEquals(hashFunction.hashLong(l),
510 hashFunction.newHasher().putLong(l).hash());
521 private static void assertHashStringEquivalence(HashFunction hashFunction, Random random) {
525 hashFunction.hashUnencodedChars("abc"),
526 hashFunction.newHasher().putUnencodedChars("abc").hash(),
527 hashFunction.newHasher().putUnencodedChars("ab").putUnencodedChars("c").hash(),
528 hashFunction.newHasher().putUnencodedChars("a").putUnencodedChars("bc").hash(),
529 hashFunction.newHasher().putUnencodedChars("a").putUnencodedChars("b")
531 hashFunction.newHasher().putChar('a').putUnencodedChars("bc").hash(),
532 hashFunction.newHasher().putUnencodedChars("ab").putChar('c').hash(),
533 hashFunction.newHasher().putChar('a').putChar('b').putChar('c').hash())
540 assertEquals(hashFunction.hashUnencodedChars(string),
541 hashFunction.newHasher().putUnencodedChars(string).hash());
543 assertEquals(hashFunction.hashString(string, charset),
544 hashFunction.newHasher().putString(string, charset).hash());
554 HashFunction hashFunction, Random random) {
561 assertEquals(hashFunction.hashUnencodedChars(string),
562 hashFunction.newHasher().putUnencodedChars(string).hash());