From bdfdf4e10e5d46014291d67914f254b8b19652df Mon Sep 17 00:00:00 2001 From: Bryant Austin Date: Wed, 5 Nov 2025 12:23:26 -0700 Subject: [PATCH 1/5] added tests for timezone offset tests --- tests/cql/CQLTimeZoneOffsetTest.xml | 51 +++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tests/cql/CQLTimeZoneOffsetTest.xml diff --git a/tests/cql/CQLTimeZoneOffsetTest.xml b/tests/cql/CQLTimeZoneOffsetTest.xml new file mode 100644 index 0000000..7d86f4e --- /dev/null +++ b/tests/cql/CQLTimeZoneOffsetTest.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + @2012-04-01T00:00 = @2012-04-01T00:00+00:00 + true + + + + + + timezoneoffset from @2012-04-01T00:00 + true + + + + + @2012-04-01T00:00 < @2012-04-01T00:00+00:00 + true + + + + + + + + (timezoneoffset from @2012-04-01T00:00) = (timezoneoffset from Now()) + true + + + + + @2012-04-01T00:00 = @2012-04-01T00:00{{SERVER_OFFSET_ISO}} + true + + + + + + @2012-04-01T00:00 < @2012-04-01T00:00{{SERVER_OFFSET_ISO}} + false + + + From 1e1a3e955bcc68ef2702665d835ec43220bcfd98 Mon Sep 17 00:00:00 2001 From: Bryant Austin Date: Wed, 17 Dec 2025 11:24:56 -0700 Subject: [PATCH 2/5] commen/explanationt added for TimezoneOffsetExtraction_NoDefaultOffset_ReturnsNull --- tests/cql/CQLTimeZoneOffsetTest.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/cql/CQLTimeZoneOffsetTest.xml b/tests/cql/CQLTimeZoneOffsetTest.xml index 7d86f4e..7799d34 100644 --- a/tests/cql/CQLTimeZoneOffsetTest.xml +++ b/tests/cql/CQLTimeZoneOffsetTest.xml @@ -1,6 +1,6 @@ + name="" reference="https://cql.hl7.org/09-b-cqlreference.html#datetime-operators-2" version="1.4"> @@ -16,6 +16,12 @@ + timezoneoffset from @2012-04-01T00:00 true From f57d83e64891920842021cbeebd91267bfac653f Mon Sep 17 00:00:00 2001 From: Bryant Austin Date: Tue, 24 Mar 2026 09:21:05 -0600 Subject: [PATCH 3/5] change of output to be more correct --- tests/cql/CQLTimeZoneOffsetTest.xml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/tests/cql/CQLTimeZoneOffsetTest.xml b/tests/cql/CQLTimeZoneOffsetTest.xml index 7799d34..cfbb764 100644 --- a/tests/cql/CQLTimeZoneOffsetTest.xml +++ b/tests/cql/CQLTimeZoneOffsetTest.xml @@ -1,16 +1,17 @@ + name="CQLTimeZoneOffsetTest" reference="https://cql.hl7.org/09-b-cqlreference.html#datetime-operators-2" version="1.4"> + - @2012-04-01T00:00 = @2012-04-01T00:00+00:00 - true + @2020-01-01T12:00:00.000 = @2020-01-01T12:00:00.000+06:00 + null @@ -23,22 +24,23 @@ Having true as expected is not correct with the current expression. --> timezoneoffset from @2012-04-01T00:00 - true + null @2012-04-01T00:00 < @2012-04-01T00:00+00:00 - true + null - + + - (timezoneoffset from @2012-04-01T00:00) = (timezoneoffset from Now()) - true + (timezoneoffset from @2012-04-01T00:00) = (timezoneoffset from @2012-04-01T00:00{{SERVER_OFFSET_ISO}}) + true From 3b55fd11479fd7035d99441f2efefe984e77dd80 Mon Sep 17 00:00:00 2001 From: Bryant Austin Date: Wed, 17 Jun 2026 12:03:04 -0600 Subject: [PATCH 4/5] adjusted timezone offset test --- tests/cql/CQLTimeZoneOffsetTest.xml | 461 ++++++++++++++++++++++++++-- 1 file changed, 433 insertions(+), 28 deletions(-) diff --git a/tests/cql/CQLTimeZoneOffsetTest.xml b/tests/cql/CQLTimeZoneOffsetTest.xml index cfbb764..dff63c4 100644 --- a/tests/cql/CQLTimeZoneOffsetTest.xml +++ b/tests/cql/CQLTimeZoneOffsetTest.xml @@ -1,59 +1,464 @@ - + + + - + + + - + + - - @2020-01-01T12:00:00.000 = @2020-01-01T12:00:00.000+06:00 - null + + timezoneoffset from @2012-04-01T00:00Z + 0.0 + + + + + + + timezoneoffset from @2012-04-01T00:00+00:00 + 0.0 + + + + + + timezoneoffset from @2012-04-01T00:00+05:00 + 5.0 + + + + + + + timezoneoffset from @2012-04-01T00:00+05:30 + 5.5 + + + + + + timezoneoffset from @2012-04-01T00:00-05:00 + -5.0 + + + + + + + timezoneoffset from @2012-04-01T00:00-09:30 + -9.5 - + + - + timezoneoffset from (null as DateTime) + null + + + + + @2012-04-01T00:00+00:00 = @2012-04-01T00:00+00:00 + true + + + + + + @2012-04-01T06:00+06:00 = @2012-04-01T00:00+00:00 + true + + + + + - timezoneoffset from @2012-04-01T00:00 - null + @2012-04-01T00:00+06:00 = @2012-04-01T00:00+00:00 + false - + + - - @2012-04-01T00:00 < @2012-04-01T00:00+00:00 - null + + @2012-04-01T00:00+06:00 < @2012-04-01T00:00+00:00 + true + + + + + + @2012-04-01T06:00+06:00 < @2012-04-01T00:00+00:00 + false + + + + + @2012-04-01T00:00+00:00 < @2012-04-01T01:00+00:00 + true + + - + + - - (timezoneoffset from @2012-04-01T00:00) = (timezoneoffset from @2012-04-01T00:00{{SERVER_OFFSET_ISO}}) - true + + @2012-04-01T00:00 = @2012-04-01T00:00{{SERVER_OFFSET_ISO}} + true - + + - @2012-04-01T00:00 = @2012-04-01T00:00{{SERVER_OFFSET_ISO}} + + @2012-04-01T00:00 < @2012-04-01T00:00{{SERVER_OFFSET_ISO}} + false + + + + + + + @2012-04-01T00:00 < @2012-04-01T01:00{{SERVER_OFFSET_ISO}} true - + + - - @2012-04-01T00:00 < @2012-04-01T00:00{{SERVER_OFFSET_ISO}} + + @2012-04-01T01:00 < @2012-04-01T00:00{{SERVER_OFFSET_ISO}} + false + + + + + + + @2012-04-01T00:00 = @2012-04-01T00:00 + true + + + + + + + @2012-04-01T00:00 = @2012-04-01T01:00 + false + + + + + + @2012-04-01T00:00 < @2012-04-01T01:00 + true + + + + + + + + timezoneoffset from @2012-04-01T00:00Z + 0.0 + + + + + + + + timezoneoffset from @2012-04-01T00:00+05:30 + 5.5 + + + + + + + timezoneoffset from @2012-04-01T00:00-05:00 + -5.0 + + + + + + + timezoneoffset from (null as DateTime) + null + + + + + + + + + + + + timezoneoffset from @2012-04-01T00:00Z + 0.0 + + + + + + + timezoneoffset from @2012-04-01T00:00+00:00 + 0.0 + + + + + + timezoneoffset from @2012-04-01T00:00+05:00 + 5.0 + + + + + + + timezoneoffset from @2012-04-01T00:00+05:30 + 5.5 + + + + + + timezoneoffset from @2012-04-01T00:00-05:00 + -5.0 + + + + + + + timezoneoffset from @2012-04-01T00:00-09:30 + -9.5 + + + + + + + timezoneoffset from (null as DateTime) + null + + + + + + + (timezoneoffset from @2012-04-01T00:00Z) = (timezoneoffset from @2012-04-01T00:00+00:00) + true + + + + + + (timezoneoffset from @2012-04-01T00:00+05:00) > (timezoneoffset from @2012-04-01T00:00-05:00) + true + + + + + + + (timezoneoffset from @2012-04-01T00:00+05:30) + (timezoneoffset from @2012-04-01T00:00-05:00) + 0.5 + + + + + @2012-04-01T00:00+05:00 = @2012-04-01T00:00+05:00 + true + + + + + + @2012-04-01T06:00+06:00 = @2012-04-01T00:00+00:00 + true + + + + + + @2012-04-01T00:00+06:00 = @2012-04-01T00:00+00:00 false + + + + + @2012-04-01T00:00+06:00 < @2012-04-01T00:00+00:00 + true + + + + + @2012-04-01T06:00+06:00 < @2012-04-01T00:00+00:00 + false + + + + + @2012-04-01T00:00+00:00 < @2012-04-01T01:00+00:00 + true + + + + + + (null as DateTime) < @2012-04-01T00:00+00:00 + null + + From fe4a7dea1edd7211ef0d06ffe4aeadfb3e2721ff Mon Sep 17 00:00:00 2001 From: Bryant Austin Date: Thu, 18 Jun 2026 09:09:23 -0600 Subject: [PATCH 5/5] comment added to DateTimeDifferenceWeeks3 for why output should be different --- tests/cql/CqlDateTimeOperatorsTest.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/cql/CqlDateTimeOperatorsTest.xml b/tests/cql/CqlDateTimeOperatorsTest.xml index 08e060e..18e4231 100644 --- a/tests/cql/CqlDateTimeOperatorsTest.xml +++ b/tests/cql/CqlDateTimeOperatorsTest.xml @@ -658,7 +658,12 @@ difference in weeks between @2012-03-10T22:05:09 and @2012-03-24T07:19:33 - 2 + 1 +