Skip to content

feat: add additional ISO geometry types - #12

Merged
Alexandre-T merged 2 commits into
mainfrom
10-story---add-additional-iso-geometry-types
Oct 3, 2026
Merged

Alexandre-T merged 2 commits into
mainfrom
10-story---add-additional-iso-geometry-types

Conversation

@Alexandre-T

Copy link
Copy Markdown
Contributor

GeometryTypeEnum now identifies eight additional ISO geometry types: BREPSOLID, CIRCLE, CLOTHOID, COMPOUNDSURFACE, ELLIPTICALCURVE, GEODESICSTRING, NURBSCURVE, and SPIRALCURVE. The Product Owner explicitly approved BREPSOLID in place of the story's original REPSOLID spelling.

The new types have complete classifications across all five enum methods. BREPSOLID has volume dimension, COMPOUNDSURFACE has surface dimension, and the other additions have curve dimension. All are instantiable; none is a multi-geometry or geometry collection. CIRCLE and GEODESICSTRING expose POINT components; 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 unchanged CHANGELOG.md (MD024 at lines 18, 22, 32, 48, 58; MD013 at line 20). This remains a known validation limitation.

Closes #10.

@Alexandre-T Alexandre-T linked an issue Oct 3, 2026 that may be closed by this pull request
12 tasks done
@codecov-commenter

codecov-commenter commented Oct 3, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (f6e1368) to head (49bc5de).

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.
📢 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.

@Alexandre-T

Copy link
Copy Markdown
Contributor Author

Independent Reviewer: CHANGES REQUIRED

Reviewed revision: 49f1a8eea67135726cdff346a28ec3e3b32271a1 against base f6e1368b8f10c5f8e0dad658543946734257492b.

BLOCKING — required Markdown quality check fails

Independently running composer markdownlint reproduces six failures in CHANGELOG.md: MD024 at lines 18, 22, 32, 48 and 58; MD013 at line 20.

These failures are pre-existing: CHANGELOG.md is unchanged from the base. They are not a functional regression introduced by this PR. However, CONTRIBUTING.md requires every listed command to succeed and explicitly includes project-wide Markdown linting. The shared LongitudeOne governance Definition of Done also requires all applicable repository quality checks to pass. No approved exemption was supplied.

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

  • Read Story Story - Add additional ISO geometry types #10 and PR feat: add additional ISO geometry types #12 directly; the story now specifies the approved BREPSOLID spelling.
  • All eight requested enum cases and backed values are present, with tests for their identities, native enum conversions and all five methods.
  • Independently inspected componentType(), isCollection(), isInstantiable(), isMulti() and topologicalDimension().
  • Dynamically compared all five methods for all 19 existing cases against the base: 95 identical results, with existing names and values preserved.
  • Independently extracted and inspected the source PDF: ISO/IEC DIS 13249-3 ballot N2593 dated 2015-01-25, clauses 4.2.7–4.2.12, 4.2.20, 4.2.22 and corresponding SQL type definitions. This is draft material, not the final published 2016 edition. Classifications agree with that source; component classification preserves the existing concrete homogeneous component convention.
  • README documents the additions and corrects the existing instantiability description. Scope remains limited to shared enum identification; no geometry implementation, serialization or migration was introduced.
  • The additive API follows the approved story and naming decision. No additional unresolved Architecture, API, Breaking or Normative Gate was identified.

Independent validation and pre-merge Definition of Done

  • composer test: passed, 61 tests and 483 assertions.
  • composer validate --strict: passed.
  • composer quality: passed after allowing the local socket needed by its worker processes.
  • git diff --check: passed.
  • CI verified on the reviewed revision: PHP 8.3, 8.4, 8.5 and GitGuardian all successful.
  • Functional acceptance, compatibility, documentation and normative review are satisfactory. The required Markdown check prevents completion of the pre-merge quality requirements.

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.

@Alexandre-T
Alexandre-T merged commit 880476b into main Oct 3, 2026
4 checks passed
@Alexandre-T
Alexandre-T deleted the 10-story---add-additional-iso-geometry-types branch October 3, 2026 20:39
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.

Story - Add additional ISO geometry types

2 participants