Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions roaring/src/bitmap/statistics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ pub struct Statistics {
/// Number of bitset containers in the bitmap
pub n_bitset_containers: u32,
/// Number of values stored in array containers
pub n_values_array_containers: u32,
pub n_values_array_containers: u64,
/// Number of values stored in run containers
pub n_values_run_containers: u32,
pub n_values_run_containers: u64,
/// Number of values stored in bitset containers
pub n_values_bitset_containers: u64,
/// Number of bytes used by array containers
Expand Down Expand Up @@ -77,7 +77,7 @@ impl RoaringBitmap {
match store {
Store::Array(array) => {
cardinality += array.len();
n_values_array_containers += array.len() as u32;
n_values_array_containers += array.len();
n_bytes_array_containers += (array.capacity() * mem::size_of::<u32>()) as u64;
n_array_containers += 1;
}
Expand All @@ -89,7 +89,7 @@ impl RoaringBitmap {
}
Store::Run(runs) => {
cardinality += runs.len();
n_values_run_containers += runs.len() as u32;
n_values_run_containers += runs.len();
n_bytes_run_containers += runs.byte_size() as u64;
n_run_containers += 1;
}
Expand Down
8 changes: 8 additions & 0 deletions roaring/tests/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -150,3 +150,11 @@ fn optimize_run() {
// Calling optimize a second time should return false as no changes will be made
assert!(!bitmap.optimize());
}

#[test]
fn statistics_full_run() {
let stats = RoaringBitmap::full().statistics();
let expected: u64 = 1 << 32;
assert_eq!(stats.cardinality, expected);
assert_eq!(u64::from(stats.n_values_run_containers), expected);
}
Loading