Repository navigation
feat: add additional ISO geometry types - #12
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #12 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 7 7
Lines 205 212 +7
=========================================
+ Hits 205 212 +7 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Independent Reviewer: CHANGES REQUIREDReviewed revision: BLOCKING — required Markdown quality check failsIndependently running These failures are pre-existing: Expected correction: fix these six Markdown violations without disabling the rules, then rerun the check. This is the sole blocking finding. Functional, normative and compatibility verification
Independent validation and pre-merge Definition of Done
Non-blocking observation: quality-tool dependencies emit PHP 8.4 deprecation notices without failing the checks. No functional defect or regression was found. This report is posted by the independent Reviewer agent; it does not merge the PR or declare the story Done. |
GeometryTypeEnumnow identifies eight additional ISO geometry types:BREPSOLID,CIRCLE,CLOTHOID,COMPOUNDSURFACE,ELLIPTICALCURVE,GEODESICSTRING,NURBSCURVE, andSPIRALCURVE. The Product Owner explicitly approvedBREPSOLIDin place of the story's originalREPSOLIDspelling.The new types have complete classifications across all five enum methods.
BREPSOLIDhas volume dimension,COMPOUNDSURFACEhas surface dimension, and the other additions have curve dimension. All are instantiable; none is a multi-geometry or geometry collection.CIRCLEandGEODESICSTRINGexposePOINTcomponents; other additions return no concrete homogeneous component, consistently with the existing model.Tests cover the names, backed values, native enum conversions, and all five classification methods for every added type. Existing cases retain their behavior. The README documents the additions and corrects the description of existing non-instantiable cases. This change adds no concrete geometry implementation or serialization support.
Normative evidence: ISO/IEC DIS 13249-3 fifth-edition ballot text N2593, dated 2015-01-25, clauses 4.2.7–4.2.12, 4.2.20, 4.2.22, 7.4.1–7.9.1, 8.7.1, and 9.2.1 (source PDF). This is draft material, not the final published 2016 edition.
Validation performed locally:
composer validate --strict: passed.composer test: passed, 61 tests and 483 assertions.composer test-coverage: passed, reports generated.composer quality: passed; existing dependency deprecation notices under PHP 8.4.git diff --check: passed.composer markdownlint: failed on six pre-existing violations in unchangedCHANGELOG.md(MD024 at lines 18, 22, 32, 48, 58; MD013 at line 20). This remains a known validation limitation.Closes #10.