From cc9ab128967c3ed6cbf4692c46c4dac595893ef3 Mon Sep 17 00:00:00 2001 From: Bryant Austin Date: Mon, 13 Jul 2026 13:45:42 -0600 Subject: [PATCH] Add in-progress String operators pass (MatchesFull, SplitOnMatches, & operator, empty-affix/pattern, Combine null handling) for connectathon testing Co-Authored-By: Claude Opus 4.8 (1M context) --- tests/cql/CqlStringOperatorsTest.xml | 103 +++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/tests/cql/CqlStringOperatorsTest.xml b/tests/cql/CqlStringOperatorsTest.xml index e1836aa..3bb9764 100644 --- a/tests/cql/CqlStringOperatorsTest.xml +++ b/tests/cql/CqlStringOperatorsTest.xml @@ -24,6 +24,18 @@ Combine({'a', 'b', 'c'}, '-') 'a-b-c' + + + + Combine({'a', 'b', 'c', null}) + 'abc' + + + + + Combine({'a', 'b', 'c'}, null) + 'abc' + @@ -52,6 +64,24 @@ 'a' + 'b' 'ab' + + + + 'a' + null + null + + + + + 'a' & null + 'a' + + + + + 'John' & null & ' Doe' + 'John Doe' + @@ -70,6 +100,12 @@ EndsWith('Chris Schuler is the man!!', 'n!') false + + + + EndsWith('ABC', '') + true + @@ -138,6 +174,12 @@ LastPositionOf('hi', 'Say hi to Ohio!') 11 + + + + LastPositionOf('', 'ABCDE') + 5 + @@ -234,6 +276,28 @@ true + + + + + + + MatchesFull('N8000123123', 'N[0-9]{10}') + true + + + + + MatchesFull('N8000123123', 'N[0-9]{8}') + false + + + + + MatchesFull('ABC', null) + null + + @@ -266,6 +330,12 @@ PositionOf('c', 'ab') -1 + + + + PositionOf('', 'ABCDE') + 0 + @@ -318,6 +388,33 @@ {'a','b'} + + + + + + SplitOnMatches(null, ',') + null + + + + + SplitOnMatches('A,B,C', ',') + {'A', 'B', 'C'} + + + + + SplitOnMatches('A1B2C', '[0-9]') + {'A', 'B', 'C'} + + + + + SplitOnMatches('ABC', ',') + {'ABC'} + + @@ -345,6 +442,12 @@ StartsWith('Breathe deep the gathering gloom', 'bre') false + + + + StartsWith('ABCDE', '') + true +