| removeSegments(Long, Long) |  | 0% |  | 0% | 5 | 5 | 20 | 20 | 1 | 1 |
| requestCaching(long, long) |  | 0% |  | 0% | 4 | 4 | 12 | 12 | 1 | 1 |
| generateLogBloomCache(long, long) |   | 81% |   | 50% | 4 | 6 | 4 | 21 | 0 | 1 |
| cacheLogsBloomForBlockHeader(BlockHeader, Optional, Optional) |   | 84% |   | 75% | 2 | 7 | 5 | 30 | 0 | 1 |
| fillCacheFile(long, long, File) |   | 70% |   | 50% | 2 | 4 | 6 | 17 | 0 | 1 |
| lambda$requestCaching$4(long, long) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| populateLatestSegment(long) |   | 91% |   | 66% | 2 | 4 | 3 | 18 | 0 | 1 |
| lambda$cacheLogsBloomForBlockHeader$1(long) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getCachingStatus() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| ensureBloomBitsAreCorrectLength(byte[]) |   | 92% |   | 50% | 1 | 2 | 0 | 3 | 0 | 1 |
| lambda$ensurePreviousSegmentsArePresent$2(long, boolean) |  | 100% |   | 66% | 4 | 7 | 0 | 14 | 0 | 1 |
| cacheSingleBlock(BlockHeader, File, boolean) |  | 100% |  | 100% | 0 | 4 | 0 | 12 | 0 | 1 |
| TransactionLogBloomCacher(Blockchain, Path, EthScheduler) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| ensurePreviousSegmentsArePresent(long, boolean) |  | 100% |   | 50% | 1 | 2 | 0 | 4 | 0 | 1 |
| fillCacheFileWithBlock(BlockHeader, OutputStream) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$ensurePreviousSegmentsArePresent$3(long, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| cacheAll() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| calculateCacheFileName(long, Path) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$generateLogBloomCache$0(File, BlockHeader) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| calculateCacheFileName(String, Path) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getScheduler() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getCacheDir() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |