use super::super::*;
use crate::types::Value;
fn num(serial: f64) -> Value {
Value::Number(serial)
}
#[test]
fn y_2020_to_2024_jun15() {
let args = [num(43831.0), num(45458.0), Value::Text("Y".into())];
assert_eq!(datedif_fn(&args), Value::Number(4.0));
}
#[test]
fn m_2020_to_2024_jun15() {
let args = [num(43831.0), num(45458.0), Value::Text("M".into())];
assert_eq!(datedif_fn(&args), Value::Number(53.0));
}
#[test]
fn d_jan_to_jun_2024() {
let args = [num(45292.0), num(45458.0), Value::Text("D".into())];
assert_eq!(datedif_fn(&args), Value::Number(166.0));
}
#[test]
fn md_days_ignoring_month_year() {
let args = [num(45296.0), num(45458.0), Value::Text("MD".into())];
assert_eq!(datedif_fn(&args), Value::Number(10.0));
}
#[test]
fn ym_months_ignoring_year() {
let args = [num(43831.0), num(45458.0), Value::Text("YM".into())];
assert_eq!(datedif_fn(&args), Value::Number(5.0));
}
#[test]
fn yd_days_ignoring_year() {
let args = [num(43831.0), num(45458.0), Value::Text("YD".into())];
assert_eq!(datedif_fn(&args), Value::Number(166.0));
}
#[test]
fn y_within_same_year() {
let args = [num(45292.0), num(45657.0), Value::Text("Y".into())];
assert_eq!(datedif_fn(&args), Value::Number(0.0));
}
#[test]
fn unit_is_case_insensitive() {
let args = [num(43831.0), num(45458.0), Value::Text("y".into())];
assert_eq!(datedif_fn(&args), Value::Number(4.0));
}