#![allow(clippy::panic)]
use crate::{cell::CellValue, test::util::new_empty_model};
#[test]
fn test_yearfrac_basis_2_actual_360() {
let mut model = new_empty_model();
model._set("A1", "=YEARFRAC(44561,44921,2)");
model._set("A2", "=YEARFRAC(43831,44197,2)");
model._set("A3", "=YEARFRAC(44921,44561,2)");
model.evaluate();
assert_eq!(model._get_text("A1"), *"1");
if let Ok(CellValue::Number(v)) = model.get_cell_value_by_ref("Sheet1!A2") {
assert!((v - 1.016_666_666_7).abs() < 1e-10);
} else {
panic!("Expected numeric value in A2");
}
assert_eq!(model._get_text("A3"), *"1");
}
#[test]
fn test_yearfrac_basis_3_actual_365() {
let mut model = new_empty_model();
model._set("B1", "=YEARFRAC(44561,44926,3)");
model._set("B2", "=YEARFRAC(43831,44197,3)");
model._set("B3", "=YEARFRAC(44561,44561,3)");
model.evaluate();
assert_eq!(model._get_text("B1"), *"1");
if let Ok(CellValue::Number(v)) = model.get_cell_value_by_ref("Sheet1!B2") {
assert!((v - 1.002_739_726).abs() < 1e-10);
} else {
panic!("Expected numeric value in B2");
}
assert_eq!(model._get_text("B3"), *"0");
}