Skip to content

Shift Equal and Equivalent evaluation logic into respective evaluators#1668

Merged
JPercival merged 3 commits intomasterfrom
engine-value-type-refactor
Jan 28, 2026
Merged

Shift Equal and Equivalent evaluation logic into respective evaluators#1668
JPercival merged 3 commits intomasterfrom
engine-value-type-refactor

Conversation

@antvaset
Copy link
Copy Markdown
Contributor

@antvaset antvaset commented Jan 27, 2026

  • Move implementations of the Equal and Equivalent operators into EqualEvaluator and EquivalentEvaluator.
  • Remove state fields from Tuple and Interval.
  • Add missing implementation of Equivalent for CQL Long type. For CQL Long, equivalence is the same as equality https://cql.hl7.org/09-b-cqlreference.html#equivalent.

This should also help clearly differentiate between CQL's Equal or Equivalent and Java's .equals().

@github-actions
Copy link
Copy Markdown

Formatting check succeeded!

@codecov
Copy link
Copy Markdown

codecov bot commented Jan 27, 2026

Codecov Report

❌ Patch coverage is 61.29032% with 84 lines in your changes missing coverage. Please review.
✅ Project coverage is 65.89%. Comparing base (61ec335) to head (7e74821).
⚠️ Report is 2 commits behind head on master.

Files with missing lines Patch % Lines
...cds/cqf/cql/engine/elm/executing/EqualEvaluator.kt 61.26% 18 Missing and 25 partials ⚠️
...qf/cql/engine/elm/executing/EquivalentEvaluator.kt 60.91% 19 Missing and 15 partials ⚠️
...tlin/org/opencds/cqf/cql/engine/runtime/CqlList.kt 50.00% 2 Missing and 1 partial ⚠️
...ds/cqf/cql/engine/elm/executing/DivideEvaluator.kt 0.00% 1 Missing ⚠️
.../cqf/cql/engine/elm/executing/MultiplyEvaluator.kt 0.00% 1 Missing ⚠️
...lin/org/opencds/cqf/cql/engine/runtime/Interval.kt 75.00% 0 Missing and 1 partial ⚠️
...opencds/cqf/cql/engine/terminology/ValueSetInfo.kt 0.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #1668      +/-   ##
============================================
+ Coverage     65.88%   65.89%   +0.01%     
  Complexity     1645     1645              
============================================
  Files           477      478       +1     
  Lines         27505    27641     +136     
  Branches       5471     5497      +26     
============================================
+ Hits          18121    18215      +94     
- Misses         7084     7098      +14     
- Partials       2300     2328      +28     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

# Conflicts:
#	Src/java/engine/src/main/kotlin/org/opencds/cqf/cql/engine/elm/executing/EqualEvaluator.kt
#	Src/java/engine/src/main/kotlin/org/opencds/cqf/cql/engine/elm/executing/EquivalentEvaluator.kt
#	Src/java/engine/src/main/kotlin/org/opencds/cqf/cql/engine/runtime/Ratio.kt
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
74.9% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@JPercival JPercival merged commit a14a3d9 into master Jan 28, 2026
8 of 11 checks passed
@JPercival JPercival deleted the engine-value-type-refactor branch January 28, 2026 20:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants