This issue calls for improving code coverage of the bloomfilter library.
A code coverage report was created by executing cabal test --enable-coverage lsm-tree:bloomfilter-tests on the main branch as of 2 April 2025, concretely on commit 441f194.
The individual coverage deficits of all modules in the bloomfilter library where examined. All non-trivial cases of missing coverage are listed below. Each case is described by either of the following:
- A situation that never occurred, which led to code not being executed
- A value that was never used (in which case the description contains the phrase “never used”)
Missing coverage of the following kinds is not mentioned here:
- Lack of coverage that follows from the program logic (impossible situations and unneeded values)
- Derived class instantiations
- Instantiations of
NFData
- Field selectors
- Error message strings or parts thereof
- Explicit
()
Data.BloomFilter
freeze
thaw
empty
singleton
elemHashes
length
unfold
Data.BloomFilter.BitVec64
prefetchIndex
new
unsafeWrite
unsafeRead
freeze
thaw
Data.BloomFilter.Calc
Data.BloomFilter.Easy
easyList
easyNew
safeSuggestSizing
primes
suggestSizing
Data.BloomFilter.Hash
hashSalt64 @ByteArray
hashByteArray
update @Word32
update @Char
makeHashes @RealHashes
evalHashes @RealHashes
Prim (CheapHashes a)
indexLo
indexHi
Data.BloomFilter.Internal
(==) @(Bloom' h a)
Show (Bloom' h a)
Data.BloomFilter.Mutable
new
elem
elemHashes
length
Data.BloomFilter.Mutable.Internal
This issue calls for improving code coverage of the
bloomfilterlibrary.A code coverage report was created by executing
cabal test --enable-coverage lsm-tree:bloomfilter-testson themainbranch as of 2 April 2025, concretely on commit 441f194.The individual coverage deficits of all modules in the
bloomfilterlibrary where examined. All non-trivial cases of missing coverage are listed below. Each case is described by either of the following:Missing coverage of the following kinds is not mentioned here:
NFData()Data.BloomFilterfreezethawemptysingletonelemHasheslengthunfoldData.BloomFilter.BitVec64prefetchIndexnewunsafeWriteunsafeReadfreezethawData.BloomFilter.CalcfalsePositiveProbData.BloomFilter.EasyeasyListeasyNewsafeSuggestSizingprimessuggestSizingData.BloomFilter.HashhashSalt64 @ByteArrayhashByteArrayupdate @Word32update @CharmakeHashes @RealHashesevalHashes @RealHashesPrim (CheapHashes a)indexLoindexHiData.BloomFilter.Internal(==) @(Bloom' h a)Show (Bloom' h a)Data.BloomFilter.MutablenewelemelemHasheslengthData.BloomFilter.Mutable.InternalShow (MBloom' s h a)Footnotes
I actually wonder whether the corresponding guard should say
>instead of>=, thus referring to 2⁴⁸ or more bits. ↩