diff --git a/tests/correctness/math_operators/addition.rs b/tests/correctness/math_operators/addition.rs index aaedfd004c..8633b6ad71 100644 --- a/tests/correctness/math_operators/addition.rs +++ b/tests/correctness/math_operators/addition.rs @@ -1,4 +1,5 @@ use crate::{compile_and_run, MainType}; +use chrono::TimeZone; use num::{Float, NumCast}; //addition tests @@ -234,7 +235,7 @@ fn add_date_basic() { FUNCTION main : DATE VAR date_var : DATE := D#2021-01-01; - date_10_days : DATE := 777600000; + date_10_days : DATE := 777600000000000; result : DATE; END_VAR result := date_10_days + date_var; @@ -245,7 +246,15 @@ fn add_date_basic() { let mut main = MainType::default(); let res: u64 = compile_and_run(prog.to_string(), &mut main); - assert_eq!(res, 1610236800000); + let date_var = chrono::Utc + .ymd(2021, 1, 1) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + let date_10_days = chrono::Utc + .ymd(1970, 1, 10) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + assert_eq!(res, date_10_days + date_var); } #[test] diff --git a/tests/correctness/math_operators/division.rs b/tests/correctness/math_operators/division.rs index 76cd8b77f8..09bc4ba0bc 100644 --- a/tests/correctness/math_operators/division.rs +++ b/tests/correctness/math_operators/division.rs @@ -1,4 +1,5 @@ use crate::{compile_and_run, MainType}; +use chrono::TimeZone; use num::{Float, NumCast}; //-------------------------------------------------------------- @@ -196,7 +197,7 @@ fn division_date_basic() { FUNCTION main : DATE VAR date_var : DATE := D#2021-01-01; - date_10_days : DATE := 777600000; + date_10_days : DATE := 777600000000000; result,div_result : DATE; END_VAR div_result := date_10_days / 2; @@ -208,7 +209,15 @@ fn division_date_basic() { let mut main = MainType::default(); let res: u64 = compile_and_run(prog.to_string(), &mut main); - assert_eq!(res, 1609848000000); + let date_var = chrono::Utc + .ymd(2021, 1, 1) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + let date_10_days = chrono::Utc + .ymd(1970, 1, 10) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + assert_eq!(res, date_var + date_10_days / 2); } #[test] diff --git a/tests/correctness/math_operators/mixed.rs b/tests/correctness/math_operators/mixed.rs index 1030cb3bef..6f4f115d2e 100644 --- a/tests/correctness/math_operators/mixed.rs +++ b/tests/correctness/math_operators/mixed.rs @@ -1,4 +1,5 @@ use crate::compile_and_run; +use chrono::TimeZone; use num::{Float, NumCast}; #[derive(Default)] @@ -166,8 +167,8 @@ fn mixed_math_date_basic() { FUNCTION main : DATE VAR date_var : DATE := D#2021-01-01; - date_10_days : DATE := 777600000; - date_1_day : DATE := 86400; + date_10_days : DATE := 777600000000000; + date_1_day : DATE := 86400000000000; result : DATE; END_VAR result := date_var + date_10_days * 2 - date_1_day / 2; @@ -178,7 +179,19 @@ fn mixed_math_date_basic() { let mut main = MainType::default(); let res: u64 = compile_and_run(prog.to_string(), &mut main); - assert_eq!(res, 1611014356800); + let date_var = chrono::Utc + .ymd(2021, 1, 1) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + let date_10_days = chrono::Utc + .ymd(1970, 1, 10) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + let date_1_day = chrono::Utc + .ymd(1970, 1, 2) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + assert_eq!(res, date_var + date_10_days * 2 - date_1_day / 2); } #[test] @@ -187,8 +200,8 @@ fn mixed_math_dt_basic() { FUNCTION main : DT VAR date_var : DT := D#2021-01-01; - date_10_days : DT := 777600000; - date_1_day : DT := 86400; + date_10_days : DT := 777600000000000; + date_1_day : DT := 86400000000000; result : DT; END_VAR result := date_var + date_10_days * 2 - date_1_day / 2; @@ -199,7 +212,19 @@ fn mixed_math_dt_basic() { let mut main = MainType::default(); let res: u64 = compile_and_run(prog.to_string(), &mut main); - assert_eq!(res, 1611014356800); + let date_var = chrono::Utc + .ymd(2021, 1, 1) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + let date_10_days = chrono::Utc + .ymd(1970, 1, 10) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + let date_1_day = chrono::Utc + .ymd(1970, 1, 2) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + assert_eq!(res, date_var + date_10_days * 2 - date_1_day / 2); } #[test] diff --git a/tests/correctness/math_operators/multiplication.rs b/tests/correctness/math_operators/multiplication.rs index 6baeee0ab5..c1e07a07a6 100644 --- a/tests/correctness/math_operators/multiplication.rs +++ b/tests/correctness/math_operators/multiplication.rs @@ -1,4 +1,5 @@ use crate::{assert_almost_eq, compile_and_run, MainType}; +use chrono::TimeZone; use num::{Float, NumCast}; //-------------------------------------------------------------- @@ -159,11 +160,11 @@ fn multiplication_date_basic() { FUNCTION main : DATE VAR date_var : DATE := D#2021-01-01; - date_10_days : DATE := 777600000; - result,div_result : DATE; + date_10_days : DATE := 777600000000000; + result,mul_result : DATE; END_VAR - div_result := date_10_days * 2; - result := date_var + div_result; + mul_result := date_10_days * 2; + result := date_var + mul_result; main := result; END_FUNCTION "; @@ -171,7 +172,15 @@ fn multiplication_date_basic() { let mut main = MainType::default(); let res: u64 = compile_and_run(prog.to_string(), &mut main); - assert_eq!(res, 1611014400000); + let date_var = chrono::Utc + .ymd(2021, 1, 1) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + let date_10_days = chrono::Utc + .ymd(1970, 1, 10) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + assert_eq!(res, date_var + date_10_days * 2); } #[test] diff --git a/tests/correctness/math_operators/substraction.rs b/tests/correctness/math_operators/substraction.rs index 908c55cf2b..a779175a4c 100644 --- a/tests/correctness/math_operators/substraction.rs +++ b/tests/correctness/math_operators/substraction.rs @@ -1,4 +1,5 @@ use crate::{compile_and_run, MainType}; +use chrono::TimeZone; use num::{Float, NumCast}; //-------------------------------------------------------------- @@ -207,7 +208,15 @@ fn substract_date_basic() { let mut main = MainType::default(); let res: u64 = compile_and_run(prog.to_string(), &mut main); - assert_eq!(res, 777600000); + let date_var = chrono::Utc + .ymd(2021, 1, 1) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + let date_temp = chrono::Utc + .ymd(2021, 1, 10) + .and_hms(0, 0, 0) + .timestamp_nanos() as u64; + assert_eq!(res, date_temp - date_var); } #[test]