tiny-counter 0.1.0

Track event counts across time windows with fixed memory and fast queries
Documentation
//! Tests for .query_ratio() method

use tiny_counter::EventStore;

#[test]
fn query_ratio() {
    let store = EventStore::new();

    store.record_count("conversions", 25);
    store.record_count("impressions", 100);

    let ratio = store.query_ratio("conversions", "impressions").last_days(1);
    assert_eq!(ratio, Some(0.25));
}

#[test]
fn query_ratio_with_zero_denominator() {
    let store = EventStore::new();

    store.record_count("conversions", 25);

    let ratio = store.query_ratio("conversions", "impressions").last_days(1);
    assert_eq!(ratio, None);
}

#[test]
fn ratio_with_zero_numerator() {
    let store = EventStore::new();

    store.record_count("denominator", 100);

    // Ratio with missing numerator returns None (not Some(0.0))
    let ratio = store
        .query_ratio("missing_numerator", "denominator")
        .last_days(1);
    assert_eq!(ratio, None);
}