ocpi-tariffs 0.45.0

OCPI tariff calculations
Documentation
use chrono::TimeDelta;

use crate::Kwh;

use super::power_to_time;

#[test]
fn should_min() {
    let dt = power_to_time(Kwh::from(0), Kwh::from(10), TimeDelta::minutes(100)).unwrap();
    assert_eq!(dt, TimeDelta::minutes(0));
}

#[test]
fn should_max() {
    let dt = power_to_time(Kwh::from(10), Kwh::from(10), TimeDelta::minutes(100)).unwrap();
    assert_eq!(dt, TimeDelta::minutes(100));
}

#[test]
fn should_mid() {
    let dt = power_to_time(Kwh::from(5), Kwh::from(10), TimeDelta::minutes(100)).unwrap();
    assert_eq!(dt, TimeDelta::minutes(50));
}

#[test]
fn should_return_none_when_exceeded() {
    let dt = power_to_time(Kwh::from(11), Kwh::from(10), TimeDelta::minutes(100));
    assert_eq!(dt, None);
}

#[test]
fn should_handle_zero() {
    let dt = power_to_time(Kwh::from(0), Kwh::from(0), TimeDelta::minutes(100)).unwrap();
    assert_eq!(dt, TimeDelta::minutes(0));
}

#[test]
fn should_handle_negative_used() {
    let dt = power_to_time(Kwh::from(-10.0), Kwh::from(10), TimeDelta::minutes(100));
    assert_eq!(dt, None);
}

#[test]
fn should_handle_negative_total() {
    let dt = power_to_time(Kwh::from(10.0), Kwh::from(-10.0), TimeDelta::minutes(100));
    assert_eq!(dt, None);
}