Skip to content
Merged
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
4 changes: 2 additions & 2 deletions roaring/src/bitmap/statistics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ pub struct Statistics {
/// Number of values stored in array containers
pub n_values_array_containers: u32,
/// 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 @@ -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
17 changes: 17 additions & 0 deletions roaring/tests/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -150,3 +150,20 @@ fn optimize_run() {
// Calling optimize a second time should return false as no changes will be made
assert!(!bitmap.optimize());
}

#[test]
fn statistics_array_count_remains_u32() {
let bitmap = RoaringBitmap::from_iter([1, 2, 65_536]);
let stats = bitmap.statistics();
let count: u32 = stats.n_values_array_containers;
assert_eq!(stats.n_array_containers, 2);
assert_eq!(count, 3);
}

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