Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions tests/cql/CqlNullologicalOperatorsTest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,35 @@
<expression>Coalesce({ null, null, @T05:15:33.556 })</expression>
<output>@T05:15:33.556</output>
</test>
<test name="Coalesce15" version="1.0">
<capability code="nullological-operators" />
<!-- returns the first non-null result; per CQL spec "Coalesce" (https://cql.hl7.org/09-b-cqlreference.html#coalesce) -->
<expression>Coalesce(null, 15, null)</expression>
<output>15</output>
</test>
<test name="CoalesceFourArgs" version="1.0">
<capability code="nullological-operators" />
<!-- 4-argument overload; per CQL spec "Coalesce" (https://cql.hl7.org/09-b-cqlreference.html#coalesce) -->
<expression>Coalesce(null, null, null, 'd')</expression>
<output>'d'</output>
</test>
<test name="CoalesceFiveArgs" version="1.0">
<capability code="nullological-operators" />
<!-- 5-argument overload; per CQL spec "Coalesce" (https://cql.hl7.org/09-b-cqlreference.html#coalesce) -->
<expression>Coalesce(null, null, null, null, 'e')</expression>
<output>'e'</output>
</test>
<test name="CoalesceAllNullList" version="1.0">
<capability code="nullological-operators" />
<!-- all arguments null => null; per CQL spec "Coalesce" (https://cql.hl7.org/09-b-cqlreference.html#coalesce) -->
<expression>Coalesce({ null, null, null })</expression>
<output>null</output>
</test>
<test name="CoalesceMoreThanFiveArgs" version="1.0">
<capability code="nullological-operators" />
<!-- invalid: more than 5 inputs must be represented as a list, so there is no matching overload; per CQL spec "Coalesce" (https://cql.hl7.org/09-b-cqlreference.html#coalesce): "more than 5 inputs must be represented as list" -->
<expression invalid="semantic">Coalesce(null, 15, null, null, null, null)</expression>
</test>
</group>
<group name="IsNull" version="1.0">
<capability code="nullological-operators" />
Expand Down Expand Up @@ -87,6 +116,18 @@
<expression>IsNull(0)</expression>
<output>false</output>
</test>
<test name="IsNullOperatorTrue" version="1.0">
<capability code="nullological-operators" />
<!-- operator syntax (spec canonical form); per CQL spec "IsNull" (https://cql.hl7.org/09-b-cqlreference.html#isnull) -->
<expression>null is null</expression>
<output>true</output>
</test>
<test name="IsNullOperatorFalse" version="1.0">
<capability code="nullological-operators" />
<!-- operator syntax (spec canonical form); per CQL spec "IsNull" (https://cql.hl7.org/09-b-cqlreference.html#isnull) -->
<expression>'abc' is null</expression>
<output>false</output>
</test>
</group>
<group name="IsFalse" version="1.0">
<capability code="nullological-operators" />
Expand All @@ -105,6 +146,24 @@
<expression>IsFalse(null)</expression>
<output>false</output>
</test>
<test name="IsFalseOperatorTrue" version="1.0">
<capability code="nullological-operators" />
<!-- operator syntax (spec canonical form); per CQL spec "IsFalse" (https://cql.hl7.org/09-b-cqlreference.html#isfalse) -->
<expression>false is false</expression>
<output>true</output>
</test>
<test name="IsFalseOperatorFalse" version="1.0">
<capability code="nullological-operators" />
<!-- operator syntax (spec canonical form); per CQL spec "IsFalse" (https://cql.hl7.org/09-b-cqlreference.html#isfalse) -->
<expression>true is false</expression>
<output>false</output>
</test>
<test name="IsFalseOperatorNull" version="1.0">
<capability code="nullological-operators" />
<!-- null is not false => false; per CQL spec "IsFalse" (https://cql.hl7.org/09-b-cqlreference.html#isfalse) -->
<expression>null is false</expression>
<output>false</output>
</test>
</group>
<group name="IsTrue" version="1.0">
<capability code="nullological-operators" />
Expand All @@ -123,5 +182,23 @@
<expression>IsTrue(null)</expression>
<output>false</output>
</test>
<test name="IsTrueOperatorTrue" version="1.0">
<capability code="nullological-operators" />
<!-- operator syntax (spec canonical form); per CQL spec "IsTrue" (https://cql.hl7.org/09-b-cqlreference.html#istrue) -->
<expression>true is true</expression>
<output>true</output>
</test>
<test name="IsTrueOperatorFalse" version="1.0">
<capability code="nullological-operators" />
<!-- operator syntax (spec canonical form); per CQL spec "IsTrue" (https://cql.hl7.org/09-b-cqlreference.html#istrue) -->
<expression>false is true</expression>
<output>false</output>
</test>
<test name="IsTrueOperatorNull" version="1.0">
<capability code="nullological-operators" />
<!-- null is not true => false; per CQL spec "IsTrue" (https://cql.hl7.org/09-b-cqlreference.html#istrue) -->
<expression>null is true</expression>
<output>false</output>
</test>
</group>
</tests>
Loading