/** @since 0.9.10 */ public void testExplore() { List<Hash> keys = set.getExploreKeys(-1000); assertTrue(keys.size() > 0); }
/** @since 0.9.10 */ public void testClosest() { byte val[] = new byte[Hash.HASH_LENGTH]; for (int i = 0; i < 23; i++) { context.random().nextBytes(val); Hash h = new Hash(val); List<Hash> c = set.getClosest(h, i); assertTrue(c.size() == i); } } }
private void addRandom(int count) { for (int i = 0; i < count; i++) { byte val[] = new byte[Hash.HASH_LENGTH]; context.random().nextBytes(val); Hash h = new Hash(val); // in the highly unlikely chance we randomly generate a hash equal to us assertTrue(set.add(h) || h.equals(usHash)); } }
/** @since 0.9.10 */ public void testOrder() { int bits = Hash.HASH_LENGTH * 8; int errors = 0; int lastEnd = -1; for (KBucket<Hash> b : set.getBuckets()) { int beg = b.getRangeBegin(); if (beg != lastEnd + 1) { log.error("Out of order: " + b); errors++; } lastEnd = b.getRangeEnd(); } if (lastEnd != (bits * (1 << (B-1))) - 1) { log.error("Out of order: last=" + lastEnd); errors++; } assertTrue(errors == 0); }
/** @since 0.9.10 */ public void testAudit() { int errors = 0; for (KBucket<Hash> b : set.getBuckets()) { for (Hash sds : b.getEntries()) { int range = set.getRange(sds); if (range < b.getRangeBegin() || range > b.getRangeEnd()) { log.error("Hash " + sds + " with range " + range + " does not belong in " + b); errors++; } } } assertTrue(errors == 0); }
/** @since 0.9.10 */ public void testGenRandom() { int errors = 0; for (KBucket<Hash> b : set.getBuckets()) { for (int j = 0; j < 4000; j++) { Hash rand = set.generateRandomKey(b); int range = set.getRange(rand); if (range < b.getRangeBegin() || range > b.getRangeEnd()) { log.error("Generate random key failed range=" + range + " for " + rand + " meant for bucket " + b); errors++; } } } assertTrue(errors == 0); }