Repository navigation
feat: complete EWKT geometry coverage - #40
Merged
Alexandre-T merged 1 commit intoOct 2, 2026
Merged
Alexandre-T merged 1 commit into
Alexandre-T merged 1 commit into
Conversation
12 tasks
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #40 +/- ##
============================================
+ Coverage 99.09% 99.13% +0.04%
- Complexity 206 220 +14
============================================
Files 24 26 +2
Lines 441 465 +24
============================================
+ Hits 437 461 +24
Misses 4 4 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Alexandre-T
deleted the
35-complete-ewkt-geometry-coverage-and-compatibility-validation
branch
October 2, 2026 20:10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Closes #35
Summary
EWKT now decodes
TRIANGLEandPOLYHEDRALSURFACEalongside the seven existing geometry families. Triangles preserve XY, XYZ, XYM and XYZM; polyhedral surfaces support XYZ and XYZM. Invalid surface structures and unsupported layouts raise the decoder'sInvalidArgumentException.The parsers reuse the existing polygonal grammar and spatial-model validation, preserving coordinates, nested structures and root SRID. Standard WKT behavior remains unchanged.
Acceptance criteria
Coverage follows the explicit inventory approved in the issue comments: nine supported geometry types, six recognized unimplemented types, and four non-instantiable types. Tests cover EMPTY values, nested collections, dimensional consistency, recursive SRID propagation and exception distinctions.
Validation
Commands run
331 tests and 1087 assertions passed. Line coverage: 99.02%. Quality checks passed; PHPMD/PDepend emit existing dependency deprecation notices. Added 65 coverage cases and updated a prior rejection fixture now that valid EWKT triangles are supported.
Standards
Normative references
No new normative interpretation. This implements the approved EWKT extension scope in issue #35 and its comments, reusing existing polygonal grammar and spatial-types constraints.
Architecture
Architecture decision
Two internal EWKT surface parsers adapt the existing polygon and multi-polygon parsers. They are registered only for the EWKT dialect.
Compatibility
Documentation
The README documents supported EWKT types, surface dimensional restrictions and decoder validation errors.
Developer handoff
Important implementation decisions
Surface constructors apply the existing spatial-model constraints; model exceptions are translated into decoder
InvalidArgumentException. Unsupported polyhedral layouts are validation failures, not unimplemented types.Compatibility considerations
The existing lexical classification of unimplemented and non-instantiable types is preserved, including its precedence over body validation. WKT retains its existing supported geometry set.
Remaining risks or questions
No unresolved governance gates or implementation questions. Independent review and CI remain pending.