pub trait WeightedSum<Item, V>{
// Required method
fn weighted_sum(self) -> V;
}
Expand description
use math::{
interval::I64Interval,
iter::{
binned_interval_iter::{AggregateOp, IntoBinnedIntervalIter},
weighted_sum::WeightedSum,
},
partition::integer_interval_map::IntegerIntervalMap,
};
let bin_size = 5;
let mut interval_map = IntegerIntervalMap::new();
interval_map.aggregate(I64Interval::new(-1, 1), 2);
interval_map.aggregate(I64Interval::new(14, 17), -1);
assert_eq!(
interval_map
.iter()
.into_binned_interval_iter(
bin_size,
AggregateOp::Average,
Box::new(|(&interval, &val)| (interval, val as f64))
)
.weighted_sum(),
2.0
);