use hdrhistogram::Histogram;
#[test]
fn histogram_autosizing_edges() {
let mut histogram = Histogram::<u64>::new(3).unwrap();
histogram += (1_u64 << 62) - 1;
assert_eq!(histogram.buckets(), 52);
assert_eq!(histogram.distinct_values(), 54272);
histogram += u64::max_value();
assert_eq!(histogram.buckets(), 54);
assert_eq!(histogram.distinct_values(), 56320);
}
#[test]
fn histogram_autosizing() {
let mut histogram = Histogram::<u64>::new(3).unwrap();
for i in 0..63 {
histogram += 1_u64 << i;
}
assert_eq!(histogram.buckets(), 53);
assert_eq!(histogram.distinct_values(), 55296);
}
#[test]
fn autosizing_add() {
let mut histogram1 = Histogram::<u64>::new(2).unwrap();
let mut histogram2 = Histogram::<u64>::new(2).unwrap();
histogram1 += 1000_u64;
histogram1 += 1000000000_u64;
histogram2 += &histogram1;
assert!(histogram2.equivalent(histogram2.max(), 1000000000_u64));
}
#[test]
fn autosizing_across_continuous_range() {
let mut histogram = Histogram::<u64>::new(2).unwrap();
for i in 0..10000000_u64 {
histogram += i;
}
}