Files
IronCalc/base/src/test/test_today.rs
2023-11-20 10:46:19 +01:00

51 lines
1.3 KiB
Rust

#![allow(clippy::unwrap_used)]
use crate::mock_time;
use crate::model::Model;
use crate::test::util::new_empty_model;
// 14:44 20 Mar 2023 Berlin
const TIMESTAMP_2023: i64 = 1679319865208;
#[test]
fn today_basic() {
let mut model = new_empty_model();
model._set("A1", "=TODAY()");
model._set("A2", "=TEXT(A1, \"yyyy/m/d\")");
model.evaluate();
assert_eq!(model._get_text("A1"), *"08/11/2022");
assert_eq!(model._get_text("A2"), *"2022/11/8");
}
#[test]
fn today_with_wrong_tz() {
let model = Model::new_empty("model", "en", "Wrong Timezone");
assert!(model.is_err());
}
#[test]
fn now_basic_utc() {
mock_time::set_mock_time(TIMESTAMP_2023);
let mut model = Model::new_empty("model", "en", "UTC").unwrap();
model._set("A1", "=TODAY()");
model._set("A2", "=NOW()");
model.evaluate();
assert_eq!(model._get_text("A1"), *"20/03/2023");
assert_eq!(model._get_text("A2"), *"45005.572511574");
}
#[test]
fn now_basic_europe_berlin() {
mock_time::set_mock_time(TIMESTAMP_2023);
let mut model = Model::new_empty("model", "en", "Europe/Berlin").unwrap();
model._set("A1", "=TODAY()");
model._set("A2", "=NOW()");
model.evaluate();
assert_eq!(model._get_text("A1"), *"20/03/2023");
// This is UTC + 1 hour: 45005.572511574 + 1/24
assert_eq!(model._get_text("A2"), *"45005.614178241");
}