use chrono::Utc;
use std::sync::Arc;
use tiny_counter::{EventStore, TestClock};
#[test]
fn query_average_aggregation() {
let store = EventStore::new();
store.record_count("event", 10);
store.record_count("event", 20);
store.record_count("event", 30);
let avg = store.query("event").last_days(1).average();
assert_eq!(avg, Some(60.0)); }
#[test]
fn query_average_nonzero() {
let fixed_time = Utc::now();
let clock = TestClock::build_for_testing_at(fixed_time);
let store = EventStore::builder()
.with_clock(Arc::new(clock.clone()))
.track_days(7)
.build()
.unwrap();
store.record_count("event", 14);
let avg_nonzero = store.query("event").last_days(7).average_nonzero();
assert_eq!(avg_nonzero, Some(14.0));
}