From b585f9f08ea1a384f9a6473da751b0f8102d0d18 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Sat, 25 Mar 2023 13:29:20 +0100 Subject: [PATCH] KeyChainGroupTest: reduce false positive rate for the bloom filters This will hopefully reduce spurious test failures. --- .../test/java/org/bitcoinj/wallet/KeyChainGroupTest.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/src/test/java/org/bitcoinj/wallet/KeyChainGroupTest.java b/core/src/test/java/org/bitcoinj/wallet/KeyChainGroupTest.java index 6fd1d820d..430f32899 100644 --- a/core/src/test/java/org/bitcoinj/wallet/KeyChainGroupTest.java +++ b/core/src/test/java/org/bitcoinj/wallet/KeyChainGroupTest.java @@ -64,6 +64,7 @@ public class KeyChainGroupTest { private static final byte[] ENTROPY = Sha256Hash.hash("don't use a string seed like this in real life".getBytes()); private static final KeyCrypterScrypt KEY_CRYPTER = new KeyCrypterScrypt(2); private static final AesKey AES_KEY = KEY_CRYPTER.deriveKey("password"); + private static final double LOW_FALSE_POSITIVE_RATE = 0.00001; private KeyChainGroup group; private DeterministicKey watchingAccountKey; @@ -344,7 +345,7 @@ public class KeyChainGroupTest { public void bloom() { ECKey key1 = group.freshKey(KeyChain.KeyPurpose.RECEIVE_FUNDS); ECKey key2 = new ECKey(); - BloomFilter filter = group.getBloomFilter(group.getBloomFilterElementCount(), 0.001, new Random().nextInt()); + BloomFilter filter = group.getBloomFilter(group.getBloomFilterElementCount(), LOW_FALSE_POSITIVE_RATE, new Random().nextInt()); assertTrue(filter.contains(key1.getPubKeyHash())); assertTrue(filter.contains(key1.getPubKey())); assertFalse(filter.contains(key2.getPubKey())); @@ -356,7 +357,7 @@ public class KeyChainGroupTest { // We ran ahead of the lookahead buffer. assertFalse(filter.contains(group.freshKey(KeyChain.KeyPurpose.RECEIVE_FUNDS).getPubKey())); group.importKeys(key2); - filter = group.getBloomFilter(group.getBloomFilterElementCount(), 0.001, new Random().nextInt()); + filter = group.getBloomFilter(group.getBloomFilterElementCount(), LOW_FALSE_POSITIVE_RATE, new Random().nextInt()); assertTrue(filter.contains(key1.getPubKeyHash())); assertTrue(filter.contains(key1.getPubKey())); assertTrue(filter.contains(key2.getPubKey())); @@ -387,7 +388,7 @@ public class KeyChainGroupTest { assertEquals(expected, group.getBloomFilterElementCount()); Address address1 = group.freshAddress(KeyChain.KeyPurpose.RECEIVE_FUNDS); assertEquals(expected, group.getBloomFilterElementCount()); - BloomFilter filter = group.getBloomFilter(expected + 2, 0.001, new Random().nextInt()); + BloomFilter filter = group.getBloomFilter(expected + 2, LOW_FALSE_POSITIVE_RATE, new Random().nextInt()); assertTrue(filter.contains(address1.getHash())); Address address2 = group.freshAddress(KeyChain.KeyPurpose.CHANGE);