Skip to content

Implement Block 39 generic relationship equations and shared solve integration#36

Merged
GideonBa merged 29 commits into
mainfrom
block39-generic-relationship-equations
Jul 13, 2026
Merged

Implement Block 39 generic relationship equations and shared solve integration#36
GideonBa merged 29 commits into
mainfrom
block39-generic-relationship-equations

Conversation

@GideonBa

Copy link
Copy Markdown
Owner

Implements Block 39 only: adds capability-driven Coincident, Parallel, and Perpendicular equations, enables their existing local/cross-hierarchy solve and motion graph participation, reuses shared residual scaling, central finite differences, Gauss-Newton solving, semantic PartDocument freshness, atomic application, and measured Jacobian-rank diagnostics, and closes non-planar Line/Axis Angle execution already selected by Block 37. Adds focused acceptance coverage and updates the canonical documentation handoff to Block 40. No persistence or parallel solver infrastructure is added.

@GideonBa GideonBa closed this Jul 13, 2026
@GideonBa GideonBa reopened this Jul 13, 2026
@GideonBa GideonBa closed this Jul 13, 2026
@GideonBa GideonBa reopened this Jul 13, 2026
@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

Traceback (most recent call last):
  File "/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/scripts/apply_block39.py", line 690, in <module>
    replace_exact(
  File "/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/scripts/apply_block39.py", line 22, in replace_exact
    raise RuntimeError(
RuntimeError: src/geometry/assembly_constraint_numeric_system.cpp: expected 1 occurrence(s) of replacement seed, found 0

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

  File "<stdin>", line 16
    '''Result<std::size_t> append_scaled_residuals(const InsertResidualDescriptor& residual,
       ^^^^^^
SyntaxError: invalid syntax

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

  File "<stdin>", line 16
    '''Result<std::size_t> append_scaled_residuals(const InsertResidualDescriptor& residual,
       ^^^^^^
SyntaxError: invalid syntax

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

Traceback (most recent call last):
  File "/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/scripts/apply_block39.py", line 720, in <module>
    replace_exact(
  File "/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/scripts/apply_block39.py", line 22, in replace_exact
    raise RuntimeError(
RuntimeError: include/blcad/geometry/assembly_hierarchy_constraint_equation_builder.hpp: expected 1 occurrence(s) of replacement seed, found 0

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

Traceback (most recent call last):
  File "/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/scripts/apply_block39.py", line 720, in <module>
    replace_exact(
  File "/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/scripts/apply_block39.py", line 22, in replace_exact
    raise RuntimeError(
RuntimeError: include/blcad/geometry/assembly_hierarchy_constraint_equation_builder.hpp: expected 1 occurrence(s) of replacement seed, found 0

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

Traceback (most recent call last):
  File "/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/scripts/apply_block39.py", line 2034, in <module>
    replace_exact(
  File "/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/scripts/apply_block39.py", line 22, in replace_exact
    raise RuntimeError(
RuntimeError: docs/development-setup.md: expected 1 occurrence(s) of replacement seed, found 0

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

Traceback (most recent call last):
  File "/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/scripts/apply_block39.py", line 2034, in <module>
    replace_exact(
  File "/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/scripts/apply_block39.py", line 22, in replace_exact
    raise RuntimeError(
RuntimeError: docs/development-setup.md: expected 1 occurrence(s) of replacement seed, found 0

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

Block 39 patch applied successfully
Block 39 numeric wrapper normalization applied
Block 39 hierarchy normalization applied
Block 39 development setup normalization applied
Traceback (most recent call last):
  File "/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/scripts/normalize_block39.py", line 5, in <module>
    start = text.index("[[nodiscard]] AssemblyGeometricTargetDescriptor\nevaluate_descriptor(")
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: substring not found

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

204/309 Test #204: PartDocument marks affected graph nodes after a parameter change .................................   Passed    0.00 sec
        Start 205: PartDocument creates a recompute plan from dirty graph nodes
205/309 Test #205: PartDocument creates a recompute plan from dirty graph nodes .....................................   Passed    0.00 sec
        Start 206: PartDocument rejects invalid parameter change markers
206/309 Test #206: PartDocument rejects invalid parameter change markers ............................................   Passed    0.00 sec
        Start 207: PartDocument updates a parameter value and marks dependents changed
207/309 Test #207: PartDocument updates a parameter value and marks dependents changed ..............................   Passed    0.00 sec
        Start 208: PartDocument rejects setting values on invalid parameters
208/309 Test #208: PartDocument rejects setting values on invalid parameters ........................................   Passed    0.00 sec
        Start 209: PartDocument rejects duplicate feature ids
209/309 Test #209: PartDocument rejects duplicate feature ids .......................................................   Passed    0.00 sec
        Start 210: PartDocument rejects features with missing input sketches
210/309 Test #210: PartDocument rejects features with missing input sketches ........................................   Passed    0.00 sec
        Start 211: PartDocument rejects additive extrudes with missing length parameters
211/309 Test #211: PartDocument rejects additive extrudes with missing length parameters ............................   Passed    0.00 sec
        Start 212: PartDocument rejects subtractive extrudes with missing target features
212/309 Test #212: PartDocument rejects subtractive extrudes with missing target features ...........................   Passed    0.00 sec
        Start 213: PartDocument returns null for missing features
213/309 Test #213: PartDocument returns null for missing features ...................................................   Passed    0.00 sec
        Start 214: Parameter expressions evaluate unit-aware formulas
214/309 Test #214: Parameter expressions evaluate unit-aware formulas ...............................................   Passed    0.00 sec
        Start 215: PartDocument owns expression parameters through the dependency graph
215/309 Test #215: PartDocument owns expression parameters through the dependency graph .............................   Passed    0.00 sec
        Start 216: Expression parameters survive JSON roundtrip and re-derive edges
216/309 Test #216: Expression parameters survive JSON roundtrip and re-derive edges .................................   Passed    0.00 sec
        Start 217: Expression formulas can be rewritten with edge replacement
217/309 Test #217: Expression formulas can be rewritten with edge replacement .......................................   Passed    0.00 sec
        Start 218: Length parameter stores identity, name, scope and millimeter value
218/309 Test #218: Length parameter stores identity, name, scope and millimeter value ...............................   Passed    0.00 sec
        Start 219: Length parameter rejects empty ids
219/309 Test #219: Length parameter rejects empty ids ...............................................................   Passed    0.00 sec
        Start 220: Length parameter rejects empty names
220/309 Test #220: Length parameter rejects empty names .............................................................   Passed    0.00 sec
        Start 221: Project validates assembly member ownership
221/309 Test #221: Project validates assembly member ownership ......................................................   Passed    0.00 sec
        Start 222: Project applies assembly parameter updates and exposes per-part recompute plans
222/309 Test #222: Project applies assembly parameter updates and exposes per-part recompute plans ..................   Passed    0.00 sec
        Start 223: Project JSON roundtrip preserves assembly and owned parts
223/309 Test #223: Project JSON roundtrip preserves assembly and owned parts ........................................   Passed    0.01 sec
        Start 224: Project JSON rejects assemblies with missing owned member parts
224/309 Test #224: Project JSON rejects assemblies with missing owned member parts ..................................   Passed    0.00 sec
        Start 225: Projected semantic references invalidate sketches and dependent features
225/309 Test #225: Projected semantic references invalidate sketches and dependent features .........................   Passed    0.00 sec
        Start 226: Projected construction references invalidate sketches through generated construction relations
226/309 Test #226: Projected construction references invalidate sketches through generated construction relations ...   Passed    0.00 sec
        Start 227: Projected sketch references and constraints roundtrip through part document JSON
227/309 Test #227: Projected sketch references and constraints roundtrip through part document JSON .................   Passed    0.01 sec
        Start 228: Projected sketch references store construction and semantic sources
228/309 Test #228: Projected sketch references store construction and semantic sources ..............................   Passed    0.00 sec
        Start 229: Sketch stores projected reference entities with unique sketch ids
229/309 Test #229: Sketch stores projected reference entities with unique sketch ids ................................   Passed    0.00 sec
        Start 230: Quantity stores positive millimeter lengths
230/309 Test #230: Quantity stores positive millimeter lengths ......................................................   Passed    0.00 sec
        Start 231: Quantity rejects zero length
231/309 Test #231: Quantity rejects zero length .....................................................................   Passed    0.00 sec
        Start 232: Quantity rejects negative length
232/309 Test #232: Quantity rejects negative length .................................................................   Passed    0.00 sec
        Start 233: Quantity rejects non-finite length
233/309 Test #233: Quantity rejects non-finite length ...............................................................   Passed    0.00 sec
        Start 234: RecomputePlan is empty for a clean invalidation state
234/309 Test #234: RecomputePlan is empty for a clean invalidation state ............................................   Passed    0.00 sec
        Start 235: RecomputePlan lists dirty nodes in topological order after width changes
235/309 Test #235: RecomputePlan lists dirty nodes in topological order after width changes .........................   Passed    0.00 sec
        Start 236: RecomputePlan follows the changed parameter branch
236/309 Test #236: RecomputePlan follows the changed parameter branch ...............................................   Passed    0.00 sec
        Start 237: RecomputePlan reports cycles from the dependency graph
237/309 Test #237: RecomputePlan reports cycles from the dependency graph ...........................................   Passed    0.00 sec
        Start 238: Sketch reference targets and constraints store projected reference intent
238/309 Test #238: Sketch reference targets and constraints store projected reference intent ........................   Passed    0.00 sec
        Start 239: Sketch constraints reject incompatible target shapes
239/309 Test #239: Sketch constraints reject incompatible target shapes .............................................   Passed    0.00 sec
        Start 240: Sketch stores validated projected reference constraints
240/309 Test #240: Sketch stores validated projected reference constraints ..........................................   Passed    0.00 sec
        Start 241: Reference-generated sketch lines roundtrip through JSON
241/309 Test #241: Reference-generated sketch lines roundtrip through JSON ..........................................   Passed    0.01 sec
        Start 242: Reference-generated helper line dependencies dirty sketches and dependent features
242/309 Test #242: Reference-generated helper line dependencies dirty sketches and dependent features ...............   Passed    0.00 sec
        Start 243: ReferenceRecoveryEvaluator reports resolved and lost semantic references
243/309 Test #243: ReferenceRecoveryEvaluator reports resolved and lost semantic references .........................   Passed    0.00 sec
        Start 244: PartDocument stores explicit reference status, remap, and sketch origin override records
244/309 Test #244: PartDocument stores explicit reference status, remap, and sketch origin override records .........   Passed    0.00 sec
        Start 245: Reference recovery metadata roundtrips through JSON
245/309 Test #245: Reference recovery metadata roundtrips through JSON ..............................................   Passed    0.00 sec
        Start 246: Generated-edge construction references follow source feature invalidation
246/309 Test #246: Generated-edge construction references follow source feature invalidation ........................   Passed    0.00 sec
        Start 247: PartDocument JSON round-trips relation-driven generated reference points
247/309 Test #247: PartDocument JSON round-trips relation-driven generated reference points .........................   Passed    0.00 sec
        Start 248: Arc sketch records roundtrip through JSON
248/309 Test #248: Arc sketch records roundtrip through JSON ........................................................   Passed    0.00 sec
        Start 249: ArcSegment rejects collinear three-point arcs
249/309 Test #249: ArcSegment rejects collinear three-point arcs ....................................................   Passed    0.00 sec
        Start 250: Sketch stores trim and extend metadata for explicit curve entities
250/309 Test #250: Sketch stores trim and extend metadata for explicit curve entities ...............................   Passed    0.00 sec
        Start 251: Sketch validates ordered line and arc closed profiles
251/309 Test #251: Sketch validates ordered line and arc closed profiles ............................................   Passed    0.00 sec
        Start 252: Sketch rejects self-intersecting line and arc closed profiles
252/309 Test #252: Sketch rejects self-intersecting line and arc closed profiles ....................................   Passed    0.00 sec
        Start 253: Sketch diagnostics reports simple under-constrained line endpoints
253/309 Test #253: Sketch diagnostics reports simple under-constrained line endpoints ...............................   Passed    0.00 sec
        Start 254: Sketch diagnostics reports free spline control points and undimensioned profiles
254/309 Test #254: Sketch diagnostics reports free spline control points and undimensioned profiles .................   Passed    0.00 sec
        Start 255: Sketch diagnostics reports conflicting horizontal and vertical constraints
255/309 Test #255: Sketch diagnostics reports conflicting horizontal and vertical constraints .......................   Passed    0.00 sec
        Start 256: Sketch diagnostics reports duplicate fixed endpoints and duplicate dimensions
256/309 Test #256: Sketch diagnostics reports duplicate fixed endpoints and duplicate dimensions ....................   Passed    0.00 sec
        Start 257: Sketch diagnostics serialize to debug JSON outside model intent
257/309 Test #257: Sketch diagnostics serialize to debug JSON outside model intent ..................................   Passed    0.00 sec
        Start 258: Sketch constraints and driving dimensions roundtrip through JSON
258/309 Test #258: Sketch constraints and driving dimensions roundtrip through JSON .................................   Passed    0.01 sec
        Start 259: Driving dimension parameters dirty sketches and dependent features
259/309 Test #259: Driving dimension parameters dirty sketches and dependent features ...............................   Passed    0.00 sec
        Start 260: Sketch repair command labeler returns deterministic labels for all actions
260/309 Test #260: Sketch repair command labeler returns deterministic labels for all actions .......................   Passed    0.00 sec
        Start 261: Sketch repair undo stack summary labels are deterministic
261/309 Test #261: Sketch repair undo stack summary labels are deterministic ........................................   Passed    0.00 sec
        Start 262: Sketch repair command adds a deterministic fixed endpoint constraint
262/309 Test #262: Sketch repair command adds a deterministic fixed endpoint constraint .............................   Passed    0.00 sec
        Start 263: Sketch repair command removes duplicate fixed endpoint constraints deterministically
263/309 Test #263: Sketch repair command removes duplicate fixed endpoint constraints deterministically .............   Passed    0.00 sec
        Start 264: Sketch repair command removes duplicate driving dimensions deterministically
264/309 Test #264: Sketch repair command removes duplicate driving dimensions deterministically .....................   Passed    0.00 sec
        Start 265: Sketch repair command skips unsupported explicit suggestions
265/309 Test #265: Sketch repair command skips unsupported explicit suggestions .....................................   Passed    0.00 sec
        Start 266: Sketch repair presentation metadata classifies repair actions
266/309 Test #266: Sketch repair presentation metadata classifies repair actions ....................................   Passed    0.00 sec
        Start 267: Sketch repair presentation metadata summarizes undo stack affected records
267/309 Test #267: Sketch repair presentation metadata summarizes undo stack affected records .......................   Passed    0.00 sec
        Start 268: Sketch repair presentation snapshot query returns empty snapshots
268/309 Test #268: Sketch repair presentation snapshot query returns empty snapshots ................................   Passed    0.00 sec
        Start 269: Sketch repair presentation snapshot query filters by category and preserves order
269/309 Test #269: Sketch repair presentation snapshot query filters by category and preserves order ................   Passed    0.00 sec
        Start 270: Sketch repair presentation snapshot query filters by priority
270/309 Test #270: Sketch repair presentation snapshot query filters by priority ....................................   Passed    0.00 sec
        Start 271: Sketch repair presentation snapshot query supports latest-only and undoable-only
271/309 Test #271: Sketch repair presentation snapshot query supports latest-only and undoable-only .................   Passed    0.00 sec
        Start 272: Sketch repair presentation snapshot query supports combined filters and JSON metadata
272/309 Test #272: Sketch repair presentation snapshot query supports combined filters and JSON metadata ............   Passed    0.00 sec
        Start 273: Sketch repair presentation snapshot reports an empty stack
273/309 Test #273: Sketch repair presentation snapshot reports an empty stack .......................................   Passed    0.00 sec
        Start 274: Sketch repair presentation snapshot combines summary labels and metadata
274/309 Test #274: Sketch repair presentation snapshot combines summary labels and metadata .........................   Passed    0.00 sec
        Start 275: Sketch repair suggestions propose fixed constraints for unconstrained endpoints
275/309 Test #275: Sketch repair suggestions propose fixed constraints for unconstrained endpoints ..................   Passed    0.00 sec
        Start 276: Sketch repair suggestions propose removing orientation conflicts
276/309 Test #276: Sketch repair suggestions propose removing orientation conflicts .................................   Passed    0.00 sec
        Start 277: Sketch repair suggestions propose removing duplicate fixed and dimension records
277/309 Test #277: Sketch repair suggestions propose removing duplicate fixed and dimension records .................   Passed    0.00 sec
        Start 278: Sketch repair suggestions propose adding dimensions to undimensioned profile sketches
278/309 Test #278: Sketch repair suggestions propose adding dimensions to undimensioned profile sketches ............   Passed    0.00 sec
        Start 279: Sketch repair suggestions serialize to debug JSON outside model intent
279/309 Test #279: Sketch repair suggestions serialize to debug JSON outside model intent ...........................   Passed    0.00 sec
        Start 280: Sketch repair transaction undoes added fixed endpoint constraints
280/309 Test #280: Sketch repair transaction undoes added fixed endpoint constraints ................................   Passed    0.00 sec
        Start 281: Sketch repair transaction undoes removed duplicate fixed endpoint constraints
281/309 Test #281: Sketch repair transaction undoes removed duplicate fixed endpoint constraints ....................   Passed    0.00 sec
        Start 282: Sketch repair transaction undoes removed duplicate driving dimensions
282/309 Test #282: Sketch repair transaction undoes removed duplicate driving dimensions ............................   Passed    0.00 sec
        Start 283: Sketch repair transaction skips undo for unsupported command results
283/309 Test #283: Sketch repair transaction skips undo for unsupported command results .............................   Passed    0.00 sec
        Start 284: Sketch repair undo stack summary reports an empty stack
284/309 Test #284: Sketch repair undo stack summary reports an empty stack ..........................................   Passed    0.00 sec
        Start 285: Sketch repair undo stack summary exposes transactions in stack order
285/309 Test #285: Sketch repair undo stack summary exposes transactions in stack order .............................   Passed    0.00 sec
        Start 286: Sketch repair undo stack rejects non-undoable transactions
286/309 Test #286: Sketch repair undo stack rejects non-undoable transactions .......................................   Passed    0.00 sec
        Start 287: Sketch repair undo stack undoes transactions in strict LIFO order
287/309 Test #287: Sketch repair undo stack undoes transactions in strict LIFO order ................................   Passed    0.00 sec
        Start 288: Sketch repair undo stack reports empty undo without mutation
288/309 Test #288: Sketch repair undo stack reports empty undo without mutation .....................................   Passed    0.00 sec
        Start 289: Spline sketch profile and tangent metadata roundtrip through JSON
289/309 Test #289: Spline sketch profile and tangent metadata roundtrip through JSON ................................   Passed    0.00 sec
        Start 290: LineSegment stores endpoints
290/309 Test #290: LineSegment stores endpoints .....................................................................   Passed    0.00 sec
        Start 291: LineSegment rejects empty ids and zero length
291/309 Test #291: LineSegment rejects empty ids and zero length ....................................................   Passed    0.00 sec
        Start 292: RectangleProfile stores center and parameter references
292/309 Test #292: RectangleProfile stores center and parameter references ..........................................   Passed    0.00 sec
        Start 293: RectangleProfile rejects missing ids and parameter references
293/309 Test #293: RectangleProfile rejects missing ids and parameter references ....................................   Passed    0.00 sec
        Start 294: CircleProfile stores center and diameter parameter reference
294/309 Test #294: CircleProfile stores center and diameter parameter reference .....................................   Passed    0.00 sec
        Start 295: CircleProfile rejects missing ids and diameter references
295/309 Test #295: CircleProfile rejects missing ids and diameter references ........................................   Passed    0.00 sec
        Start 296: ClosedProfile stores ordered line segment references
296/309 Test #296: ClosedProfile stores ordered line segment references .............................................   Passed    0.00 sec
        Start 297: ClosedProfile rejects invalid references
297/309 Test #297: ClosedProfile rejects invalid references .........................................................   Passed    0.00 sec
        Start 298: Sketch stores identity and workplane reference
298/309 Test #298: Sketch stores identity and workplane reference ...................................................   Passed    0.00 sec
        Start 299: Sketch rejects empty id, name and workplane
299/309 Test #299: Sketch rejects empty id, name and workplane ......................................................   Passed    0.00 sec
        Start 300: Sketch adds rectangle circle and closed profiles
300/309 Test #300: Sketch adds rectangle circle and closed profiles .................................................   Passed    0.00 sec
        Start 301: Sketch rejects duplicate profile ids across profile types
301/309 Test #301: Sketch rejects duplicate profile ids across profile types ........................................   Passed    0.00 sec
        Start 302: Sketch validates ordered closed profile loops
302/309 Test #302: Sketch validates ordered closed profile loops ....................................................   Passed    0.00 sec
        Start 303: Sketch rejects disconnected and self-intersecting closed profiles
303/309 Test #303: Sketch rejects disconnected and self-intersecting closed profiles ................................   Passed    0.00 sec
        Start 304: SubassemblyInstance validates rigid occurrence intent
304/309 Test #304: SubassemblyInstance validates rigid occurrence intent ............................................   Passed    0.00 sec
        Start 305: AssemblyDocument stores and explicitly edits rigid subassembly occurrences
305/309 Test #305: AssemblyDocument stores and explicitly edits rigid subassembly occurrences .......................   Passed    0.00 sec
        Start 306: Rigid subassembly occurrences survive additive assembly JSON roundtrip
306/309 Test #306: Rigid subassembly occurrences survive additive assembly JSON roundtrip ...........................   Passed    0.00 sec
        Start 307: Assembly JSON remains backward compatible without subassembly occurrences
307/309 Test #307: Assembly JSON remains backward compatible without subassembly occurrences ........................   Passed    0.00 sec
        Start 308: Project JSON preserves explicit root and project-owned child assemblies
308/309 Test #308: Project JSON preserves explicit root and project-owned child assemblies ..........................   Passed    0.00 sec
        Start 309: Project JSON remains backward compatible without child assembly collection
309/309 Test #309: Project JSON remains backward compatible without child assembly collection .......................   Passed    0.00 sec

99% tests passed, 2 tests failed out of 309

Total Test time (real) =   1.26 sec

The following tests FAILED:
	 16 - Generic assembly relationship intent is persistent-only before Block 39 (Failed)
	 17 - Generic Project relationships preserve rooted identity and stay out of current graphs (Failed)
Errors while running CTest

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

204/309 Test #204: PartDocument marks affected graph nodes after a parameter change .................................   Passed    0.00 sec
        Start 205: PartDocument creates a recompute plan from dirty graph nodes
205/309 Test #205: PartDocument creates a recompute plan from dirty graph nodes .....................................   Passed    0.00 sec
        Start 206: PartDocument rejects invalid parameter change markers
206/309 Test #206: PartDocument rejects invalid parameter change markers ............................................   Passed    0.00 sec
        Start 207: PartDocument updates a parameter value and marks dependents changed
207/309 Test #207: PartDocument updates a parameter value and marks dependents changed ..............................   Passed    0.00 sec
        Start 208: PartDocument rejects setting values on invalid parameters
208/309 Test #208: PartDocument rejects setting values on invalid parameters ........................................   Passed    0.00 sec
        Start 209: PartDocument rejects duplicate feature ids
209/309 Test #209: PartDocument rejects duplicate feature ids .......................................................   Passed    0.00 sec
        Start 210: PartDocument rejects features with missing input sketches
210/309 Test #210: PartDocument rejects features with missing input sketches ........................................   Passed    0.00 sec
        Start 211: PartDocument rejects additive extrudes with missing length parameters
211/309 Test #211: PartDocument rejects additive extrudes with missing length parameters ............................   Passed    0.00 sec
        Start 212: PartDocument rejects subtractive extrudes with missing target features
212/309 Test #212: PartDocument rejects subtractive extrudes with missing target features ...........................   Passed    0.00 sec
        Start 213: PartDocument returns null for missing features
213/309 Test #213: PartDocument returns null for missing features ...................................................   Passed    0.00 sec
        Start 214: Parameter expressions evaluate unit-aware formulas
214/309 Test #214: Parameter expressions evaluate unit-aware formulas ...............................................   Passed    0.00 sec
        Start 215: PartDocument owns expression parameters through the dependency graph
215/309 Test #215: PartDocument owns expression parameters through the dependency graph .............................   Passed    0.00 sec
        Start 216: Expression parameters survive JSON roundtrip and re-derive edges
216/309 Test #216: Expression parameters survive JSON roundtrip and re-derive edges .................................   Passed    0.00 sec
        Start 217: Expression formulas can be rewritten with edge replacement
217/309 Test #217: Expression formulas can be rewritten with edge replacement .......................................   Passed    0.00 sec
        Start 218: Length parameter stores identity, name, scope and millimeter value
218/309 Test #218: Length parameter stores identity, name, scope and millimeter value ...............................   Passed    0.00 sec
        Start 219: Length parameter rejects empty ids
219/309 Test #219: Length parameter rejects empty ids ...............................................................   Passed    0.00 sec
        Start 220: Length parameter rejects empty names
220/309 Test #220: Length parameter rejects empty names .............................................................   Passed    0.00 sec
        Start 221: Project validates assembly member ownership
221/309 Test #221: Project validates assembly member ownership ......................................................   Passed    0.00 sec
        Start 222: Project applies assembly parameter updates and exposes per-part recompute plans
222/309 Test #222: Project applies assembly parameter updates and exposes per-part recompute plans ..................   Passed    0.00 sec
        Start 223: Project JSON roundtrip preserves assembly and owned parts
223/309 Test #223: Project JSON roundtrip preserves assembly and owned parts ........................................   Passed    0.01 sec
        Start 224: Project JSON rejects assemblies with missing owned member parts
224/309 Test #224: Project JSON rejects assemblies with missing owned member parts ..................................   Passed    0.00 sec
        Start 225: Projected semantic references invalidate sketches and dependent features
225/309 Test #225: Projected semantic references invalidate sketches and dependent features .........................   Passed    0.00 sec
        Start 226: Projected construction references invalidate sketches through generated construction relations
226/309 Test #226: Projected construction references invalidate sketches through generated construction relations ...   Passed    0.00 sec
        Start 227: Projected sketch references and constraints roundtrip through part document JSON
227/309 Test #227: Projected sketch references and constraints roundtrip through part document JSON .................   Passed    0.01 sec
        Start 228: Projected sketch references store construction and semantic sources
228/309 Test #228: Projected sketch references store construction and semantic sources ..............................   Passed    0.00 sec
        Start 229: Sketch stores projected reference entities with unique sketch ids
229/309 Test #229: Sketch stores projected reference entities with unique sketch ids ................................   Passed    0.00 sec
        Start 230: Quantity stores positive millimeter lengths
230/309 Test #230: Quantity stores positive millimeter lengths ......................................................   Passed    0.00 sec
        Start 231: Quantity rejects zero length
231/309 Test #231: Quantity rejects zero length .....................................................................   Passed    0.00 sec
        Start 232: Quantity rejects negative length
232/309 Test #232: Quantity rejects negative length .................................................................   Passed    0.00 sec
        Start 233: Quantity rejects non-finite length
233/309 Test #233: Quantity rejects non-finite length ...............................................................   Passed    0.00 sec
        Start 234: RecomputePlan is empty for a clean invalidation state
234/309 Test #234: RecomputePlan is empty for a clean invalidation state ............................................   Passed    0.00 sec
        Start 235: RecomputePlan lists dirty nodes in topological order after width changes
235/309 Test #235: RecomputePlan lists dirty nodes in topological order after width changes .........................   Passed    0.00 sec
        Start 236: RecomputePlan follows the changed parameter branch
236/309 Test #236: RecomputePlan follows the changed parameter branch ...............................................   Passed    0.00 sec
        Start 237: RecomputePlan reports cycles from the dependency graph
237/309 Test #237: RecomputePlan reports cycles from the dependency graph ...........................................   Passed    0.00 sec
        Start 238: Sketch reference targets and constraints store projected reference intent
238/309 Test #238: Sketch reference targets and constraints store projected reference intent ........................   Passed    0.00 sec
        Start 239: Sketch constraints reject incompatible target shapes
239/309 Test #239: Sketch constraints reject incompatible target shapes .............................................   Passed    0.00 sec
        Start 240: Sketch stores validated projected reference constraints
240/309 Test #240: Sketch stores validated projected reference constraints ..........................................   Passed    0.00 sec
        Start 241: Reference-generated sketch lines roundtrip through JSON
241/309 Test #241: Reference-generated sketch lines roundtrip through JSON ..........................................   Passed    0.01 sec
        Start 242: Reference-generated helper line dependencies dirty sketches and dependent features
242/309 Test #242: Reference-generated helper line dependencies dirty sketches and dependent features ...............   Passed    0.00 sec
        Start 243: ReferenceRecoveryEvaluator reports resolved and lost semantic references
243/309 Test #243: ReferenceRecoveryEvaluator reports resolved and lost semantic references .........................   Passed    0.00 sec
        Start 244: PartDocument stores explicit reference status, remap, and sketch origin override records
244/309 Test #244: PartDocument stores explicit reference status, remap, and sketch origin override records .........   Passed    0.00 sec
        Start 245: Reference recovery metadata roundtrips through JSON
245/309 Test #245: Reference recovery metadata roundtrips through JSON ..............................................   Passed    0.00 sec
        Start 246: Generated-edge construction references follow source feature invalidation
246/309 Test #246: Generated-edge construction references follow source feature invalidation ........................   Passed    0.00 sec
        Start 247: PartDocument JSON round-trips relation-driven generated reference points
247/309 Test #247: PartDocument JSON round-trips relation-driven generated reference points .........................   Passed    0.00 sec
        Start 248: Arc sketch records roundtrip through JSON
248/309 Test #248: Arc sketch records roundtrip through JSON ........................................................   Passed    0.00 sec
        Start 249: ArcSegment rejects collinear three-point arcs
249/309 Test #249: ArcSegment rejects collinear three-point arcs ....................................................   Passed    0.00 sec
        Start 250: Sketch stores trim and extend metadata for explicit curve entities
250/309 Test #250: Sketch stores trim and extend metadata for explicit curve entities ...............................   Passed    0.00 sec
        Start 251: Sketch validates ordered line and arc closed profiles
251/309 Test #251: Sketch validates ordered line and arc closed profiles ............................................   Passed    0.00 sec
        Start 252: Sketch rejects self-intersecting line and arc closed profiles
252/309 Test #252: Sketch rejects self-intersecting line and arc closed profiles ....................................   Passed    0.00 sec
        Start 253: Sketch diagnostics reports simple under-constrained line endpoints
253/309 Test #253: Sketch diagnostics reports simple under-constrained line endpoints ...............................   Passed    0.00 sec
        Start 254: Sketch diagnostics reports free spline control points and undimensioned profiles
254/309 Test #254: Sketch diagnostics reports free spline control points and undimensioned profiles .................   Passed    0.00 sec
        Start 255: Sketch diagnostics reports conflicting horizontal and vertical constraints
255/309 Test #255: Sketch diagnostics reports conflicting horizontal and vertical constraints .......................   Passed    0.00 sec
        Start 256: Sketch diagnostics reports duplicate fixed endpoints and duplicate dimensions
256/309 Test #256: Sketch diagnostics reports duplicate fixed endpoints and duplicate dimensions ....................   Passed    0.00 sec
        Start 257: Sketch diagnostics serialize to debug JSON outside model intent
257/309 Test #257: Sketch diagnostics serialize to debug JSON outside model intent ..................................   Passed    0.00 sec
        Start 258: Sketch constraints and driving dimensions roundtrip through JSON
258/309 Test #258: Sketch constraints and driving dimensions roundtrip through JSON .................................   Passed    0.01 sec
        Start 259: Driving dimension parameters dirty sketches and dependent features
259/309 Test #259: Driving dimension parameters dirty sketches and dependent features ...............................   Passed    0.00 sec
        Start 260: Sketch repair command labeler returns deterministic labels for all actions
260/309 Test #260: Sketch repair command labeler returns deterministic labels for all actions .......................   Passed    0.00 sec
        Start 261: Sketch repair undo stack summary labels are deterministic
261/309 Test #261: Sketch repair undo stack summary labels are deterministic ........................................   Passed    0.00 sec
        Start 262: Sketch repair command adds a deterministic fixed endpoint constraint
262/309 Test #262: Sketch repair command adds a deterministic fixed endpoint constraint .............................   Passed    0.00 sec
        Start 263: Sketch repair command removes duplicate fixed endpoint constraints deterministically
263/309 Test #263: Sketch repair command removes duplicate fixed endpoint constraints deterministically .............   Passed    0.00 sec
        Start 264: Sketch repair command removes duplicate driving dimensions deterministically
264/309 Test #264: Sketch repair command removes duplicate driving dimensions deterministically .....................   Passed    0.00 sec
        Start 265: Sketch repair command skips unsupported explicit suggestions
265/309 Test #265: Sketch repair command skips unsupported explicit suggestions .....................................   Passed    0.00 sec
        Start 266: Sketch repair presentation metadata classifies repair actions
266/309 Test #266: Sketch repair presentation metadata classifies repair actions ....................................   Passed    0.00 sec
        Start 267: Sketch repair presentation metadata summarizes undo stack affected records
267/309 Test #267: Sketch repair presentation metadata summarizes undo stack affected records .......................   Passed    0.00 sec
        Start 268: Sketch repair presentation snapshot query returns empty snapshots
268/309 Test #268: Sketch repair presentation snapshot query returns empty snapshots ................................   Passed    0.00 sec
        Start 269: Sketch repair presentation snapshot query filters by category and preserves order
269/309 Test #269: Sketch repair presentation snapshot query filters by category and preserves order ................   Passed    0.00 sec
        Start 270: Sketch repair presentation snapshot query filters by priority
270/309 Test #270: Sketch repair presentation snapshot query filters by priority ....................................   Passed    0.00 sec
        Start 271: Sketch repair presentation snapshot query supports latest-only and undoable-only
271/309 Test #271: Sketch repair presentation snapshot query supports latest-only and undoable-only .................   Passed    0.00 sec
        Start 272: Sketch repair presentation snapshot query supports combined filters and JSON metadata
272/309 Test #272: Sketch repair presentation snapshot query supports combined filters and JSON metadata ............   Passed    0.00 sec
        Start 273: Sketch repair presentation snapshot reports an empty stack
273/309 Test #273: Sketch repair presentation snapshot reports an empty stack .......................................   Passed    0.00 sec
        Start 274: Sketch repair presentation snapshot combines summary labels and metadata
274/309 Test #274: Sketch repair presentation snapshot combines summary labels and metadata .........................   Passed    0.00 sec
        Start 275: Sketch repair suggestions propose fixed constraints for unconstrained endpoints
275/309 Test #275: Sketch repair suggestions propose fixed constraints for unconstrained endpoints ..................   Passed    0.00 sec
        Start 276: Sketch repair suggestions propose removing orientation conflicts
276/309 Test #276: Sketch repair suggestions propose removing orientation conflicts .................................   Passed    0.00 sec
        Start 277: Sketch repair suggestions propose removing duplicate fixed and dimension records
277/309 Test #277: Sketch repair suggestions propose removing duplicate fixed and dimension records .................   Passed    0.00 sec
        Start 278: Sketch repair suggestions propose adding dimensions to undimensioned profile sketches
278/309 Test #278: Sketch repair suggestions propose adding dimensions to undimensioned profile sketches ............   Passed    0.00 sec
        Start 279: Sketch repair suggestions serialize to debug JSON outside model intent
279/309 Test #279: Sketch repair suggestions serialize to debug JSON outside model intent ...........................   Passed    0.00 sec
        Start 280: Sketch repair transaction undoes added fixed endpoint constraints
280/309 Test #280: Sketch repair transaction undoes added fixed endpoint constraints ................................   Passed    0.00 sec
        Start 281: Sketch repair transaction undoes removed duplicate fixed endpoint constraints
281/309 Test #281: Sketch repair transaction undoes removed duplicate fixed endpoint constraints ....................   Passed    0.00 sec
        Start 282: Sketch repair transaction undoes removed duplicate driving dimensions
282/309 Test #282: Sketch repair transaction undoes removed duplicate driving dimensions ............................   Passed    0.00 sec
        Start 283: Sketch repair transaction skips undo for unsupported command results
283/309 Test #283: Sketch repair transaction skips undo for unsupported command results .............................   Passed    0.00 sec
        Start 284: Sketch repair undo stack summary reports an empty stack
284/309 Test #284: Sketch repair undo stack summary reports an empty stack ..........................................   Passed    0.00 sec
        Start 285: Sketch repair undo stack summary exposes transactions in stack order
285/309 Test #285: Sketch repair undo stack summary exposes transactions in stack order .............................   Passed    0.00 sec
        Start 286: Sketch repair undo stack rejects non-undoable transactions
286/309 Test #286: Sketch repair undo stack rejects non-undoable transactions .......................................   Passed    0.00 sec
        Start 287: Sketch repair undo stack undoes transactions in strict LIFO order
287/309 Test #287: Sketch repair undo stack undoes transactions in strict LIFO order ................................   Passed    0.00 sec
        Start 288: Sketch repair undo stack reports empty undo without mutation
288/309 Test #288: Sketch repair undo stack reports empty undo without mutation .....................................   Passed    0.00 sec
        Start 289: Spline sketch profile and tangent metadata roundtrip through JSON
289/309 Test #289: Spline sketch profile and tangent metadata roundtrip through JSON ................................   Passed    0.00 sec
        Start 290: LineSegment stores endpoints
290/309 Test #290: LineSegment stores endpoints .....................................................................   Passed    0.00 sec
        Start 291: LineSegment rejects empty ids and zero length
291/309 Test #291: LineSegment rejects empty ids and zero length ....................................................   Passed    0.00 sec
        Start 292: RectangleProfile stores center and parameter references
292/309 Test #292: RectangleProfile stores center and parameter references ..........................................   Passed    0.00 sec
        Start 293: RectangleProfile rejects missing ids and parameter references
293/309 Test #293: RectangleProfile rejects missing ids and parameter references ....................................   Passed    0.00 sec
        Start 294: CircleProfile stores center and diameter parameter reference
294/309 Test #294: CircleProfile stores center and diameter parameter reference .....................................   Passed    0.00 sec
        Start 295: CircleProfile rejects missing ids and diameter references
295/309 Test #295: CircleProfile rejects missing ids and diameter references ........................................   Passed    0.00 sec
        Start 296: ClosedProfile stores ordered line segment references
296/309 Test #296: ClosedProfile stores ordered line segment references .............................................   Passed    0.00 sec
        Start 297: ClosedProfile rejects invalid references
297/309 Test #297: ClosedProfile rejects invalid references .........................................................   Passed    0.00 sec
        Start 298: Sketch stores identity and workplane reference
298/309 Test #298: Sketch stores identity and workplane reference ...................................................   Passed    0.00 sec
        Start 299: Sketch rejects empty id, name and workplane
299/309 Test #299: Sketch rejects empty id, name and workplane ......................................................   Passed    0.00 sec
        Start 300: Sketch adds rectangle circle and closed profiles
300/309 Test #300: Sketch adds rectangle circle and closed profiles .................................................   Passed    0.00 sec
        Start 301: Sketch rejects duplicate profile ids across profile types
301/309 Test #301: Sketch rejects duplicate profile ids across profile types ........................................   Passed    0.00 sec
        Start 302: Sketch validates ordered closed profile loops
302/309 Test #302: Sketch validates ordered closed profile loops ....................................................   Passed    0.00 sec
        Start 303: Sketch rejects disconnected and self-intersecting closed profiles
303/309 Test #303: Sketch rejects disconnected and self-intersecting closed profiles ................................   Passed    0.00 sec
        Start 304: SubassemblyInstance validates rigid occurrence intent
304/309 Test #304: SubassemblyInstance validates rigid occurrence intent ............................................   Passed    0.00 sec
        Start 305: AssemblyDocument stores and explicitly edits rigid subassembly occurrences
305/309 Test #305: AssemblyDocument stores and explicitly edits rigid subassembly occurrences .......................   Passed    0.00 sec
        Start 306: Rigid subassembly occurrences survive additive assembly JSON roundtrip
306/309 Test #306: Rigid subassembly occurrences survive additive assembly JSON roundtrip ...........................   Passed    0.00 sec
        Start 307: Assembly JSON remains backward compatible without subassembly occurrences
307/309 Test #307: Assembly JSON remains backward compatible without subassembly occurrences ........................   Passed    0.00 sec
        Start 308: Project JSON preserves explicit root and project-owned child assemblies
308/309 Test #308: Project JSON preserves explicit root and project-owned child assemblies ..........................   Passed    0.00 sec
        Start 309: Project JSON remains backward compatible without child assembly collection
309/309 Test #309: Project JSON remains backward compatible without child assembly collection .......................   Passed    0.00 sec

99% tests passed, 2 tests failed out of 309

Total Test time (real) =   1.31 sec

The following tests FAILED:
	 16 - Generic assembly relationship intent is persistent-only before Block 39 (Failed)
	 17 - Generic Project relationships preserve rooted identity and stay out of current graphs (Failed)
Errors while running CTest

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

        Start 194: PartDocument adds a sketch with valid workplane and parameter references
194/309 Test #194: PartDocument adds a sketch with valid workplane and parameter references .........................   Passed    0.00 sec
        Start 195: PartDocument rejects duplicate sketch ids
195/309 Test #195: PartDocument rejects duplicate sketch ids ........................................................   Passed    0.00 sec
        Start 196: PartDocument rejects sketches with missing workplanes
196/309 Test #196: PartDocument rejects sketches with missing workplanes ............................................   Passed    0.00 sec
        Start 197: PartDocument rejects rectangle profiles with missing width parameter
197/309 Test #197: PartDocument rejects rectangle profiles with missing width parameter .............................   Passed    0.00 sec
        Start 198: PartDocument rejects rectangle profiles with missing height parameter
198/309 Test #198: PartDocument rejects rectangle profiles with missing height parameter ............................   Passed    0.00 sec
        Start 199: PartDocument rejects circle profiles with missing diameter parameter
199/309 Test #199: PartDocument rejects circle profiles with missing diameter parameter .............................   Passed    0.00 sec
        Start 200: PartDocument returns null for missing datum planes and sketches
200/309 Test #200: PartDocument returns null for missing datum planes and sketches ..................................   Passed    0.00 sec
        Start 201: PartDocument adds and finds additive extrude features
201/309 Test #201: PartDocument adds and finds additive extrude features ............................................   Passed    0.00 sec
        Start 202: PartDocument adds subtractive extrude features after their target feature
202/309 Test #202: PartDocument adds subtractive extrude features after their target feature ........................   Passed    0.00 sec
        Start 203: PartDocument dependency graph represents the MVP reference plate order
203/309 Test #203: PartDocument dependency graph represents the MVP reference plate order ...........................   Passed    0.00 sec
        Start 204: PartDocument marks affected graph nodes after a parameter change
204/309 Test #204: PartDocument marks affected graph nodes after a parameter change .................................   Passed    0.00 sec
        Start 205: PartDocument creates a recompute plan from dirty graph nodes
205/309 Test #205: PartDocument creates a recompute plan from dirty graph nodes .....................................   Passed    0.00 sec
        Start 206: PartDocument rejects invalid parameter change markers
206/309 Test #206: PartDocument rejects invalid parameter change markers ............................................   Passed    0.00 sec
        Start 207: PartDocument updates a parameter value and marks dependents changed
207/309 Test #207: PartDocument updates a parameter value and marks dependents changed ..............................   Passed    0.00 sec
        Start 208: PartDocument rejects setting values on invalid parameters
208/309 Test #208: PartDocument rejects setting values on invalid parameters ........................................   Passed    0.00 sec
        Start 209: PartDocument rejects duplicate feature ids
209/309 Test #209: PartDocument rejects duplicate feature ids .......................................................   Passed    0.00 sec
        Start 210: PartDocument rejects features with missing input sketches
210/309 Test #210: PartDocument rejects features with missing input sketches ........................................   Passed    0.00 sec
        Start 211: PartDocument rejects additive extrudes with missing length parameters
211/309 Test #211: PartDocument rejects additive extrudes with missing length parameters ............................   Passed    0.00 sec
        Start 212: PartDocument rejects subtractive extrudes with missing target features
212/309 Test #212: PartDocument rejects subtractive extrudes with missing target features ...........................   Passed    0.00 sec
        Start 213: PartDocument returns null for missing features
213/309 Test #213: PartDocument returns null for missing features ...................................................   Passed    0.00 sec
        Start 214: Parameter expressions evaluate unit-aware formulas
214/309 Test #214: Parameter expressions evaluate unit-aware formulas ...............................................   Passed    0.00 sec
        Start 215: PartDocument owns expression parameters through the dependency graph
215/309 Test #215: PartDocument owns expression parameters through the dependency graph .............................   Passed    0.00 sec
        Start 216: Expression parameters survive JSON roundtrip and re-derive edges
216/309 Test #216: Expression parameters survive JSON roundtrip and re-derive edges .................................   Passed    0.00 sec
        Start 217: Expression formulas can be rewritten with edge replacement
217/309 Test #217: Expression formulas can be rewritten with edge replacement .......................................   Passed    0.00 sec
        Start 218: Length parameter stores identity, name, scope and millimeter value
218/309 Test #218: Length parameter stores identity, name, scope and millimeter value ...............................   Passed    0.00 sec
        Start 219: Length parameter rejects empty ids
219/309 Test #219: Length parameter rejects empty ids ...............................................................   Passed    0.00 sec
        Start 220: Length parameter rejects empty names
220/309 Test #220: Length parameter rejects empty names .............................................................   Passed    0.00 sec
        Start 221: Project validates assembly member ownership
221/309 Test #221: Project validates assembly member ownership ......................................................   Passed    0.00 sec
        Start 222: Project applies assembly parameter updates and exposes per-part recompute plans
222/309 Test #222: Project applies assembly parameter updates and exposes per-part recompute plans ..................   Passed    0.00 sec
        Start 223: Project JSON roundtrip preserves assembly and owned parts
223/309 Test #223: Project JSON roundtrip preserves assembly and owned parts ........................................   Passed    0.01 sec
        Start 224: Project JSON rejects assemblies with missing owned member parts
224/309 Test #224: Project JSON rejects assemblies with missing owned member parts ..................................   Passed    0.00 sec
        Start 225: Projected semantic references invalidate sketches and dependent features
225/309 Test #225: Projected semantic references invalidate sketches and dependent features .........................   Passed    0.00 sec
        Start 226: Projected construction references invalidate sketches through generated construction relations
226/309 Test #226: Projected construction references invalidate sketches through generated construction relations ...   Passed    0.00 sec
        Start 227: Projected sketch references and constraints roundtrip through part document JSON
227/309 Test #227: Projected sketch references and constraints roundtrip through part document JSON .................   Passed    0.01 sec
        Start 228: Projected sketch references store construction and semantic sources
228/309 Test #228: Projected sketch references store construction and semantic sources ..............................   Passed    0.00 sec
        Start 229: Sketch stores projected reference entities with unique sketch ids
229/309 Test #229: Sketch stores projected reference entities with unique sketch ids ................................   Passed    0.00 sec
        Start 230: Quantity stores positive millimeter lengths
230/309 Test #230: Quantity stores positive millimeter lengths ......................................................   Passed    0.00 sec
        Start 231: Quantity rejects zero length
231/309 Test #231: Quantity rejects zero length .....................................................................   Passed    0.00 sec
        Start 232: Quantity rejects negative length
232/309 Test #232: Quantity rejects negative length .................................................................   Passed    0.00 sec
        Start 233: Quantity rejects non-finite length
233/309 Test #233: Quantity rejects non-finite length ...............................................................   Passed    0.00 sec
        Start 234: RecomputePlan is empty for a clean invalidation state
234/309 Test #234: RecomputePlan is empty for a clean invalidation state ............................................   Passed    0.00 sec
        Start 235: RecomputePlan lists dirty nodes in topological order after width changes
235/309 Test #235: RecomputePlan lists dirty nodes in topological order after width changes .........................   Passed    0.00 sec
        Start 236: RecomputePlan follows the changed parameter branch
236/309 Test #236: RecomputePlan follows the changed parameter branch ...............................................   Passed    0.00 sec
        Start 237: RecomputePlan reports cycles from the dependency graph
237/309 Test #237: RecomputePlan reports cycles from the dependency graph ...........................................   Passed    0.00 sec
        Start 238: Sketch reference targets and constraints store projected reference intent
238/309 Test #238: Sketch reference targets and constraints store projected reference intent ........................   Passed    0.00 sec
        Start 239: Sketch constraints reject incompatible target shapes
239/309 Test #239: Sketch constraints reject incompatible target shapes .............................................   Passed    0.00 sec
        Start 240: Sketch stores validated projected reference constraints
240/309 Test #240: Sketch stores validated projected reference constraints ..........................................   Passed    0.00 sec
        Start 241: Reference-generated sketch lines roundtrip through JSON
241/309 Test #241: Reference-generated sketch lines roundtrip through JSON ..........................................   Passed    0.01 sec
        Start 242: Reference-generated helper line dependencies dirty sketches and dependent features
242/309 Test #242: Reference-generated helper line dependencies dirty sketches and dependent features ...............   Passed    0.00 sec
        Start 243: ReferenceRecoveryEvaluator reports resolved and lost semantic references
243/309 Test #243: ReferenceRecoveryEvaluator reports resolved and lost semantic references .........................   Passed    0.00 sec
        Start 244: PartDocument stores explicit reference status, remap, and sketch origin override records
244/309 Test #244: PartDocument stores explicit reference status, remap, and sketch origin override records .........   Passed    0.00 sec
        Start 245: Reference recovery metadata roundtrips through JSON
245/309 Test #245: Reference recovery metadata roundtrips through JSON ..............................................   Passed    0.00 sec
        Start 246: Generated-edge construction references follow source feature invalidation
246/309 Test #246: Generated-edge construction references follow source feature invalidation ........................   Passed    0.00 sec
        Start 247: PartDocument JSON round-trips relation-driven generated reference points
247/309 Test #247: PartDocument JSON round-trips relation-driven generated reference points .........................   Passed    0.00 sec
        Start 248: Arc sketch records roundtrip through JSON
248/309 Test #248: Arc sketch records roundtrip through JSON ........................................................   Passed    0.00 sec
        Start 249: ArcSegment rejects collinear three-point arcs
249/309 Test #249: ArcSegment rejects collinear three-point arcs ....................................................   Passed    0.00 sec
        Start 250: Sketch stores trim and extend metadata for explicit curve entities
250/309 Test #250: Sketch stores trim and extend metadata for explicit curve entities ...............................   Passed    0.00 sec
        Start 251: Sketch validates ordered line and arc closed profiles
251/309 Test #251: Sketch validates ordered line and arc closed profiles ............................................   Passed    0.00 sec
        Start 252: Sketch rejects self-intersecting line and arc closed profiles
252/309 Test #252: Sketch rejects self-intersecting line and arc closed profiles ....................................   Passed    0.00 sec
        Start 253: Sketch diagnostics reports simple under-constrained line endpoints
253/309 Test #253: Sketch diagnostics reports simple under-constrained line endpoints ...............................   Passed    0.00 sec
        Start 254: Sketch diagnostics reports free spline control points and undimensioned profiles
254/309 Test #254: Sketch diagnostics reports free spline control points and undimensioned profiles .................   Passed    0.00 sec
        Start 255: Sketch diagnostics reports conflicting horizontal and vertical constraints
255/309 Test #255: Sketch diagnostics reports conflicting horizontal and vertical constraints .......................   Passed    0.00 sec
        Start 256: Sketch diagnostics reports duplicate fixed endpoints and duplicate dimensions
256/309 Test #256: Sketch diagnostics reports duplicate fixed endpoints and duplicate dimensions ....................   Passed    0.00 sec
        Start 257: Sketch diagnostics serialize to debug JSON outside model intent
257/309 Test #257: Sketch diagnostics serialize to debug JSON outside model intent ..................................   Passed    0.00 sec
        Start 258: Sketch constraints and driving dimensions roundtrip through JSON
258/309 Test #258: Sketch constraints and driving dimensions roundtrip through JSON .................................   Passed    0.01 sec
        Start 259: Driving dimension parameters dirty sketches and dependent features
259/309 Test #259: Driving dimension parameters dirty sketches and dependent features ...............................   Passed    0.00 sec
        Start 260: Sketch repair command labeler returns deterministic labels for all actions
260/309 Test #260: Sketch repair command labeler returns deterministic labels for all actions .......................   Passed    0.00 sec
        Start 261: Sketch repair undo stack summary labels are deterministic
261/309 Test #261: Sketch repair undo stack summary labels are deterministic ........................................   Passed    0.00 sec
        Start 262: Sketch repair command adds a deterministic fixed endpoint constraint
262/309 Test #262: Sketch repair command adds a deterministic fixed endpoint constraint .............................   Passed    0.00 sec
        Start 263: Sketch repair command removes duplicate fixed endpoint constraints deterministically
263/309 Test #263: Sketch repair command removes duplicate fixed endpoint constraints deterministically .............   Passed    0.00 sec
        Start 264: Sketch repair command removes duplicate driving dimensions deterministically
264/309 Test #264: Sketch repair command removes duplicate driving dimensions deterministically .....................   Passed    0.00 sec
        Start 265: Sketch repair command skips unsupported explicit suggestions
265/309 Test #265: Sketch repair command skips unsupported explicit suggestions .....................................   Passed    0.00 sec
        Start 266: Sketch repair presentation metadata classifies repair actions
266/309 Test #266: Sketch repair presentation metadata classifies repair actions ....................................   Passed    0.00 sec
        Start 267: Sketch repair presentation metadata summarizes undo stack affected records
267/309 Test #267: Sketch repair presentation metadata summarizes undo stack affected records .......................   Passed    0.00 sec
        Start 268: Sketch repair presentation snapshot query returns empty snapshots
268/309 Test #268: Sketch repair presentation snapshot query returns empty snapshots ................................   Passed    0.00 sec
        Start 269: Sketch repair presentation snapshot query filters by category and preserves order
269/309 Test #269: Sketch repair presentation snapshot query filters by category and preserves order ................   Passed    0.00 sec
        Start 270: Sketch repair presentation snapshot query filters by priority
270/309 Test #270: Sketch repair presentation snapshot query filters by priority ....................................   Passed    0.00 sec
        Start 271: Sketch repair presentation snapshot query supports latest-only and undoable-only
271/309 Test #271: Sketch repair presentation snapshot query supports latest-only and undoable-only .................   Passed    0.00 sec
        Start 272: Sketch repair presentation snapshot query supports combined filters and JSON metadata
272/309 Test #272: Sketch repair presentation snapshot query supports combined filters and JSON metadata ............   Passed    0.00 sec
        Start 273: Sketch repair presentation snapshot reports an empty stack
273/309 Test #273: Sketch repair presentation snapshot reports an empty stack .......................................   Passed    0.00 sec
        Start 274: Sketch repair presentation snapshot combines summary labels and metadata
274/309 Test #274: Sketch repair presentation snapshot combines summary labels and metadata .........................   Passed    0.00 sec
        Start 275: Sketch repair suggestions propose fixed constraints for unconstrained endpoints
275/309 Test #275: Sketch repair suggestions propose fixed constraints for unconstrained endpoints ..................   Passed    0.00 sec
        Start 276: Sketch repair suggestions propose removing orientation conflicts
276/309 Test #276: Sketch repair suggestions propose removing orientation conflicts .................................   Passed    0.00 sec
        Start 277: Sketch repair suggestions propose removing duplicate fixed and dimension records
277/309 Test #277: Sketch repair suggestions propose removing duplicate fixed and dimension records .................   Passed    0.00 sec
        Start 278: Sketch repair suggestions propose adding dimensions to undimensioned profile sketches
278/309 Test #278: Sketch repair suggestions propose adding dimensions to undimensioned profile sketches ............   Passed    0.00 sec
        Start 279: Sketch repair suggestions serialize to debug JSON outside model intent
279/309 Test #279: Sketch repair suggestions serialize to debug JSON outside model intent ...........................   Passed    0.00 sec
        Start 280: Sketch repair transaction undoes added fixed endpoint constraints
280/309 Test #280: Sketch repair transaction undoes added fixed endpoint constraints ................................   Passed    0.00 sec
        Start 281: Sketch repair transaction undoes removed duplicate fixed endpoint constraints
281/309 Test #281: Sketch repair transaction undoes removed duplicate fixed endpoint constraints ....................   Passed    0.00 sec
        Start 282: Sketch repair transaction undoes removed duplicate driving dimensions
282/309 Test #282: Sketch repair transaction undoes removed duplicate driving dimensions ............................   Passed    0.00 sec
        Start 283: Sketch repair transaction skips undo for unsupported command results
283/309 Test #283: Sketch repair transaction skips undo for unsupported command results .............................   Passed    0.00 sec
        Start 284: Sketch repair undo stack summary reports an empty stack
284/309 Test #284: Sketch repair undo stack summary reports an empty stack ..........................................   Passed    0.00 sec
        Start 285: Sketch repair undo stack summary exposes transactions in stack order
285/309 Test #285: Sketch repair undo stack summary exposes transactions in stack order .............................   Passed    0.00 sec
        Start 286: Sketch repair undo stack rejects non-undoable transactions
286/309 Test #286: Sketch repair undo stack rejects non-undoable transactions .......................................   Passed    0.00 sec
        Start 287: Sketch repair undo stack undoes transactions in strict LIFO order
287/309 Test #287: Sketch repair undo stack undoes transactions in strict LIFO order ................................   Passed    0.00 sec
        Start 288: Sketch repair undo stack reports empty undo without mutation
288/309 Test #288: Sketch repair undo stack reports empty undo without mutation .....................................   Passed    0.00 sec
        Start 289: Spline sketch profile and tangent metadata roundtrip through JSON
289/309 Test #289: Spline sketch profile and tangent metadata roundtrip through JSON ................................   Passed    0.00 sec
        Start 290: LineSegment stores endpoints
290/309 Test #290: LineSegment stores endpoints .....................................................................   Passed    0.00 sec
        Start 291: LineSegment rejects empty ids and zero length
291/309 Test #291: LineSegment rejects empty ids and zero length ....................................................   Passed    0.00 sec
        Start 292: RectangleProfile stores center and parameter references
292/309 Test #292: RectangleProfile stores center and parameter references ..........................................   Passed    0.00 sec
        Start 293: RectangleProfile rejects missing ids and parameter references
293/309 Test #293: RectangleProfile rejects missing ids and parameter references ....................................   Passed    0.00 sec
        Start 294: CircleProfile stores center and diameter parameter reference
294/309 Test #294: CircleProfile stores center and diameter parameter reference .....................................   Passed    0.00 sec
        Start 295: CircleProfile rejects missing ids and diameter references
295/309 Test #295: CircleProfile rejects missing ids and diameter references ........................................   Passed    0.00 sec
        Start 296: ClosedProfile stores ordered line segment references
296/309 Test #296: ClosedProfile stores ordered line segment references .............................................   Passed    0.00 sec
        Start 297: ClosedProfile rejects invalid references
297/309 Test #297: ClosedProfile rejects invalid references .........................................................   Passed    0.00 sec
        Start 298: Sketch stores identity and workplane reference
298/309 Test #298: Sketch stores identity and workplane reference ...................................................   Passed    0.00 sec
        Start 299: Sketch rejects empty id, name and workplane
299/309 Test #299: Sketch rejects empty id, name and workplane ......................................................   Passed    0.00 sec
        Start 300: Sketch adds rectangle circle and closed profiles
300/309 Test #300: Sketch adds rectangle circle and closed profiles .................................................   Passed    0.00 sec
        Start 301: Sketch rejects duplicate profile ids across profile types
301/309 Test #301: Sketch rejects duplicate profile ids across profile types ........................................   Passed    0.00 sec
        Start 302: Sketch validates ordered closed profile loops
302/309 Test #302: Sketch validates ordered closed profile loops ....................................................   Passed    0.00 sec
        Start 303: Sketch rejects disconnected and self-intersecting closed profiles
303/309 Test #303: Sketch rejects disconnected and self-intersecting closed profiles ................................   Passed    0.00 sec
        Start 304: SubassemblyInstance validates rigid occurrence intent
304/309 Test #304: SubassemblyInstance validates rigid occurrence intent ............................................   Passed    0.00 sec
        Start 305: AssemblyDocument stores and explicitly edits rigid subassembly occurrences
305/309 Test #305: AssemblyDocument stores and explicitly edits rigid subassembly occurrences .......................   Passed    0.00 sec
        Start 306: Rigid subassembly occurrences survive additive assembly JSON roundtrip
306/309 Test #306: Rigid subassembly occurrences survive additive assembly JSON roundtrip ...........................   Passed    0.00 sec
        Start 307: Assembly JSON remains backward compatible without subassembly occurrences
307/309 Test #307: Assembly JSON remains backward compatible without subassembly occurrences ........................   Passed    0.00 sec
        Start 308: Project JSON preserves explicit root and project-owned child assemblies
308/309 Test #308: Project JSON preserves explicit root and project-owned child assemblies ..........................   Passed    0.00 sec
        Start 309: Project JSON remains backward compatible without child assembly collection
309/309 Test #309: Project JSON remains backward compatible without child assembly collection .......................   Passed    0.00 sec

99% tests passed, 1 tests failed out of 309

Total Test time (real) =   1.21 sec

The following tests FAILED:
	 17 - Generic Project relationships preserve identity and participate in Block 39 graphs (Failed)
Errors while running CTest

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

290/309 Test #290: LineSegment stores endpoints .....................................................................   Passed    0.00 sec
        Start 291: LineSegment rejects empty ids and zero length
291/309 Test #291: LineSegment rejects empty ids and zero length ....................................................   Passed    0.00 sec
        Start 292: RectangleProfile stores center and parameter references
292/309 Test #292: RectangleProfile stores center and parameter references ..........................................   Passed    0.00 sec
        Start 293: RectangleProfile rejects missing ids and parameter references
293/309 Test #293: RectangleProfile rejects missing ids and parameter references ....................................   Passed    0.00 sec
        Start 294: CircleProfile stores center and diameter parameter reference
294/309 Test #294: CircleProfile stores center and diameter parameter reference .....................................   Passed    0.00 sec
        Start 295: CircleProfile rejects missing ids and diameter references
295/309 Test #295: CircleProfile rejects missing ids and diameter references ........................................   Passed    0.00 sec
        Start 296: ClosedProfile stores ordered line segment references
296/309 Test #296: ClosedProfile stores ordered line segment references .............................................   Passed    0.00 sec
        Start 297: ClosedProfile rejects invalid references
297/309 Test #297: ClosedProfile rejects invalid references .........................................................   Passed    0.00 sec
        Start 298: Sketch stores identity and workplane reference
298/309 Test #298: Sketch stores identity and workplane reference ...................................................   Passed    0.00 sec
        Start 299: Sketch rejects empty id, name and workplane
299/309 Test #299: Sketch rejects empty id, name and workplane ......................................................   Passed    0.00 sec
        Start 300: Sketch adds rectangle circle and closed profiles
300/309 Test #300: Sketch adds rectangle circle and closed profiles .................................................   Passed    0.00 sec
        Start 301: Sketch rejects duplicate profile ids across profile types
301/309 Test #301: Sketch rejects duplicate profile ids across profile types ........................................   Passed    0.00 sec
        Start 302: Sketch validates ordered closed profile loops
302/309 Test #302: Sketch validates ordered closed profile loops ....................................................   Passed    0.00 sec
        Start 303: Sketch rejects disconnected and self-intersecting closed profiles
303/309 Test #303: Sketch rejects disconnected and self-intersecting closed profiles ................................   Passed    0.00 sec
        Start 304: SubassemblyInstance validates rigid occurrence intent
304/309 Test #304: SubassemblyInstance validates rigid occurrence intent ............................................   Passed    0.00 sec
        Start 305: AssemblyDocument stores and explicitly edits rigid subassembly occurrences
305/309 Test #305: AssemblyDocument stores and explicitly edits rigid subassembly occurrences .......................   Passed    0.00 sec
        Start 306: Rigid subassembly occurrences survive additive assembly JSON roundtrip
306/309 Test #306: Rigid subassembly occurrences survive additive assembly JSON roundtrip ...........................   Passed    0.00 sec
        Start 307: Assembly JSON remains backward compatible without subassembly occurrences
307/309 Test #307: Assembly JSON remains backward compatible without subassembly occurrences ........................   Passed    0.00 sec
        Start 308: Project JSON preserves explicit root and project-owned child assemblies
308/309 Test #308: Project JSON preserves explicit root and project-owned child assemblies ..........................   Passed    0.00 sec
        Start 309: Project JSON remains backward compatible without child assembly collection
309/309 Test #309: Project JSON remains backward compatible without child assembly collection .......................   Passed    0.00 sec

100% tests passed, 0 tests failed out of 309

Total Test time (real) =   1.17 sec
Executing workflow step 1 of 3: configure preset "dev-geometry"

Preset CMake variables:

  BLCAD_BUILD_GEOMETRY="ON"
  BLCAD_BUILD_GUI="OFF"
  BLCAD_BUILD_TESTS="ON"
  CMAKE_BUILD_TYPE="Debug"

-- The CXX compiler identification is GNU 13.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- BLCAD MVP-1 core skeleton configured.
-- Geometry/OCCT targets enabled: ON
-- GUI/Qt targets enabled: OFF
-- Configuring done (0.2s)
-- Generating done (0.0s)
-- Build files have been written to: /home/runner/work/Better-Linux-CAD/Better-Linux-CAD/build/dev-geometry

Executing workflow step 2 of 3: build preset "dev-geometry"

[1/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_constraint.cpp.o
[2/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_constraint_graph.cpp.o
[3/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_cross_hierarchy_constraint_graph.cpp.o
[4/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_document.cpp.o
[5/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_cross_hierarchy_motion_graph.cpp.o
[6/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_exchange_graph.cpp.o
[7/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_hierarchy.cpp.o
[8/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_joint.cpp.o
[9/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_reference_target.cpp.o
[10/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_joint_graph.cpp.o
[11/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_leaf_occurrence.cpp.o
[12/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/datum_axis.cpp.o
[13/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_subassembly_instances.cpp.o
[14/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/composite_closed_profile.cpp.o
[15/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/error.cpp.o
[16/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/feature.cpp.o
[17/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/construction_geometry.cpp.o
[18/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/datum_plane.cpp.o
[19/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/invalidation_state.cpp.o
[20/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/dependency_graph.cpp.o
[21/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/parameter.cpp.o
[22/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_document_json.cpp.o
[23/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/generated_topology_reference.cpp.o
[24/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/parameter_expression.cpp.o
[25/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project_cross_hierarchy_constraints.cpp.o
[26/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project_cross_hierarchy_joints.cpp.o
[27/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/part_document.cpp.o
[28/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/quantity.cpp.o
[29/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project.cpp.o
[30/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/recompute_plan.cpp.o
[31/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/reference_generated_line.cpp.o
[32/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/reference_recovery.cpp.o
[33/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_constraints.cpp.o
[34/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_arc_profile.cpp.o
[35/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_command_labels.cpp.o
[36/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch.cpp.o
[37/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_presentation_metadata.cpp.o
[38/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_commands.cpp.o
[39/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_diagnostics.cpp.o
[40/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project_json.cpp.o
[41/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_transactions.cpp.o
[42/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_undo_stack.cpp.o
[43/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_suggestions.cpp.o
[44/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_presentation_snapshot.cpp.o
[45/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_presentation_snapshot_query.cpp.o
[46/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_concentric_constraint_equation_builder.cpp.o
[47/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/arc_closed_profile_adapter.cpp.o
[48/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_constraint_equation_builder.cpp.o
[49/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/part_document_json.cpp.o
[50/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_generic_relationship_equation_builder.cpp.o
FAILED: [code=1] CMakeFiles/blcad_geometry.dir/src/geometry/assembly_generic_relationship_equation_builder.cpp.o 
/usr/bin/c++  -I/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/include -isystem /usr/include/opencascade -g -std=c++20 -Wall -Wextra -Wpedantic -MD -MT CMakeFiles/blcad_geometry.dir/src/geometry/assembly_generic_relationship_equation_builder.cpp.o -MF CMakeFiles/blcad_geometry.dir/src/geometry/assembly_generic_relationship_equation_builder.cpp.o.d -o CMakeFiles/blcad_geometry.dir/src/geometry/assembly_generic_relationship_equation_builder.cpp.o -c /home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp: In member function ‘blcad::Result<blcad::geometry::AssemblyGenericRelationshipEquationDescriptor> blcad::geometry::AssemblyGenericRelationshipEquationBuilder::build(blcad::AssemblyConstraintId, blcad::AssemblyConstraintType, const blcad::geometry::AssemblyResolvedGeometricTarget&, const blcad::geometry::AssemblyResolvedGeometricTarget&, std::optional<blcad::Quantity>) const’:
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:219:11: error: expected ‘)’ before ‘}’ token
  219 |         }}
      |           ^
      |           )
  220 |     });
      |     ~      
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:212:76: note: to match this ‘(’
  212 |       return Result<AssemblyGenericRelationshipEquationDescriptor>::success(
      |                                                                            ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:219:11: error: expected ‘;’ before ‘}’ token
  219 |         }}
      |           ^
      |           ;
  220 |     });
      |     ~      
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:220:6: error: expected primary-expression before ‘)’ token
  220 |     });
      |      ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:247:9: error: expected ‘)’ before ‘}’ token
  247 |       }}
      |         ^
      |         )
  248 |   });
      |   ~      
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:240:76: note: to match this ‘(’
  240 |       return Result<AssemblyGenericRelationshipEquationDescriptor>::success(
      |                                                                            ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:247:9: error: expected ‘;’ before ‘}’ token
  247 |       }}
      |         ^
      |         ;
  248 |   });
      |   ~      
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:248:4: error: expected primary-expression before ‘)’ token
  248 |   });
      |    ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:175:75: warning: unused parameter ‘angle’ [-Wunused-parameter]
  175 |                                                   std::optional<Quantity> angle) const {
      |                                                   ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp: At global scope:
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:251:26: error: ‘capability_a’ was not declared in this scope
  251 | const bool point_plane = capability_a == AssemblyGeometricTargetCapability::Point &&
      |                          ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:252:26: error: ‘capability_b’ was not declared in this scope
  252 |                          capability_b == AssemblyGeometricTargetCapability::Plane;
      |                          ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:253:26: error: ‘capability_a’ was not declared in this scope
  253 | const bool plane_point = capability_a == AssemblyGeometricTargetCapability::Plane &&
      |                          ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:254:26: error: ‘capability_b’ was not declared in this scope
  254 |                          capability_b == AssemblyGeometricTargetCapability::Point;
      |                          ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:255:1: error: expected unqualified-id before ‘if’
  255 | if (point_plane || plane_point) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:277:39: error: ‘target_a’ was not declared in this scope
  277 | auto direction_a = selected_direction(target_a, capability_a);
      |                                       ^~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:277:49: error: ‘capability_a’ was not declared in this scope
  277 | auto direction_a = selected_direction(target_a, capability_a);
      |                                                 ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:277:20: error: ‘selected_direction’ was not declared in this scope; did you mean ‘blcad::geometry::{anonymous}::selected_direction’?
  277 | auto direction_a = selected_direction(target_a, capability_a);
      |                    ^~~~~~~~~~~~~~~~~~
      |                    blcad::geometry::{anonymous}::selected_direction
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:105:31: note: ‘blcad::geometry::{anonymous}::selected_direction’ declared here
  105 | [[nodiscard]] Result<Vector3> selected_direction(const AssemblyResolvedGeometricTarget& target,
      |                               ^~~~~~~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:278:1: error: expected unqualified-id before ‘if’
  278 | if (direction_a.has_error()) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:281:39: error: ‘target_b’ was not declared in this scope
  281 | auto direction_b = selected_direction(target_b, capability_b);
      |                                       ^~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:281:49: error: ‘capability_b’ was not declared in this scope
  281 | auto direction_b = selected_direction(target_b, capability_b);
      |                                                 ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:281:20: error: ‘selected_direction’ was not declared in this scope; did you mean ‘blcad::geometry::{anonymous}::selected_direction’?
  281 | auto direction_b = selected_direction(target_b, capability_b);
      |                    ^~~~~~~~~~~~~~~~~~
      |                    blcad::geometry::{anonymous}::selected_direction
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:105:31: note: ‘blcad::geometry::{anonymous}::selected_direction’ declared here
  105 | [[nodiscard]] Result<Vector3> selected_direction(const AssemblyResolvedGeometricTarget& target,
      |                               ^~~~~~~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:282:1: error: expected unqualified-id before ‘if’
  282 | if (direction_b.has_error()) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:286:1: error: expected unqualified-id before ‘if’
  286 | if (type == AssemblyConstraintType::Parallel) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:293:1: error: expected unqualified-id before ‘if’
  293 | if (type == AssemblyConstraintType::Perpendicular) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:300:1: error: expected unqualified-id before ‘if’
  300 | if (type == AssemblyConstraintType::Angle) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:316:1: error: expected unqualified-id before ‘return’
  316 | return Result<AssemblyGenericRelationshipEquationDescriptor>::failure(validation_error(
      | ^~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:318:1: error: expected declaration before ‘}’ token
  318 | }
      | ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:320:1: error: expected declaration before ‘}’ token
  320 | } // namespace blcad::geometry
      | ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:105:31: warning: ‘blcad::Result<blcad::Vector3> blcad::geometry::{anonymous}::selected_direction(const blcad::geometry::AssemblyResolvedGeometricTarget&, blcad::geometry::AssemblyGeometricTargetCapability)’ defined but not used [-Wunused-function]
  105 | [[nodiscard]] Result<Vector3> selected_direction(const AssemblyResolvedGeometricTarget& target,
      |                               ^~~~~~~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:87:1: warning: ‘blcad::Result<blcad::geometry::AssemblyPlanarTargetDescriptor> blcad::geometry::{anonymous}::selected_plane(const blcad::geometry::AssemblyResolvedGeometricTarget&, blcad::geometry::AssemblyGeometricTargetCapability)’ defined but not used [-Wunused-function]
   87 | selected_plane(const AssemblyResolvedGeometricTarget& target,
      | ^~~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:28:22: warning: ‘double blcad::geometry::{anonymous}::dot(const blcad::Vector3&, const blcad::Vector3&)’ defined but not used [-Wunused-function]
   28 | [[nodiscard]] double dot(const Vector3& lhs, const Vector3& rhs) noexcept {
      |                      ^~~
[51/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_contact_analyzer.cpp.o
[52/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_undo_stack_summary.cpp.o
[53/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_constraint_target_resolver.cpp.o
[54/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_constraint_numeric_system.cpp.o
[55/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_cross_hierarchy_constraint_solver.cpp.o
ninja: build stopped: subcommand failed.

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

289/309 Test #289: Spline sketch profile and tangent metadata roundtrip through JSON ................................   Passed    0.00 sec
        Start 290: LineSegment stores endpoints
290/309 Test #290: LineSegment stores endpoints .....................................................................   Passed    0.00 sec
        Start 291: LineSegment rejects empty ids and zero length
291/309 Test #291: LineSegment rejects empty ids and zero length ....................................................   Passed    0.00 sec
        Start 292: RectangleProfile stores center and parameter references
292/309 Test #292: RectangleProfile stores center and parameter references ..........................................   Passed    0.00 sec
        Start 293: RectangleProfile rejects missing ids and parameter references
293/309 Test #293: RectangleProfile rejects missing ids and parameter references ....................................   Passed    0.00 sec
        Start 294: CircleProfile stores center and diameter parameter reference
294/309 Test #294: CircleProfile stores center and diameter parameter reference .....................................   Passed    0.00 sec
        Start 295: CircleProfile rejects missing ids and diameter references
295/309 Test #295: CircleProfile rejects missing ids and diameter references ........................................   Passed    0.00 sec
        Start 296: ClosedProfile stores ordered line segment references
296/309 Test #296: ClosedProfile stores ordered line segment references .............................................   Passed    0.00 sec
        Start 297: ClosedProfile rejects invalid references
297/309 Test #297: ClosedProfile rejects invalid references .........................................................   Passed    0.00 sec
        Start 298: Sketch stores identity and workplane reference
298/309 Test #298: Sketch stores identity and workplane reference ...................................................   Passed    0.00 sec
        Start 299: Sketch rejects empty id, name and workplane
299/309 Test #299: Sketch rejects empty id, name and workplane ......................................................   Passed    0.00 sec
        Start 300: Sketch adds rectangle circle and closed profiles
300/309 Test #300: Sketch adds rectangle circle and closed profiles .................................................   Passed    0.00 sec
        Start 301: Sketch rejects duplicate profile ids across profile types
301/309 Test #301: Sketch rejects duplicate profile ids across profile types ........................................   Passed    0.00 sec
        Start 302: Sketch validates ordered closed profile loops
302/309 Test #302: Sketch validates ordered closed profile loops ....................................................   Passed    0.00 sec
        Start 303: Sketch rejects disconnected and self-intersecting closed profiles
303/309 Test #303: Sketch rejects disconnected and self-intersecting closed profiles ................................   Passed    0.00 sec
        Start 304: SubassemblyInstance validates rigid occurrence intent
304/309 Test #304: SubassemblyInstance validates rigid occurrence intent ............................................   Passed    0.00 sec
        Start 305: AssemblyDocument stores and explicitly edits rigid subassembly occurrences
305/309 Test #305: AssemblyDocument stores and explicitly edits rigid subassembly occurrences .......................   Passed    0.00 sec
        Start 306: Rigid subassembly occurrences survive additive assembly JSON roundtrip
306/309 Test #306: Rigid subassembly occurrences survive additive assembly JSON roundtrip ...........................   Passed    0.00 sec
        Start 307: Assembly JSON remains backward compatible without subassembly occurrences
307/309 Test #307: Assembly JSON remains backward compatible without subassembly occurrences ........................   Passed    0.00 sec
        Start 308: Project JSON preserves explicit root and project-owned child assemblies
308/309 Test #308: Project JSON preserves explicit root and project-owned child assemblies ..........................   Passed    0.00 sec
        Start 309: Project JSON remains backward compatible without child assembly collection
309/309 Test #309: Project JSON remains backward compatible without child assembly collection .......................   Passed    0.00 sec

100% tests passed, 0 tests failed out of 309

Total Test time (real) =   1.11 sec
Executing workflow step 1 of 3: configure preset "dev-geometry"

Preset CMake variables:

  BLCAD_BUILD_GEOMETRY="ON"
  BLCAD_BUILD_GUI="OFF"
  BLCAD_BUILD_TESTS="ON"
  CMAKE_BUILD_TYPE="Debug"

-- The CXX compiler identification is GNU 13.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- BLCAD MVP-1 core skeleton configured.
-- Geometry/OCCT targets enabled: ON
-- GUI/Qt targets enabled: OFF
-- Configuring done (0.2s)
-- Generating done (0.0s)
-- Build files have been written to: /home/runner/work/Better-Linux-CAD/Better-Linux-CAD/build/dev-geometry

Executing workflow step 2 of 3: build preset "dev-geometry"

[1/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_constraint.cpp.o
[2/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_document.cpp.o
[3/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_constraint_graph.cpp.o
[4/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_cross_hierarchy_motion_graph.cpp.o
[5/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_cross_hierarchy_constraint_graph.cpp.o
[6/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_joint.cpp.o
[7/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_exchange_graph.cpp.o
[8/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_hierarchy.cpp.o
[9/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_leaf_occurrence.cpp.o
[10/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_reference_target.cpp.o
[11/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_joint_graph.cpp.o
[12/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/composite_closed_profile.cpp.o
[13/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/construction_geometry.cpp.o
[14/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_subassembly_instances.cpp.o
[15/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/datum_axis.cpp.o
[16/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/error.cpp.o
[17/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/datum_plane.cpp.o
[18/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/feature.cpp.o
[19/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/dependency_graph.cpp.o
[20/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/parameter.cpp.o
[21/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/invalidation_state.cpp.o
[22/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/generated_topology_reference.cpp.o
[23/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/parameter_expression.cpp.o
[24/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project_cross_hierarchy_constraints.cpp.o
[25/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_document_json.cpp.o
[26/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project.cpp.o
[27/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/quantity.cpp.o
[28/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/part_document.cpp.o
[29/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/recompute_plan.cpp.o
[30/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project_cross_hierarchy_joints.cpp.o
[31/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/reference_generated_line.cpp.o
[32/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/reference_recovery.cpp.o
[33/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_constraints.cpp.o
[34/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_arc_profile.cpp.o
[35/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_command_labels.cpp.o
[36/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_presentation_metadata.cpp.o
[37/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch.cpp.o
[38/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_commands.cpp.o
[39/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_diagnostics.cpp.o
[40/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project_json.cpp.o
[41/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_transactions.cpp.o
[42/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_suggestions.cpp.o
[43/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_presentation_snapshot_query.cpp.o
[44/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_presentation_snapshot.cpp.o
[45/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/part_document_json.cpp.o
[46/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_undo_stack.cpp.o
[47/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_concentric_constraint_equation_builder.cpp.o
[48/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_generic_relationship_equation_builder.cpp.o
FAILED: [code=1] CMakeFiles/blcad_geometry.dir/src/geometry/assembly_generic_relationship_equation_builder.cpp.o 
/usr/bin/c++  -I/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/include -isystem /usr/include/opencascade -g -std=c++20 -Wall -Wextra -Wpedantic -MD -MT CMakeFiles/blcad_geometry.dir/src/geometry/assembly_generic_relationship_equation_builder.cpp.o -MF CMakeFiles/blcad_geometry.dir/src/geometry/assembly_generic_relationship_equation_builder.cpp.o.d -o CMakeFiles/blcad_geometry.dir/src/geometry/assembly_generic_relationship_equation_builder.cpp.o -c /home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp: In member function ‘blcad::Result<blcad::geometry::AssemblyGenericRelationshipEquationDescriptor> blcad::geometry::AssemblyGenericRelationshipEquationBuilder::build(blcad::AssemblyConstraintId, blcad::AssemblyConstraintType, const blcad::geometry::AssemblyResolvedGeometricTarget&, const blcad::geometry::AssemblyResolvedGeometricTarget&, std::optional<blcad::Quantity>) const’:
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:219:11: error: expected ‘)’ before ‘}’ token
  219 |         }}
      |           ^
      |           )
  220 |     });
      |     ~      
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:212:76: note: to match this ‘(’
  212 |       return Result<AssemblyGenericRelationshipEquationDescriptor>::success(
      |                                                                            ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:219:11: error: expected ‘;’ before ‘}’ token
  219 |         }}
      |           ^
      |           ;
  220 |     });
      |     ~      
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:220:6: error: expected primary-expression before ‘)’ token
  220 |     });
      |      ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:247:9: error: expected ‘)’ before ‘}’ token
  247 |       }}
      |         ^
      |         )
  248 |   });
      |   ~      
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:240:76: note: to match this ‘(’
  240 |       return Result<AssemblyGenericRelationshipEquationDescriptor>::success(
      |                                                                            ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:247:9: error: expected ‘;’ before ‘}’ token
  247 |       }}
      |         ^
      |         ;
  248 |   });
      |   ~      
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:248:4: error: expected primary-expression before ‘)’ token
  248 |   });
      |    ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:175:75: warning: unused parameter ‘angle’ [-Wunused-parameter]
  175 |                                                   std::optional<Quantity> angle) const {
      |                                                   ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp: At global scope:
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:251:26: error: ‘capability_a’ was not declared in this scope
  251 | const bool point_plane = capability_a == AssemblyGeometricTargetCapability::Point &&
      |                          ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:252:26: error: ‘capability_b’ was not declared in this scope
  252 |                          capability_b == AssemblyGeometricTargetCapability::Plane;
      |                          ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:253:26: error: ‘capability_a’ was not declared in this scope
  253 | const bool plane_point = capability_a == AssemblyGeometricTargetCapability::Plane &&
      |                          ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:254:26: error: ‘capability_b’ was not declared in this scope
  254 |                          capability_b == AssemblyGeometricTargetCapability::Point;
      |                          ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:255:1: error: expected unqualified-id before ‘if’
  255 | if (point_plane || plane_point) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:277:39: error: ‘target_a’ was not declared in this scope
  277 | auto direction_a = selected_direction(target_a, capability_a);
      |                                       ^~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:277:49: error: ‘capability_a’ was not declared in this scope
  277 | auto direction_a = selected_direction(target_a, capability_a);
      |                                                 ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:277:20: error: ‘selected_direction’ was not declared in this scope; did you mean ‘blcad::geometry::{anonymous}::selected_direction’?
  277 | auto direction_a = selected_direction(target_a, capability_a);
      |                    ^~~~~~~~~~~~~~~~~~
      |                    blcad::geometry::{anonymous}::selected_direction
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:105:31: note: ‘blcad::geometry::{anonymous}::selected_direction’ declared here
  105 | [[nodiscard]] Result<Vector3> selected_direction(const AssemblyResolvedGeometricTarget& target,
      |                               ^~~~~~~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:278:1: error: expected unqualified-id before ‘if’
  278 | if (direction_a.has_error()) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:281:39: error: ‘target_b’ was not declared in this scope
  281 | auto direction_b = selected_direction(target_b, capability_b);
      |                                       ^~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:281:49: error: ‘capability_b’ was not declared in this scope
  281 | auto direction_b = selected_direction(target_b, capability_b);
      |                                                 ^~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:281:20: error: ‘selected_direction’ was not declared in this scope; did you mean ‘blcad::geometry::{anonymous}::selected_direction’?
  281 | auto direction_b = selected_direction(target_b, capability_b);
      |                    ^~~~~~~~~~~~~~~~~~
      |                    blcad::geometry::{anonymous}::selected_direction
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:105:31: note: ‘blcad::geometry::{anonymous}::selected_direction’ declared here
  105 | [[nodiscard]] Result<Vector3> selected_direction(const AssemblyResolvedGeometricTarget& target,
      |                               ^~~~~~~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:282:1: error: expected unqualified-id before ‘if’
  282 | if (direction_b.has_error()) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:286:1: error: expected unqualified-id before ‘if’
  286 | if (type == AssemblyConstraintType::Parallel) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:293:1: error: expected unqualified-id before ‘if’
  293 | if (type == AssemblyConstraintType::Perpendicular) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:300:1: error: expected unqualified-id before ‘if’
  300 | if (type == AssemblyConstraintType::Angle) {
      | ^~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:316:1: error: expected unqualified-id before ‘return’
  316 | return Result<AssemblyGenericRelationshipEquationDescriptor>::failure(validation_error(
      | ^~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:318:1: error: expected declaration before ‘}’ token
  318 | }
      | ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:320:1: error: expected declaration before ‘}’ token
  320 | } // namespace blcad::geometry
      | ^
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:105:31: warning: ‘blcad::Result<blcad::Vector3> blcad::geometry::{anonymous}::selected_direction(const blcad::geometry::AssemblyResolvedGeometricTarget&, blcad::geometry::AssemblyGeometricTargetCapability)’ defined but not used [-Wunused-function]
  105 | [[nodiscard]] Result<Vector3> selected_direction(const AssemblyResolvedGeometricTarget& target,
      |                               ^~~~~~~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:87:1: warning: ‘blcad::Result<blcad::geometry::AssemblyPlanarTargetDescriptor> blcad::geometry::{anonymous}::selected_plane(const blcad::geometry::AssemblyResolvedGeometricTarget&, blcad::geometry::AssemblyGeometricTargetCapability)’ defined but not used [-Wunused-function]
   87 | selected_plane(const AssemblyResolvedGeometricTarget& target,
      | ^~~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry/assembly_generic_relationship_equation_builder.cpp:28:22: warning: ‘double blcad::geometry::{anonymous}::dot(const blcad::Vector3&, const blcad::Vector3&)’ defined but not used [-Wunused-function]
   28 | [[nodiscard]] double dot(const Vector3& lhs, const Vector3& rhs) noexcept {
      |                      ^~~
[49/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_constraint_equation_builder.cpp.o
[50/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/arc_closed_profile_adapter.cpp.o
[51/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_undo_stack_summary.cpp.o
[52/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_constraint_target_resolver.cpp.o
[53/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_constraint_numeric_system.cpp.o
ninja: build stopped: subcommand failed.

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

[5/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_hierarchy.cpp.o
[6/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_joint.cpp.o
[7/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_cross_hierarchy_constraint_graph.cpp.o
[8/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_joint_graph.cpp.o
[9/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_reference_target.cpp.o
[10/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_cross_hierarchy_motion_graph.cpp.o
[11/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_leaf_occurrence.cpp.o
[12/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/composite_closed_profile.cpp.o
[13/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_subassembly_instances.cpp.o
[14/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/datum_axis.cpp.o
[15/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/construction_geometry.cpp.o
[16/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/error.cpp.o
[17/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/datum_plane.cpp.o
[18/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/feature.cpp.o
[19/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/invalidation_state.cpp.o
[20/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/dependency_graph.cpp.o
[21/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/parameter.cpp.o
[22/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/assembly_document_json.cpp.o
[23/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/generated_topology_reference.cpp.o
[24/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/part_document.cpp.o
[25/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project_cross_hierarchy_constraints.cpp.o
[26/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/parameter_expression.cpp.o
[27/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/quantity.cpp.o
[28/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project_cross_hierarchy_joints.cpp.o
[29/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/recompute_plan.cpp.o
[30/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project.cpp.o
[31/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/reference_generated_line.cpp.o
[32/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/reference_recovery.cpp.o
[33/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_arc_profile.cpp.o
[34/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_constraints.cpp.o
[35/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch.cpp.o
[36/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_command_labels.cpp.o
[37/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_presentation_metadata.cpp.o
[38/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_commands.cpp.o
[39/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_presentation_snapshot.cpp.o
[40/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/project_json.cpp.o
[41/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_diagnostics.cpp.o
[42/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_undo_stack.cpp.o
[43/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/part_document_json.cpp.o
[44/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_suggestions.cpp.o
[45/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_transactions.cpp.o
[46/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_presentation_snapshot_query.cpp.o
[47/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_concentric_constraint_equation_builder.cpp.o
[48/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_generic_relationship_equation_builder.cpp.o
[49/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_constraint_equation_builder.cpp.o
[50/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/arc_closed_profile_adapter.cpp.o
[51/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_cross_hierarchy_freshness.cpp.o
[52/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_contact_analyzer.cpp.o
[53/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_constraint_numeric_system.cpp.o
[54/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_constraint_target_resolver.cpp.o
[55/238] Building CXX object CMakeFiles/blcad_core.dir/src/core/sketch_repair_undo_stack_summary.cpp.o
[56/238] Linking CXX static library libblcad_core.a
[57/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_geometric_target.cpp.o
[58/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_cross_hierarchy_motion_numeric_system.cpp.o
[59/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_hierarchy_transform_evaluator.cpp.o
[60/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_hierarchy_revolute_joint_equation_builder.cpp.o
[61/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_cross_hierarchy_constraint_solver.cpp.o
[62/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_cross_hierarchy_numeric_system.cpp.o
[63/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_insert_constraint_equation_builder.cpp.o
[64/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_cross_hierarchy_joint_motion_solver.cpp.o
[65/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_matrix_rank.cpp.o
[66/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_interference_analyzer.cpp.o
[67/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_occt_rigid_transform.cpp.o
[68/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_revolute_joint_equation_builder.cpp.o
[69/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_hierarchy_constraint_equation_builder.cpp.o
[70/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_posed_leaf_shapes.cpp.o
[71/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_part_shape_definitions.cpp.o
[72/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_revolute_joint_residual.cpp.o
[73/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_numeric_solve_engine.cpp.o
[74/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_joint_motion_solver.cpp.o
[75/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_semantic_target_freshness.cpp.o
[76/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_step_exporter.cpp.o
[77/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_target_compatibility.cpp.o
[78/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_structured_step_exporter.cpp.o
[79/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_transform_evaluator.cpp.o
[80/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_revolute_sweep_analyzer.cpp.o
[81/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/circular_cut_adapter.cpp.o
[82/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/construction_line_resolver.cpp.o
[83/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_rigid_body_solver.cpp.o
[84/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/construction_point_resolver.cpp.o
[85/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/assembly_solve_diagnostics.cpp.o
[86/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/dimension_driven_profile_resolver.cpp.o
[87/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/closed_profile_adapter.cpp.o
[88/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/rectangle_extrusion_adapter.cpp.o
[89/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/reference_driven_sketch_helper.cpp.o
[90/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/shape_cache.cpp.o
[91/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/recompute_executor.cpp.o
[92/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/semantic_reference_evaluator.cpp.o
[93/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/reference_generated_profile_resolver.cpp.o
[94/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/step_exporter.cpp.o
[95/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/workplane_resolver.cpp.o
[96/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/sketch_reference_projector.cpp.o
[97/238] Building CXX object CMakeFiles/blcad_geometry.dir/src/geometry/sketch_region_finder.cpp.o
[98/238] Building CXX object CMakeFiles/blcad_export_step.dir/examples/blcad_export_step.cpp.o
[99/238] Building CXX object CMakeFiles/blcad_inspect_project_components.dir/examples/blcad_inspect_project_components.cpp.o
[100/238] Linking CXX static library libblcad_geometry.a
[101/238] Building CXX object CMakeFiles/blcad_export_posed_assembly.dir/examples/blcad_export_posed_assembly.cpp.o
[102/238] Building CXX object CMakeFiles/blcad_export_structured_assembly.dir/examples/blcad_export_structured_assembly.cpp.o
[103/238] Building CXX object CMakeFiles/blcad_export_project.dir/examples/blcad_export_project.cpp.o
[104/238] Building CXX object CMakeFiles/blcad_move_joint.dir/examples/blcad_move_joint.cpp.o
[105/238] Building CXX object CMakeFiles/blcad_analyze_assembly.dir/examples/blcad_analyze_assembly.cpp.o
[106/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_angle_constraint_tests.cpp.o
[107/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_constraint_graph_tests.cpp.o
[108/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_constraint_tests.cpp.o
[109/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_document_tests.cpp.o
[110/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_cross_hierarchy_constraint_graph_tests.cpp.o
[111/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_cross_hierarchy_joint_tests.cpp.o
[112/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_generic_relationship_tests.cpp.o
[113/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_cross_hierarchy_constraint_tests.cpp.o
[114/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_exchange_graph_tests.cpp.o
[115/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_exchange_name_tests.cpp.o
[116/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_insert_constraint_tests.cpp.o
[117/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_hierarchy_tests.cpp.o
[118/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_joint_graph_tests.cpp.o
[119/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_reference_target_tests.cpp.o
[120/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_joint_tests.cpp.o
[121/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_leaf_occurrence_tests.cpp.o
[122/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/chained_construction_relation_tests.cpp.o
[123/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/circular_hole_pattern_tests.cpp.o
[124/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/closed_profile_json_tests.cpp.o
[125/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/component_instance_tests.cpp.o
[126/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/composite_closed_profile_tests.cpp.o
[127/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/assembly_reference_target_json_tests.cpp.o
[128/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/composite_closed_profile_json_tests.cpp.o
[129/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/datum_plane_tests.cpp.o
[130/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/construction_geometry_tests.cpp.o
[131/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/datum_axis_tests.cpp.o
[132/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/construction_geometry_json_tests.cpp.o
[133/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/dependency_graph_tests.cpp.o
[134/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/error_result_tests.cpp.o
[135/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/feature_tests.cpp.o
[136/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/derived_workplane_tests.cpp.o
[137/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/datum_axis_json_tests.cpp.o
[138/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/invalidation_state_tests.cpp.o
[139/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/generated_topology_reference_tests.cpp.o
[140/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/parameter_tests.cpp.o
[141/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/part_document_tests.cpp.o
[142/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/part_document_json_tests.cpp.o
[143/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/part_document_json_workplane_tests.cpp.o
[144/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/parameter_expression_tests.cpp.o
[145/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/projected_sketch_reference_tests.cpp.o
[146/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/quantity_tests.cpp.o
[147/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/projected_reference_invalidation_tests.cpp.o
[148/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/recompute_plan_tests.cpp.o
[149/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/reference_driven_sketch_constraint_tests.cpp.o
[150/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/projected_sketch_reference_json_tests.cpp.o
[151/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/project_tests.cpp.o
[152/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/reference_generated_line_json_tests.cpp.o
[153/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/semantic_reference_invalidation_tests.cpp.o
[154/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_arc_profile_json_tests.cpp.o
[155/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/reference_recovery_tests.cpp.o
[156/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_arc_profile_tests.cpp.o
[157/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_diagnostics_tests.cpp.o
[158/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/semantic_reference_json_tests.cpp.o
[159/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_repair_commands_tests.cpp.o
[160/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_repair_command_labels_tests.cpp.o
[161/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_repair_presentation_metadata_tests.cpp.o
[162/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_repair_presentation_snapshot_query_tests.cpp.o
[163/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_dimension_tests.cpp.o
[164/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_repair_presentation_snapshot_tests.cpp.o
[165/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_repair_suggestions_tests.cpp.o
[166/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_repair_transactions_tests.cpp.o
[167/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_repair_undo_stack_tests.cpp.o
[168/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_repair_undo_stack_summary_tests.cpp.o
[169/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_tests.cpp.o
[170/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/sketch_spline_profile_json_tests.cpp.o
[171/238] Building CXX object CMakeFiles/blcad_core_tests.dir/tests/core/subassembly_instance_tests.cpp.o
[172/238] Building CXX object CMakeFiles/blcad_geometry_tests.dir/tests/geometry/arc_closed_profile_pipeline_tests.cpp.o
[173/238] Building CXX object CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_concentric_constraint_equation_builder_tests.cpp.o
[174/238] Building CXX object CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_angle_numeric_solver_tests.cpp.o
[175/238] Building CXX object CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_generic_relationship_equation_tests.cpp.o
FAILED: [code=1] CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_generic_relationship_equation_tests.cpp.o 
/usr/bin/c++  -I/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/src/geometry -I/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/include -isystem /usr/include/opencascade -g -std=c++20 -Wall -Wextra -Wpedantic -MD -MT CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_generic_relationship_equation_tests.cpp.o -MF CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_generic_relationship_equation_tests.cpp.o.d -o CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_generic_relationship_equation_tests.cpp.o -c /home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp
In file included from /usr/include/catch2/catch_tostring.hpp:17,
                 from /usr/include/catch2/internal/catch_decomposer.hpp:11,
                 from /usr/include/catch2/internal/catch_assertion_handler.hpp:12,
                 from /usr/include/catch2/internal/catch_test_macro_impl.hpp:12,
                 from /usr/include/catch2/catch_test_macros.hpp:11,
                 from /home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_cross_hierarchy_test_support.hpp:5,
                 from /home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:1:
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp: In function ‘void CATCH2_INTERNAL_TEST_4()’:
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:347:31: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  347 |   REQUIRE(diagnostics.value().jacobian_rank.evaluated);
      |                               ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:347:31: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  347 |   REQUIRE(diagnostics.value().jacobian_rank.evaluated);
      |                               ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:347:31: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  347 |   REQUIRE(diagnostics.value().jacobian_rank.evaluated);
      |                               ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:348:29: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  348 |   CHECK(diagnostics.value().jacobian_rank.rank == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:348:29: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  348 |   CHECK(diagnostics.value().jacobian_rank.rank == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:348:29: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  348 |   CHECK(diagnostics.value().jacobian_rank.rank == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:349:29: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  349 |   CHECK(diagnostics.value().jacobian_rank.constrained_dof == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:349:29: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  349 |   CHECK(diagnostics.value().jacobian_rank.constrained_dof == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:349:29: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  349 |   CHECK(diagnostics.value().jacobian_rank.constrained_dof == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:350:29: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  350 |   CHECK(diagnostics.value().jacobian_rank.remaining_dof == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:350:29: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  350 |   CHECK(diagnostics.value().jacobian_rank.remaining_dof == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:350:29: error: ‘struct blcad::geometry::AssemblySolveDiagnostics’ has no member named ‘jacobian_rank’
  350 |   CHECK(diagnostics.value().jacobian_rank.remaining_dof == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp: In function ‘void CATCH2_INTERNAL_TEST_6()’:
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:393:31: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  393 |   REQUIRE(diagnostics.value().jacobian_rank.evaluated);
      |                               ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:393:31: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  393 |   REQUIRE(diagnostics.value().jacobian_rank.evaluated);
      |                               ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:393:31: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  393 |   REQUIRE(diagnostics.value().jacobian_rank.evaluated);
      |                               ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:394:29: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  394 |   CHECK(diagnostics.value().jacobian_rank.rank == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:394:29: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  394 |   CHECK(diagnostics.value().jacobian_rank.rank == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:394:29: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  394 |   CHECK(diagnostics.value().jacobian_rank.rank == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:395:29: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  395 |   CHECK(diagnostics.value().jacobian_rank.constrained_dof == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:395:29: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  395 |   CHECK(diagnostics.value().jacobian_rank.constrained_dof == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:395:29: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  395 |   CHECK(diagnostics.value().jacobian_rank.constrained_dof == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:396:29: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  396 |   CHECK(diagnostics.value().jacobian_rank.remaining_dof == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:396:29: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  396 |   CHECK(diagnostics.value().jacobian_rank.remaining_dof == 3U);
      |                             ^~~~~~~~~~~~~
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:396:29: error: ‘struct blcad::geometry::AssemblyCrossHierarchySolveDiagnostics’ has no member named ‘jacobian_rank’
  396 |   CHECK(diagnostics.value().jacobian_rank.remaining_dof == 3U);
      |                             ^~~~~~~~~~~~~
[176/238] Building CXX object CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_concentric_numeric_solver_tests.cpp.o
[177/238] Building CXX object CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_constraint_equation_builder_tests.cpp.o
[178/238] Building CXX object CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_constraint_target_resolver_tests.cpp.o
[179/238] Building CXX object CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_contact_analyzer_tests.cpp.o
[180/238] Building CXX object CMakeFiles/blcad_geometry_tests.dir/tests/geometry/assembly_cross_hierarchy_application_tests.cpp.o
ninja: build stopped: subcommand failed.

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

434/568 Test #434: Revolute motion result application rejects stale component and joint inputs ......................   Passed    0.04 sec
        Start 435: Revolute motion holds other active joints at persisted coordinates
435/568 Test #435: Revolute motion holds other active joints at persisted coordinates ...............................   Passed    0.04 sec
        Start 436: Sampled root-local Revolute sweep classifies contact at deterministic inclusive coordinates
436/568 Test #436: Sampled root-local Revolute sweep classifies contact at deterministic inclusive coordinates ......   Passed    0.10 sec
        Start 437: Sampled Revolute sweep preserves caller interval direction
437/568 Test #437: Sampled Revolute sweep preserves caller interval direction .......................................   Passed    0.09 sec
        Start 438: Sampled cross-hierarchy Revolute sweep reuses atomic cross motion on fresh Project copies
438/568 Test #438: Sampled cross-hierarchy Revolute sweep reuses atomic cross motion on fresh Project copies ........   Passed    0.10 sec
        Start 439: Sampled Revolute sweep validates units bounds sample count and selected scope
439/568 Test #439: Sampled Revolute sweep validates units bounds sample count and selected scope ....................   Passed    0.03 sec
        Start 440: Sampled Revolute sweep fails closed with sample context when contact analysis fails
440/568 Test #440: Sampled Revolute sweep fails closed with sample context when contact analysis fails ..............   Passed    0.03 sec
        Start 441: Rigid-body solver solves and explicitly applies one movable planar Mate
441/568 Test #441: Rigid-body solver solves and explicitly applies one movable planar Mate ..........................   Passed    0.03 sec
        Start 442: Rigid-body solver corrects planar Distance translation and orientation
442/568 Test #442: Rigid-body solver corrects planar Distance translation and orientation ...........................   Passed    0.03 sec
        Start 443: Rigid-body solver uses deterministic constraint and variable ordering for a chain
443/568 Test #443: Rigid-body solver uses deterministic constraint and variable ordering for a chain ................   Passed    0.05 sec
        Start 444: Rigid-body solver defines grounded, suppressed, and connected-group participation
444/568 Test #444: Rigid-body solver defines grounded, suppressed, and connected-group participation ................   Passed    0.03 sec
        Start 445: Rigid-body solver exposes validation and semantic target failures
445/568 Test #445: Rigid-body solver exposes validation and semantic target failures ................................   Passed    0.02 sec
        Start 446: Non-converged and stale solve results cannot mutate project placement
446/568 Test #446: Non-converged and stale solve results cannot mutate project placement ............................   Passed    0.04 sec
        Start 447: Assembly solve diagnostics report local remaining DOF for planar constraints
447/568 Test #447: Assembly solve diagnostics report local remaining DOF for planar constraints .....................   Passed    0.03 sec
        Start 448: Assembly solve diagnostics identify locally full rank and deterministic chains
448/568 Test #448: Assembly solve diagnostics identify locally full rank and deterministic chains ...................   Passed    0.04 sec
        Start 449: Assembly solve diagnostics preserve fixed and non-converged solve states
449/568 Test #449: Assembly solve diagnostics preserve fixed and non-converged solve states .........................   Passed    0.04 sec
        Start 450: Assembly solve diagnostics expose rank tolerance and residual redundancy boundaries
450/568 Test #450: Assembly solve diagnostics expose rank tolerance and residual redundancy boundaries ..............   Passed    0.03 sec
        Start 451: Assembly solve diagnostics preserve semantic target failures and enum labels
451/568 Test #451: Assembly solve diagnostics preserve semantic target failures and enum labels .....................   Passed    0.03 sec
        Start 452: AssemblyStepExporter poses repeated part instances and preserves repeat-export geometry
452/568 Test #452: AssemblyStepExporter poses repeated part instances and preserves repeat-export geometry ..........   Passed    0.06 sec
        Start 453: AssemblyStepExporter excludes hidden and suppressed component occurrences
453/568 Test #453: AssemblyStepExporter excludes hidden and suppressed component occurrences ........................   Passed    0.04 sec
        Start 454: AssemblyStepExporter fails closed on an unresolvable project member
454/568 Test #454: AssemblyStepExporter fails closed on an unresolvable project member ..............................   Passed    0.03 sec
        Start 455: AssemblyStepExporter fails when a referenced part recomputes without a final shape
455/568 Test #455: AssemblyStepExporter fails when a referenced part recomputes without a final shape ...............   Passed    0.03 sec
        Start 456: Structured STEP reuses one part definition for repeated root components
456/568 Test #456: Structured STEP reuses one part definition for repeated root components ..........................   Passed    0.06 sec
        Start 457: Structured STEP preserves repeated child and nested assembly occurrence products
457/568 Test #457: Structured STEP preserves repeated child and nested assembly occurrence products .................   Passed    0.07 sec
        Start 458: Structured STEP mirrors visible-active component and hierarchy filtering
458/568 Test #458: Structured STEP mirrors visible-active component and hierarchy filtering .........................   Passed    0.03 sec
        Start 459: Structured STEP fails closed without an output path or exported component
459/568 Test #459: Structured STEP fails closed without an output path or exported component ........................   Passed    0.02 sec
        Start 460: A suppressed middle component splits the numeric system deterministically
460/568 Test #460: A suppressed middle component splits the numeric system deterministically ........................   Passed    0.02 sec
        Start 461: A suppressed grounded component keeps the remaining subgroup solvable
461/568 Test #461: A suppressed grounded component keeps the remaining subgroup solvable ............................   Passed    0.03 sec
        Start 462: A subgroup without a grounded active component is still rejected
462/568 Test #462: A subgroup without a grounded active component is still rejected .................................   Passed    0.03 sec
        Start 463: Unsuppressing a component after solving makes the result stale
463/568 Test #463: Unsuppressing a component after solving makes the result stale ...................................   Passed    0.03 sec
        Start 464: Suppression diagnostics report rank only over active components
464/568 Test #464: Suppression diagnostics report rank only over active components ..................................   Passed    0.03 sec
        Start 465: Assembly target compatibility resolver covers the supported relationship matrix
465/568 Test #465: Assembly target compatibility resolver covers the supported relationship matrix ..................   Passed    0.02 sec
        Start 466: Assembly target compatibility resolver fails closed for incompatible pairs
466/568 Test #466: Assembly target compatibility resolver fails closed for incompatible pairs .......................   Passed    0.03 sec
        Start 467: Assembly target compatibility resolver is deterministic for multi-capability targets
467/568 Test #467: Assembly target compatibility resolver is deterministic for multi-capability targets .............   Passed    0.03 sec
        Start 468: Assembly target compatibility resolves current local target families without mutation
468/568 Test #468: Assembly target compatibility resolves current local target families without mutation ............   Passed    0.03 sec
        Start 469: Assembly equation builders consume compatibility before projection
469/568 Test #469: Assembly equation builders consume compatibility before projection ...............................   Passed    0.03 sec
        Start 470: Local and cross-hierarchy target compatibility agree for the same semantic families
470/568 Test #470: Local and cross-hierarchy target compatibility agree for the same semantic families ..............   Passed    0.03 sec
        Start 471: Cross-hierarchy equation builder consumes target compatibility
471/568 Test #471: Cross-hierarchy equation builder consumes target compatibility ...................................   Passed    0.03 sec
        Start 472: Assembly transform evaluator preserves identity and applies translation only to points
472/568 Test #472: Assembly transform evaluator preserves identity and applies translation only to points ...........   Passed    0.03 sec
        Start 473: Assembly transform evaluator applies right-handed single-axis rotations
473/568 Test #473: Assembly transform evaluator applies right-handed single-axis rotations ..........................   Passed    0.03 sec
        Start 474: Assembly transform evaluator proves X then Y then Z rotation order
474/568 Test #474: Assembly transform evaluator proves X then Y then Z rotation order ...............................   Passed    0.03 sec
        Start 475: Assembly transform evaluator maps a resolved target plane into assembly space
475/568 Test #475: Assembly transform evaluator maps a resolved target plane into assembly space ....................   Passed    0.02 sec
        Start 476: Assembly transform evaluation is deterministic, length-preserving, and read-only
476/568 Test #476: Assembly transform evaluation is deterministic, length-preserving, and read-only .................   Passed    0.02 sec
        Start 477: Back-face workplane recomputes an axis-directed through-all circular cut
477/568 Test #477: Back-face workplane recomputes an axis-directed through-all circular cut .........................   Passed    0.03 sec
        Start 478: Back-face workplane rejects holes outside side-face bounds
478/568 Test #478: Back-face workplane rejects holes outside side-face bounds .......................................   Passed    0.02 sec
        Start 479: Bolt circle pattern cuts the parametric hole count
479/568 Test #479: Bolt circle pattern cuts the parametric hole count ...............................................   Passed    0.08 sec
        Start 480: Changing the bolt count recomputes the bolt circle incrementally
480/568 Test #480: Changing the bolt count recomputes the bolt circle incrementally .................................   Passed    0.21 sec
        Start 481: Changing the bolt circle radius recomputes hole positions
481/568 Test #481: Changing the bolt circle radius recomputes hole positions ........................................   Passed    0.14 sec
        Start 482: Bolt circle pattern rejects holes outside the resolved bounds
482/568 Test #482: Bolt circle pattern rejects holes outside the resolved bounds ....................................   Passed    0.03 sec
        Start 483: WorkplaneResolver resolves construction planes parallel to planes through points
483/568 Test #483: WorkplaneResolver resolves construction planes parallel to planes through points .................   Passed    0.02 sec
        Start 484: CircularCutAdapter cuts a through-all hole and keeps a single solid
484/568 Test #484: CircularCutAdapter cuts a through-all hole and keeps a single solid ..............................   Passed    0.03 sec
        Start 485: CircularCutAdapter rejects an empty target shape
485/568 Test #485: CircularCutAdapter rejects an empty target shape .................................................   Passed    0.02 sec
        Start 486: Geometry recomputes an additive closed triangle profile
486/568 Test #486: Geometry recomputes an additive closed triangle profile ..........................................   Passed    0.02 sec
        Start 487: Geometry recomputes a subtractive through-all closed profile cut
487/568 Test #487: Geometry recomputes a subtractive through-all closed profile cut .................................   Passed    0.04 sec
        Start 488: Geometry recomputes additive extrude from composite closed profile with a hole
488/568 Test #488: Geometry recomputes additive extrude from composite closed profile with a hole ...................   Passed    0.03 sec
        Start 489: Geometry recomputes subtractive cut from composite closed profile with a hole
489/568 Test #489: Geometry recomputes subtractive cut from composite closed profile with a hole ....................   Passed    0.05 sec
        Start 490: Geometry recomputes a closed profile on an explicit construction plane
490/568 Test #490: Geometry recomputes a closed profile on an explicit construction plane ...........................   Passed    0.03 sec
        Start 491: Geometry recomputes a rectangle profile on an angled construction plane
491/568 Test #491: Geometry recomputes a rectangle profile on an angled construction plane ..........................   Passed    0.02 sec
        Start 492: Geometry recomputes a circular through-all cut on an angled construction plane
492/568 Test #492: Geometry recomputes a circular through-all cut on an angled construction plane ...................   Passed    0.04 sec
        Start 493: Geometry recomputes a closed profile on an offset construction plane relation
493/568 Test #493: Geometry recomputes a closed profile on an offset construction plane relation ....................   Passed    0.02 sec
        Start 494: WorkplaneResolver resolves explicit construction plane frames
494/568 Test #494: WorkplaneResolver resolves explicit construction plane frames ....................................   Passed    0.02 sec
        Start 495: WorkplaneResolver resolves offset construction plane relations
495/568 Test #495: WorkplaneResolver resolves offset construction plane relations ...................................   Passed    0.02 sec
        Start 496: WorkplaneResolver resolves construction planes through three points
496/568 Test #496: WorkplaneResolver resolves construction planes through three points ..............................   Passed    0.02 sec
        Start 497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane
497/568 Test #497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane ........................   Passed    0.03 sec
        Start 498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane
498/568 Test #498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane .....................   Passed    0.03 sec
        Start 499: Derived top-face workplane cut follows an off-center sketch point
499/568 Test #499: Derived top-face workplane cut follows an off-center sketch point ................................   Passed    0.03 sec
        Start 500: Derived top-face workplane accepts a near-edge hole inside the face bounds
500/568 Test #500: Derived top-face workplane accepts a near-edge hole inside the face bounds .......................   Passed    0.04 sec
        Start 501: Derived top-face workplane rejects holes outside the face bounds
501/568 Test #501: Derived top-face workplane rejects holes outside the face bounds .................................   Passed    0.02 sec
        Start 502: Incremental recompute follows derived-workplane dependency paths
502/568 Test #502: Incremental recompute follows derived-workplane dependency paths .................................   Passed    0.04 sec
        Start 503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base
503/568 Test #503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base .....   Passed    0.04 sec
        Start 504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices
504/568 Test #504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices ......................   Passed    0.02 sec
        Start 505: Geometry recomputes additive extrude from dimension-driven profile
505/568 Test #505: Geometry recomputes additive extrude from dimension-driven profile ...............................   Passed    0.02 sec
        Start 506: Front-face workplane recomputes an axis-directed through-all circular cut
506/568 Test #506: Front-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.03 sec
        Start 507: Front-face workplane rejects holes outside side-face bounds
507/568 Test #507: Front-face workplane rejects holes outside side-face bounds ......................................   Passed    0.02 sec
        Start 508: Left-face workplane recomputes an axis-directed through-all circular cut
508/568 Test #508: Left-face workplane recomputes an axis-directed through-all circular cut .........................   Passed    0.03 sec
        Start 509: Left-face workplane rejects holes outside side-face bounds
509/568 Test #509: Left-face workplane rejects holes outside side-face bounds .......................................   Passed    0.02 sec
        Start 510: A formula-driven length drives geometry recompute through the dependency graph
510/568 Test #510: A formula-driven length drives geometry recompute through the dependency graph ...................   Passed    0.03 sec
        Start 511: GeometryRecomputeExecutor executes an additive extrude into the shape cache
511/568 Test #511: GeometryRecomputeExecutor executes an additive extrude into the shape cache ......................   Passed    0.02 sec
        Start 512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan
512/568 Test #512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan ..................   Passed    0.02 sec
        Start 513: GeometryRecomputeExecutor rejects missing feature ids
513/568 Test #513: GeometryRecomputeExecutor rejects missing feature ids ............................................   Passed    0.03 sec
        Start 514: GeometryRecomputeExecutor rejects unsupported additive sketches
514/568 Test #514: GeometryRecomputeExecutor rejects unsupported additive sketches ..................................   Passed    0.02 sec
        Start 515: GeometryRecomputeExecutor cuts a central hole into a cached base body
515/568 Test #515: GeometryRecomputeExecutor cuts a central hole into a cached base body ............................   Passed    0.04 sec
        Start 516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan
516/568 Test #516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan .......................   Passed    0.04 sec
        Start 517: GeometryRecomputeExecutor requires the target body in the cache before cutting
517/568 Test #517: GeometryRecomputeExecutor requires the target body in the cache before cutting ...................   Passed    0.03 sec
        Start 518: GeometryRecomputeExecutor rejects unsupported subtractive sketches
518/568 Test #518: GeometryRecomputeExecutor rejects unsupported subtractive sketches ...............................   Passed    0.02 sec
        Start 519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths
519/568 Test #519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths ...........................   Passed    0.02 sec
        Start 520: GeometryShape defaults to an empty geometry handle
520/568 Test #520: GeometryShape defaults to an empty geometry handle ...............................................   Passed    0.02 sec
        Start 521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints
521/568 Test #521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints ..............   Passed    0.02 sec
        Start 522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points
522/568 Test #522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points .....   Passed    0.02 sec
        Start 523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices
523/568 Test #523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices ...................   Passed    0.02 sec
        Start 524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction
524/568 Test #524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction ....................   Passed    0.02 sec
        Start 525: Geometry recomputes additive extrude from reference-generated helper profile
525/568 Test #525: Geometry recomputes additive extrude from reference-generated helper profile .....................   Passed    0.02 sec
        Start 526: Geometry recomputes subtractive cut from reference-generated helper profile
526/568 Test #526: Geometry recomputes subtractive cut from reference-generated helper profile ......................   Passed    0.04 sec
        Start 527: MVP-1 reference part recomputes the whole document and exports a STEP file
527/568 Test #527: MVP-1 reference part recomputes the whole document and exports a STEP file .......................   Passed    0.04 sec
        Start 528: MVP-1 reference part recomputes a larger hole incrementally
528/568 Test #528: MVP-1 reference part recomputes a larger hole incrementally ......................................   Passed    0.04 sec
        Start 529: MVP-1 reference part can be restored from JSON and recomputed
529/568 Test #529: MVP-1 reference part can be restored from JSON and recomputed ....................................   Passed    0.04 sec
        Start 530: Right-face workplane recomputes an axis-directed through-all circular cut
530/568 Test #530: Right-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.04 sec
        Start 531: Right-face workplane rejects holes outside side-face bounds
531/568 Test #531: Right-face workplane rejects holes outside side-face bounds ......................................   Passed    0.03 sec
        Start 532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices
532/568 Test #532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices ..............   Passed    0.02 sec
        Start 533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints
533/568 Test #533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints ..........   Passed    0.02 sec
        Start 534: ConstructionLineResolver resolves deterministic chained construction lines
534/568 Test #534: ConstructionLineResolver resolves deterministic chained construction lines .......................   Passed    0.02 sec
        Start 535: ShapeCache starts empty with a stable id
535/568 Test #535: ShapeCache starts empty with a stable id .........................................................   Passed    0.02 sec
        Start 536: ShapeCache rejects empty cache ids
536/568 Test #536: ShapeCache rejects empty cache ids ...............................................................   Passed    0.02 sec
        Start 537: ShapeCache stores and finds feature shapes
537/568 Test #537: ShapeCache stores and finds feature shapes .......................................................   Passed    0.02 sec
        Start 538: ShapeCache updates existing feature shapes instead of duplicating them
538/568 Test #538: ShapeCache updates existing feature shapes instead of duplicating them ...........................   Passed    0.02 sec
        Start 539: ShapeCache tracks the final shape and source feature
539/568 Test #539: ShapeCache tracks the final shape and source feature .............................................   Passed    0.02 sec
        Start 540: ShapeCache removes cached feature shapes
540/568 Test #540: ShapeCache removes cached feature shapes .........................................................   Passed    0.02 sec
        Start 541: ShapeCache removes the final shape when its source feature is removed
541/568 Test #541: ShapeCache removes the final shape when its source feature is removed ............................   Passed    0.02 sec
        Start 542: ShapeCache remove reports false for missing feature shapes
542/568 Test #542: ShapeCache remove reports false for missing feature shapes .......................................   Passed    0.02 sec
        Start 543: ShapeCache clear removes cached feature and final shapes
543/568 Test #543: ShapeCache clear removes cached feature and final shapes .........................................   Passed    0.02 sec
        Start 544: ShapeCache rejects empty feature ids and empty shapes
544/568 Test #544: ShapeCache rejects empty feature ids and empty shapes ............................................   Passed    0.03 sec
        Start 545: SketchReferenceProjector projects semantic generated refs into sketch space
545/568 Test #545: SketchReferenceProjector projects semantic generated refs into sketch space ......................   Passed    0.02 sec
        Start 546: SketchReferenceProjector projects construction references into sketch space
546/568 Test #546: SketchReferenceProjector projects construction references into sketch space ......................   Passed    0.03 sec
        Start 547: SketchReferenceProjector rejects out-of-plane projected points
547/568 Test #547: SketchReferenceProjector rejects out-of-plane projected points ...................................   Passed    0.02 sec
        Start 548: SketchRegionFinder detects a deterministic single region from unordered explicit lines
548/568 Test #548: SketchRegionFinder detects a deterministic single region from unordered explicit lines ...........   Passed    0.02 sec
        Start 549: SketchRegionFinder rejects branched regions
549/568 Test #549: SketchRegionFinder rejects branched regions ......................................................   Passed    0.02 sec
        Start 550: Geometry recomputes additive extrude from detected sketch region
550/568 Test #550: Geometry recomputes additive extrude from detected sketch region .................................   Passed    0.02 sec
        Start 551: Geometry recomputes subtractive cut from detected sketch region
551/568 Test #551: Geometry recomputes subtractive cut from detected sketch region ..................................   Passed    0.04 sec
        Start 552: Geometry recomputes additive extrude from spline closed profile
552/568 Test #552: Geometry recomputes additive extrude from spline closed profile ..................................   Passed    0.03 sec
        Start 553: Geometry recomputes subtractive cut from spline closed profile
553/568 Test #553: Geometry recomputes subtractive cut from spline closed profile ...................................   Passed    0.07 sec
        Start 554: StepExporter writes a valid non-empty STEP file for a cut plate
554/568 Test #554: StepExporter writes a valid non-empty STEP file for a cut plate ..................................   Passed    0.04 sec
        Start 555: StepExporter rejects an empty shape
555/568 Test #555: StepExporter rejects an empty shape ..............................................................   Passed    0.02 sec
        Start 556: StepExporter rejects an empty path
556/568 Test #556: StepExporter rejects an empty path ...............................................................   Passed    0.03 sec
        Start 557: WorkplaneResolver resolves standard datum planes
557/568 Test #557: WorkplaneResolver resolves standard datum planes .................................................   Passed    0.02 sec
        Start 558: WorkplaneResolver resolves additive-extrude top-face workplanes
558/568 Test #558: WorkplaneResolver resolves additive-extrude top-face workplanes ..................................   Passed    0.02 sec
        Start 559: WorkplaneResolver resolves additive-extrude bottom-face workplanes
559/568 Test #559: WorkplaneResolver resolves additive-extrude bottom-face workplanes ...............................   Passed    0.02 sec
        Start 560: WorkplaneResolver resolves additive-extrude right-face workplanes
560/568 Test #560: WorkplaneResolver resolves additive-extrude right-face workplanes ................................   Passed    0.02 sec
        Start 561: WorkplaneResolver resolves additive-extrude left-face workplanes
561/568 Test #561: WorkplaneResolver resolves additive-extrude left-face workplanes .................................   Passed    0.02 sec
        Start 562: WorkplaneResolver resolves additive-extrude front-face workplanes
562/568 Test #562: WorkplaneResolver resolves additive-extrude front-face workplanes ................................   Passed    0.02 sec
        Start 563: WorkplaneResolver resolves additive-extrude back-face workplanes
563/568 Test #563: WorkplaneResolver resolves additive-extrude back-face workplanes .................................   Passed    0.03 sec
        Start 564: WorkplaneResolver maps side-face local sketch points through resolved frames
564/568 Test #564: WorkplaneResolver maps side-face local sketch points through resolved frames .....................   Passed    0.02 sec
        Start 565: WorkplaneResolver rejects missing workplanes
565/568 Test #565: WorkplaneResolver rejects missing workplanes .....................................................   Passed    0.02 sec
        Start 566: Generated-face sketch workplane origin follows source feature dimensions
566/568 Test #566: Generated-face sketch workplane origin follows source feature dimensions .........................   Passed    0.02 sec
        Start 567: Sketch origin override shifts the resolved sketch-local frame
567/568 Test #567: Sketch origin override shifts the resolved sketch-local frame ....................................   Passed    0.02 sec
        Start 568: Reference recovery evaluator reports missing generated source instead of remapping
568/568 Test #568: Reference recovery evaluator reports missing generated source instead of remapping ...............   Passed    0.02 sec

99% tests passed, 4 tests failed out of 568

Total Test time (real) =  10.50 sec

The following tests FAILED:
	336 - Generic relationship equations freeze Coincident capability semantics (Failed)
	337 - Generic direction equations support Line Axis and Plane capabilities (Failed)
	338 - Local generic relationships enter the shared solve freshness and rank paths (Failed)
	339 - Cross-hierarchy generic relationships reuse authorities solver application and diagnostics (Failed)
Errors while running CTest

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

434/568 Test #434: Revolute motion result application rejects stale component and joint inputs ......................   Passed    0.02 sec
        Start 435: Revolute motion holds other active joints at persisted coordinates
435/568 Test #435: Revolute motion holds other active joints at persisted coordinates ...............................   Passed    0.03 sec
        Start 436: Sampled root-local Revolute sweep classifies contact at deterministic inclusive coordinates
436/568 Test #436: Sampled root-local Revolute sweep classifies contact at deterministic inclusive coordinates ......   Passed    0.07 sec
        Start 437: Sampled Revolute sweep preserves caller interval direction
437/568 Test #437: Sampled Revolute sweep preserves caller interval direction .......................................   Passed    0.07 sec
        Start 438: Sampled cross-hierarchy Revolute sweep reuses atomic cross motion on fresh Project copies
438/568 Test #438: Sampled cross-hierarchy Revolute sweep reuses atomic cross motion on fresh Project copies ........   Passed    0.07 sec
        Start 439: Sampled Revolute sweep validates units bounds sample count and selected scope
439/568 Test #439: Sampled Revolute sweep validates units bounds sample count and selected scope ....................   Passed    0.02 sec
        Start 440: Sampled Revolute sweep fails closed with sample context when contact analysis fails
440/568 Test #440: Sampled Revolute sweep fails closed with sample context when contact analysis fails ..............   Passed    0.02 sec
        Start 441: Rigid-body solver solves and explicitly applies one movable planar Mate
441/568 Test #441: Rigid-body solver solves and explicitly applies one movable planar Mate ..........................   Passed    0.02 sec
        Start 442: Rigid-body solver corrects planar Distance translation and orientation
442/568 Test #442: Rigid-body solver corrects planar Distance translation and orientation ...........................   Passed    0.02 sec
        Start 443: Rigid-body solver uses deterministic constraint and variable ordering for a chain
443/568 Test #443: Rigid-body solver uses deterministic constraint and variable ordering for a chain ................   Passed    0.03 sec
        Start 444: Rigid-body solver defines grounded, suppressed, and connected-group participation
444/568 Test #444: Rigid-body solver defines grounded, suppressed, and connected-group participation ................   Passed    0.02 sec
        Start 445: Rigid-body solver exposes validation and semantic target failures
445/568 Test #445: Rigid-body solver exposes validation and semantic target failures ................................   Passed    0.02 sec
        Start 446: Non-converged and stale solve results cannot mutate project placement
446/568 Test #446: Non-converged and stale solve results cannot mutate project placement ............................   Passed    0.02 sec
        Start 447: Assembly solve diagnostics report local remaining DOF for planar constraints
447/568 Test #447: Assembly solve diagnostics report local remaining DOF for planar constraints .....................   Passed    0.02 sec
        Start 448: Assembly solve diagnostics identify locally full rank and deterministic chains
448/568 Test #448: Assembly solve diagnostics identify locally full rank and deterministic chains ...................   Passed    0.03 sec
        Start 449: Assembly solve diagnostics preserve fixed and non-converged solve states
449/568 Test #449: Assembly solve diagnostics preserve fixed and non-converged solve states .........................   Passed    0.02 sec
        Start 450: Assembly solve diagnostics expose rank tolerance and residual redundancy boundaries
450/568 Test #450: Assembly solve diagnostics expose rank tolerance and residual redundancy boundaries ..............   Passed    0.02 sec
        Start 451: Assembly solve diagnostics preserve semantic target failures and enum labels
451/568 Test #451: Assembly solve diagnostics preserve semantic target failures and enum labels .....................   Passed    0.02 sec
        Start 452: AssemblyStepExporter poses repeated part instances and preserves repeat-export geometry
452/568 Test #452: AssemblyStepExporter poses repeated part instances and preserves repeat-export geometry ..........   Passed    0.04 sec
        Start 453: AssemblyStepExporter excludes hidden and suppressed component occurrences
453/568 Test #453: AssemblyStepExporter excludes hidden and suppressed component occurrences ........................   Passed    0.03 sec
        Start 454: AssemblyStepExporter fails closed on an unresolvable project member
454/568 Test #454: AssemblyStepExporter fails closed on an unresolvable project member ..............................   Passed    0.02 sec
        Start 455: AssemblyStepExporter fails when a referenced part recomputes without a final shape
455/568 Test #455: AssemblyStepExporter fails when a referenced part recomputes without a final shape ...............   Passed    0.02 sec
        Start 456: Structured STEP reuses one part definition for repeated root components
456/568 Test #456: Structured STEP reuses one part definition for repeated root components ..........................   Passed    0.04 sec
        Start 457: Structured STEP preserves repeated child and nested assembly occurrence products
457/568 Test #457: Structured STEP preserves repeated child and nested assembly occurrence products .................   Passed    0.05 sec
        Start 458: Structured STEP mirrors visible-active component and hierarchy filtering
458/568 Test #458: Structured STEP mirrors visible-active component and hierarchy filtering .........................   Passed    0.02 sec
        Start 459: Structured STEP fails closed without an output path or exported component
459/568 Test #459: Structured STEP fails closed without an output path or exported component ........................   Passed    0.02 sec
        Start 460: A suppressed middle component splits the numeric system deterministically
460/568 Test #460: A suppressed middle component splits the numeric system deterministically ........................   Passed    0.02 sec
        Start 461: A suppressed grounded component keeps the remaining subgroup solvable
461/568 Test #461: A suppressed grounded component keeps the remaining subgroup solvable ............................   Passed    0.02 sec
        Start 462: A subgroup without a grounded active component is still rejected
462/568 Test #462: A subgroup without a grounded active component is still rejected .................................   Passed    0.02 sec
        Start 463: Unsuppressing a component after solving makes the result stale
463/568 Test #463: Unsuppressing a component after solving makes the result stale ...................................   Passed    0.02 sec
        Start 464: Suppression diagnostics report rank only over active components
464/568 Test #464: Suppression diagnostics report rank only over active components ..................................   Passed    0.02 sec
        Start 465: Assembly target compatibility resolver covers the supported relationship matrix
465/568 Test #465: Assembly target compatibility resolver covers the supported relationship matrix ..................   Passed    0.02 sec
        Start 466: Assembly target compatibility resolver fails closed for incompatible pairs
466/568 Test #466: Assembly target compatibility resolver fails closed for incompatible pairs .......................   Passed    0.02 sec
        Start 467: Assembly target compatibility resolver is deterministic for multi-capability targets
467/568 Test #467: Assembly target compatibility resolver is deterministic for multi-capability targets .............   Passed    0.02 sec
        Start 468: Assembly target compatibility resolves current local target families without mutation
468/568 Test #468: Assembly target compatibility resolves current local target families without mutation ............   Passed    0.02 sec
        Start 469: Assembly equation builders consume compatibility before projection
469/568 Test #469: Assembly equation builders consume compatibility before projection ...............................   Passed    0.02 sec
        Start 470: Local and cross-hierarchy target compatibility agree for the same semantic families
470/568 Test #470: Local and cross-hierarchy target compatibility agree for the same semantic families ..............   Passed    0.02 sec
        Start 471: Cross-hierarchy equation builder consumes target compatibility
471/568 Test #471: Cross-hierarchy equation builder consumes target compatibility ...................................   Passed    0.02 sec
        Start 472: Assembly transform evaluator preserves identity and applies translation only to points
472/568 Test #472: Assembly transform evaluator preserves identity and applies translation only to points ...........   Passed    0.02 sec
        Start 473: Assembly transform evaluator applies right-handed single-axis rotations
473/568 Test #473: Assembly transform evaluator applies right-handed single-axis rotations ..........................   Passed    0.02 sec
        Start 474: Assembly transform evaluator proves X then Y then Z rotation order
474/568 Test #474: Assembly transform evaluator proves X then Y then Z rotation order ...............................   Passed    0.02 sec
        Start 475: Assembly transform evaluator maps a resolved target plane into assembly space
475/568 Test #475: Assembly transform evaluator maps a resolved target plane into assembly space ....................   Passed    0.02 sec
        Start 476: Assembly transform evaluation is deterministic, length-preserving, and read-only
476/568 Test #476: Assembly transform evaluation is deterministic, length-preserving, and read-only .................   Passed    0.02 sec
        Start 477: Back-face workplane recomputes an axis-directed through-all circular cut
477/568 Test #477: Back-face workplane recomputes an axis-directed through-all circular cut .........................   Passed    0.02 sec
        Start 478: Back-face workplane rejects holes outside side-face bounds
478/568 Test #478: Back-face workplane rejects holes outside side-face bounds .......................................   Passed    0.02 sec
        Start 479: Bolt circle pattern cuts the parametric hole count
479/568 Test #479: Bolt circle pattern cuts the parametric hole count ...............................................   Passed    0.06 sec
        Start 480: Changing the bolt count recomputes the bolt circle incrementally
480/568 Test #480: Changing the bolt count recomputes the bolt circle incrementally .................................   Passed    0.16 sec
        Start 481: Changing the bolt circle radius recomputes hole positions
481/568 Test #481: Changing the bolt circle radius recomputes hole positions ........................................   Passed    0.11 sec
        Start 482: Bolt circle pattern rejects holes outside the resolved bounds
482/568 Test #482: Bolt circle pattern rejects holes outside the resolved bounds ....................................   Passed    0.03 sec
        Start 483: WorkplaneResolver resolves construction planes parallel to planes through points
483/568 Test #483: WorkplaneResolver resolves construction planes parallel to planes through points .................   Passed    0.02 sec
        Start 484: CircularCutAdapter cuts a through-all hole and keeps a single solid
484/568 Test #484: CircularCutAdapter cuts a through-all hole and keeps a single solid ..............................   Passed    0.02 sec
        Start 485: CircularCutAdapter rejects an empty target shape
485/568 Test #485: CircularCutAdapter rejects an empty target shape .................................................   Passed    0.02 sec
        Start 486: Geometry recomputes an additive closed triangle profile
486/568 Test #486: Geometry recomputes an additive closed triangle profile ..........................................   Passed    0.02 sec
        Start 487: Geometry recomputes a subtractive through-all closed profile cut
487/568 Test #487: Geometry recomputes a subtractive through-all closed profile cut .................................   Passed    0.03 sec
        Start 488: Geometry recomputes additive extrude from composite closed profile with a hole
488/568 Test #488: Geometry recomputes additive extrude from composite closed profile with a hole ...................   Passed    0.02 sec
        Start 489: Geometry recomputes subtractive cut from composite closed profile with a hole
489/568 Test #489: Geometry recomputes subtractive cut from composite closed profile with a hole ....................   Passed    0.03 sec
        Start 490: Geometry recomputes a closed profile on an explicit construction plane
490/568 Test #490: Geometry recomputes a closed profile on an explicit construction plane ...........................   Passed    0.02 sec
        Start 491: Geometry recomputes a rectangle profile on an angled construction plane
491/568 Test #491: Geometry recomputes a rectangle profile on an angled construction plane ..........................   Passed    0.02 sec
        Start 492: Geometry recomputes a circular through-all cut on an angled construction plane
492/568 Test #492: Geometry recomputes a circular through-all cut on an angled construction plane ...................   Passed    0.03 sec
        Start 493: Geometry recomputes a closed profile on an offset construction plane relation
493/568 Test #493: Geometry recomputes a closed profile on an offset construction plane relation ....................   Passed    0.02 sec
        Start 494: WorkplaneResolver resolves explicit construction plane frames
494/568 Test #494: WorkplaneResolver resolves explicit construction plane frames ....................................   Passed    0.02 sec
        Start 495: WorkplaneResolver resolves offset construction plane relations
495/568 Test #495: WorkplaneResolver resolves offset construction plane relations ...................................   Passed    0.02 sec
        Start 496: WorkplaneResolver resolves construction planes through three points
496/568 Test #496: WorkplaneResolver resolves construction planes through three points ..............................   Passed    0.02 sec
        Start 497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane
497/568 Test #497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane ........................   Passed    0.02 sec
        Start 498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane
498/568 Test #498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane .....................   Passed    0.03 sec
        Start 499: Derived top-face workplane cut follows an off-center sketch point
499/568 Test #499: Derived top-face workplane cut follows an off-center sketch point ................................   Passed    0.03 sec
        Start 500: Derived top-face workplane accepts a near-edge hole inside the face bounds
500/568 Test #500: Derived top-face workplane accepts a near-edge hole inside the face bounds .......................   Passed    0.03 sec
        Start 501: Derived top-face workplane rejects holes outside the face bounds
501/568 Test #501: Derived top-face workplane rejects holes outside the face bounds .................................   Passed    0.02 sec
        Start 502: Incremental recompute follows derived-workplane dependency paths
502/568 Test #502: Incremental recompute follows derived-workplane dependency paths .................................   Passed    0.03 sec
        Start 503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base
503/568 Test #503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base .....   Passed    0.03 sec
        Start 504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices
504/568 Test #504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices ......................   Passed    0.02 sec
        Start 505: Geometry recomputes additive extrude from dimension-driven profile
505/568 Test #505: Geometry recomputes additive extrude from dimension-driven profile ...............................   Passed    0.02 sec
        Start 506: Front-face workplane recomputes an axis-directed through-all circular cut
506/568 Test #506: Front-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.02 sec
        Start 507: Front-face workplane rejects holes outside side-face bounds
507/568 Test #507: Front-face workplane rejects holes outside side-face bounds ......................................   Passed    0.02 sec
        Start 508: Left-face workplane recomputes an axis-directed through-all circular cut
508/568 Test #508: Left-face workplane recomputes an axis-directed through-all circular cut .........................   Passed    0.02 sec
        Start 509: Left-face workplane rejects holes outside side-face bounds
509/568 Test #509: Left-face workplane rejects holes outside side-face bounds .......................................   Passed    0.02 sec
        Start 510: A formula-driven length drives geometry recompute through the dependency graph
510/568 Test #510: A formula-driven length drives geometry recompute through the dependency graph ...................   Passed    0.02 sec
        Start 511: GeometryRecomputeExecutor executes an additive extrude into the shape cache
511/568 Test #511: GeometryRecomputeExecutor executes an additive extrude into the shape cache ......................   Passed    0.02 sec
        Start 512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan
512/568 Test #512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan ..................   Passed    0.02 sec
        Start 513: GeometryRecomputeExecutor rejects missing feature ids
513/568 Test #513: GeometryRecomputeExecutor rejects missing feature ids ............................................   Passed    0.02 sec
        Start 514: GeometryRecomputeExecutor rejects unsupported additive sketches
514/568 Test #514: GeometryRecomputeExecutor rejects unsupported additive sketches ..................................   Passed    0.02 sec
        Start 515: GeometryRecomputeExecutor cuts a central hole into a cached base body
515/568 Test #515: GeometryRecomputeExecutor cuts a central hole into a cached base body ............................   Passed    0.02 sec
        Start 516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan
516/568 Test #516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan .......................   Passed    0.02 sec
        Start 517: GeometryRecomputeExecutor requires the target body in the cache before cutting
517/568 Test #517: GeometryRecomputeExecutor requires the target body in the cache before cutting ...................   Passed    0.02 sec
        Start 518: GeometryRecomputeExecutor rejects unsupported subtractive sketches
518/568 Test #518: GeometryRecomputeExecutor rejects unsupported subtractive sketches ...............................   Passed    0.02 sec
        Start 519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths
519/568 Test #519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths ...........................   Passed    0.02 sec
        Start 520: GeometryShape defaults to an empty geometry handle
520/568 Test #520: GeometryShape defaults to an empty geometry handle ...............................................   Passed    0.02 sec
        Start 521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints
521/568 Test #521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints ..............   Passed    0.02 sec
        Start 522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points
522/568 Test #522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points .....   Passed    0.02 sec
        Start 523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices
523/568 Test #523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices ...................   Passed    0.02 sec
        Start 524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction
524/568 Test #524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction ....................   Passed    0.02 sec
        Start 525: Geometry recomputes additive extrude from reference-generated helper profile
525/568 Test #525: Geometry recomputes additive extrude from reference-generated helper profile .....................   Passed    0.02 sec
        Start 526: Geometry recomputes subtractive cut from reference-generated helper profile
526/568 Test #526: Geometry recomputes subtractive cut from reference-generated helper profile ......................   Passed    0.03 sec
        Start 527: MVP-1 reference part recomputes the whole document and exports a STEP file
527/568 Test #527: MVP-1 reference part recomputes the whole document and exports a STEP file .......................   Passed    0.03 sec
        Start 528: MVP-1 reference part recomputes a larger hole incrementally
528/568 Test #528: MVP-1 reference part recomputes a larger hole incrementally ......................................   Passed    0.03 sec
        Start 529: MVP-1 reference part can be restored from JSON and recomputed
529/568 Test #529: MVP-1 reference part can be restored from JSON and recomputed ....................................   Passed    0.03 sec
        Start 530: Right-face workplane recomputes an axis-directed through-all circular cut
530/568 Test #530: Right-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.03 sec
        Start 531: Right-face workplane rejects holes outside side-face bounds
531/568 Test #531: Right-face workplane rejects holes outside side-face bounds ......................................   Passed    0.02 sec
        Start 532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices
532/568 Test #532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices ..............   Passed    0.02 sec
        Start 533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints
533/568 Test #533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints ..........   Passed    0.02 sec
        Start 534: ConstructionLineResolver resolves deterministic chained construction lines
534/568 Test #534: ConstructionLineResolver resolves deterministic chained construction lines .......................   Passed    0.02 sec
        Start 535: ShapeCache starts empty with a stable id
535/568 Test #535: ShapeCache starts empty with a stable id .........................................................   Passed    0.02 sec
        Start 536: ShapeCache rejects empty cache ids
536/568 Test #536: ShapeCache rejects empty cache ids ...............................................................   Passed    0.02 sec
        Start 537: ShapeCache stores and finds feature shapes
537/568 Test #537: ShapeCache stores and finds feature shapes .......................................................   Passed    0.02 sec
        Start 538: ShapeCache updates existing feature shapes instead of duplicating them
538/568 Test #538: ShapeCache updates existing feature shapes instead of duplicating them ...........................   Passed    0.02 sec
        Start 539: ShapeCache tracks the final shape and source feature
539/568 Test #539: ShapeCache tracks the final shape and source feature .............................................   Passed    0.02 sec
        Start 540: ShapeCache removes cached feature shapes
540/568 Test #540: ShapeCache removes cached feature shapes .........................................................   Passed    0.02 sec
        Start 541: ShapeCache removes the final shape when its source feature is removed
541/568 Test #541: ShapeCache removes the final shape when its source feature is removed ............................   Passed    0.02 sec
        Start 542: ShapeCache remove reports false for missing feature shapes
542/568 Test #542: ShapeCache remove reports false for missing feature shapes .......................................   Passed    0.02 sec
        Start 543: ShapeCache clear removes cached feature and final shapes
543/568 Test #543: ShapeCache clear removes cached feature and final shapes .........................................   Passed    0.02 sec
        Start 544: ShapeCache rejects empty feature ids and empty shapes
544/568 Test #544: ShapeCache rejects empty feature ids and empty shapes ............................................   Passed    0.02 sec
        Start 545: SketchReferenceProjector projects semantic generated refs into sketch space
545/568 Test #545: SketchReferenceProjector projects semantic generated refs into sketch space ......................   Passed    0.02 sec
        Start 546: SketchReferenceProjector projects construction references into sketch space
546/568 Test #546: SketchReferenceProjector projects construction references into sketch space ......................   Passed    0.02 sec
        Start 547: SketchReferenceProjector rejects out-of-plane projected points
547/568 Test #547: SketchReferenceProjector rejects out-of-plane projected points ...................................   Passed    0.02 sec
        Start 548: SketchRegionFinder detects a deterministic single region from unordered explicit lines
548/568 Test #548: SketchRegionFinder detects a deterministic single region from unordered explicit lines ...........   Passed    0.02 sec
        Start 549: SketchRegionFinder rejects branched regions
549/568 Test #549: SketchRegionFinder rejects branched regions ......................................................   Passed    0.02 sec
        Start 550: Geometry recomputes additive extrude from detected sketch region
550/568 Test #550: Geometry recomputes additive extrude from detected sketch region .................................   Passed    0.02 sec
        Start 551: Geometry recomputes subtractive cut from detected sketch region
551/568 Test #551: Geometry recomputes subtractive cut from detected sketch region ..................................   Passed    0.03 sec
        Start 552: Geometry recomputes additive extrude from spline closed profile
552/568 Test #552: Geometry recomputes additive extrude from spline closed profile ..................................   Passed    0.02 sec
        Start 553: Geometry recomputes subtractive cut from spline closed profile
553/568 Test #553: Geometry recomputes subtractive cut from spline closed profile ...................................   Passed    0.05 sec
        Start 554: StepExporter writes a valid non-empty STEP file for a cut plate
554/568 Test #554: StepExporter writes a valid non-empty STEP file for a cut plate ..................................   Passed    0.03 sec
        Start 555: StepExporter rejects an empty shape
555/568 Test #555: StepExporter rejects an empty shape ..............................................................   Passed    0.02 sec
        Start 556: StepExporter rejects an empty path
556/568 Test #556: StepExporter rejects an empty path ...............................................................   Passed    0.02 sec
        Start 557: WorkplaneResolver resolves standard datum planes
557/568 Test #557: WorkplaneResolver resolves standard datum planes .................................................   Passed    0.02 sec
        Start 558: WorkplaneResolver resolves additive-extrude top-face workplanes
558/568 Test #558: WorkplaneResolver resolves additive-extrude top-face workplanes ..................................   Passed    0.02 sec
        Start 559: WorkplaneResolver resolves additive-extrude bottom-face workplanes
559/568 Test #559: WorkplaneResolver resolves additive-extrude bottom-face workplanes ...............................   Passed    0.02 sec
        Start 560: WorkplaneResolver resolves additive-extrude right-face workplanes
560/568 Test #560: WorkplaneResolver resolves additive-extrude right-face workplanes ................................   Passed    0.02 sec
        Start 561: WorkplaneResolver resolves additive-extrude left-face workplanes
561/568 Test #561: WorkplaneResolver resolves additive-extrude left-face workplanes .................................   Passed    0.02 sec
        Start 562: WorkplaneResolver resolves additive-extrude front-face workplanes
562/568 Test #562: WorkplaneResolver resolves additive-extrude front-face workplanes ................................   Passed    0.02 sec
        Start 563: WorkplaneResolver resolves additive-extrude back-face workplanes
563/568 Test #563: WorkplaneResolver resolves additive-extrude back-face workplanes .................................   Passed    0.02 sec
        Start 564: WorkplaneResolver maps side-face local sketch points through resolved frames
564/568 Test #564: WorkplaneResolver maps side-face local sketch points through resolved frames .....................   Passed    0.02 sec
        Start 565: WorkplaneResolver rejects missing workplanes
565/568 Test #565: WorkplaneResolver rejects missing workplanes .....................................................   Passed    0.02 sec
        Start 566: Generated-face sketch workplane origin follows source feature dimensions
566/568 Test #566: Generated-face sketch workplane origin follows source feature dimensions .........................   Passed    0.02 sec
        Start 567: Sketch origin override shifts the resolved sketch-local frame
567/568 Test #567: Sketch origin override shifts the resolved sketch-local frame ....................................   Passed    0.02 sec
        Start 568: Reference recovery evaluator reports missing generated source instead of remapping
568/568 Test #568: Reference recovery evaluator reports missing generated source instead of remapping ...............   Passed    0.02 sec

99% tests passed, 4 tests failed out of 568

Total Test time (real) =   7.52 sec

The following tests FAILED:
	336 - Generic relationship equations freeze Coincident capability semantics (Failed)
	337 - Generic direction equations support Line Axis and Plane capabilities (Failed)
	338 - Local generic relationships enter the shared solve freshness and rank paths (Failed)
	339 - Cross-hierarchy generic relationships reuse authorities solver application and diagnostics (Failed)
Errors while running CTest

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

488/568 Test #488: Geometry recomputes additive extrude from composite closed profile with a hole ...................   Passed    0.02 sec
        Start 489: Geometry recomputes subtractive cut from composite closed profile with a hole
489/568 Test #489: Geometry recomputes subtractive cut from composite closed profile with a hole ....................   Passed    0.05 sec
        Start 490: Geometry recomputes a closed profile on an explicit construction plane
490/568 Test #490: Geometry recomputes a closed profile on an explicit construction plane ...........................   Passed    0.02 sec
        Start 491: Geometry recomputes a rectangle profile on an angled construction plane
491/568 Test #491: Geometry recomputes a rectangle profile on an angled construction plane ..........................   Passed    0.02 sec
        Start 492: Geometry recomputes a circular through-all cut on an angled construction plane
492/568 Test #492: Geometry recomputes a circular through-all cut on an angled construction plane ...................   Passed    0.04 sec
        Start 493: Geometry recomputes a closed profile on an offset construction plane relation
493/568 Test #493: Geometry recomputes a closed profile on an offset construction plane relation ....................   Passed    0.02 sec
        Start 494: WorkplaneResolver resolves explicit construction plane frames
494/568 Test #494: WorkplaneResolver resolves explicit construction plane frames ....................................   Passed    0.02 sec
        Start 495: WorkplaneResolver resolves offset construction plane relations
495/568 Test #495: WorkplaneResolver resolves offset construction plane relations ...................................   Passed    0.02 sec
        Start 496: WorkplaneResolver resolves construction planes through three points
496/568 Test #496: WorkplaneResolver resolves construction planes through three points ..............................   Passed    0.02 sec
        Start 497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane
497/568 Test #497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane ........................   Passed    0.03 sec
        Start 498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane
498/568 Test #498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane .....................   Passed    0.03 sec
        Start 499: Derived top-face workplane cut follows an off-center sketch point
499/568 Test #499: Derived top-face workplane cut follows an off-center sketch point ................................   Passed    0.03 sec
        Start 500: Derived top-face workplane accepts a near-edge hole inside the face bounds
500/568 Test #500: Derived top-face workplane accepts a near-edge hole inside the face bounds .......................   Passed    0.04 sec
        Start 501: Derived top-face workplane rejects holes outside the face bounds
501/568 Test #501: Derived top-face workplane rejects holes outside the face bounds .................................   Passed    0.02 sec
        Start 502: Incremental recompute follows derived-workplane dependency paths
502/568 Test #502: Incremental recompute follows derived-workplane dependency paths .................................   Passed    0.04 sec
        Start 503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base
503/568 Test #503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base .....   Passed    0.04 sec
        Start 504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices
504/568 Test #504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices ......................   Passed    0.02 sec
        Start 505: Geometry recomputes additive extrude from dimension-driven profile
505/568 Test #505: Geometry recomputes additive extrude from dimension-driven profile ...............................   Passed    0.02 sec
        Start 506: Front-face workplane recomputes an axis-directed through-all circular cut
506/568 Test #506: Front-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.03 sec
        Start 507: Front-face workplane rejects holes outside side-face bounds
507/568 Test #507: Front-face workplane rejects holes outside side-face bounds ......................................   Passed    0.03 sec
        Start 508: Left-face workplane recomputes an axis-directed through-all circular cut
508/568 Test #508: Left-face workplane recomputes an axis-directed through-all circular cut .........................   Passed    0.03 sec
        Start 509: Left-face workplane rejects holes outside side-face bounds
509/568 Test #509: Left-face workplane rejects holes outside side-face bounds .......................................   Passed    0.02 sec
        Start 510: A formula-driven length drives geometry recompute through the dependency graph
510/568 Test #510: A formula-driven length drives geometry recompute through the dependency graph ...................   Passed    0.02 sec
        Start 511: GeometryRecomputeExecutor executes an additive extrude into the shape cache
511/568 Test #511: GeometryRecomputeExecutor executes an additive extrude into the shape cache ......................   Passed    0.02 sec
        Start 512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan
512/568 Test #512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan ..................   Passed    0.02 sec
        Start 513: GeometryRecomputeExecutor rejects missing feature ids
513/568 Test #513: GeometryRecomputeExecutor rejects missing feature ids ............................................   Passed    0.02 sec
        Start 514: GeometryRecomputeExecutor rejects unsupported additive sketches
514/568 Test #514: GeometryRecomputeExecutor rejects unsupported additive sketches ..................................   Passed    0.02 sec
        Start 515: GeometryRecomputeExecutor cuts a central hole into a cached base body
515/568 Test #515: GeometryRecomputeExecutor cuts a central hole into a cached base body ............................   Passed    0.03 sec
        Start 516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan
516/568 Test #516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan .......................   Passed    0.03 sec
        Start 517: GeometryRecomputeExecutor requires the target body in the cache before cutting
517/568 Test #517: GeometryRecomputeExecutor requires the target body in the cache before cutting ...................   Passed    0.02 sec
        Start 518: GeometryRecomputeExecutor rejects unsupported subtractive sketches
518/568 Test #518: GeometryRecomputeExecutor rejects unsupported subtractive sketches ...............................   Passed    0.02 sec
        Start 519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths
519/568 Test #519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths ...........................   Passed    0.02 sec
        Start 520: GeometryShape defaults to an empty geometry handle
520/568 Test #520: GeometryShape defaults to an empty geometry handle ...............................................   Passed    0.02 sec
        Start 521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints
521/568 Test #521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints ..............   Passed    0.02 sec
        Start 522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points
522/568 Test #522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points .....   Passed    0.02 sec
        Start 523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices
523/568 Test #523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices ...................   Passed    0.02 sec
        Start 524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction
524/568 Test #524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction ....................   Passed    0.02 sec
        Start 525: Geometry recomputes additive extrude from reference-generated helper profile
525/568 Test #525: Geometry recomputes additive extrude from reference-generated helper profile .....................   Passed    0.02 sec
        Start 526: Geometry recomputes subtractive cut from reference-generated helper profile
526/568 Test #526: Geometry recomputes subtractive cut from reference-generated helper profile ......................   Passed    0.04 sec
        Start 527: MVP-1 reference part recomputes the whole document and exports a STEP file
527/568 Test #527: MVP-1 reference part recomputes the whole document and exports a STEP file .......................   Passed    0.04 sec
        Start 528: MVP-1 reference part recomputes a larger hole incrementally
528/568 Test #528: MVP-1 reference part recomputes a larger hole incrementally ......................................   Passed    0.04 sec
        Start 529: MVP-1 reference part can be restored from JSON and recomputed
529/568 Test #529: MVP-1 reference part can be restored from JSON and recomputed ....................................   Passed    0.04 sec
        Start 530: Right-face workplane recomputes an axis-directed through-all circular cut
530/568 Test #530: Right-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.03 sec
        Start 531: Right-face workplane rejects holes outside side-face bounds
531/568 Test #531: Right-face workplane rejects holes outside side-face bounds ......................................   Passed    0.02 sec
        Start 532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices
532/568 Test #532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices ..............   Passed    0.02 sec
        Start 533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints
533/568 Test #533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints ..........   Passed    0.02 sec
        Start 534: ConstructionLineResolver resolves deterministic chained construction lines
534/568 Test #534: ConstructionLineResolver resolves deterministic chained construction lines .......................   Passed    0.02 sec
        Start 535: ShapeCache starts empty with a stable id
535/568 Test #535: ShapeCache starts empty with a stable id .........................................................   Passed    0.02 sec
        Start 536: ShapeCache rejects empty cache ids
536/568 Test #536: ShapeCache rejects empty cache ids ...............................................................   Passed    0.02 sec
        Start 537: ShapeCache stores and finds feature shapes
537/568 Test #537: ShapeCache stores and finds feature shapes .......................................................   Passed    0.02 sec
        Start 538: ShapeCache updates existing feature shapes instead of duplicating them
538/568 Test #538: ShapeCache updates existing feature shapes instead of duplicating them ...........................   Passed    0.02 sec
        Start 539: ShapeCache tracks the final shape and source feature
539/568 Test #539: ShapeCache tracks the final shape and source feature .............................................   Passed    0.02 sec
        Start 540: ShapeCache removes cached feature shapes
540/568 Test #540: ShapeCache removes cached feature shapes .........................................................   Passed    0.02 sec
        Start 541: ShapeCache removes the final shape when its source feature is removed
541/568 Test #541: ShapeCache removes the final shape when its source feature is removed ............................   Passed    0.02 sec
        Start 542: ShapeCache remove reports false for missing feature shapes
542/568 Test #542: ShapeCache remove reports false for missing feature shapes .......................................   Passed    0.02 sec
        Start 543: ShapeCache clear removes cached feature and final shapes
543/568 Test #543: ShapeCache clear removes cached feature and final shapes .........................................   Passed    0.02 sec
        Start 544: ShapeCache rejects empty feature ids and empty shapes
544/568 Test #544: ShapeCache rejects empty feature ids and empty shapes ............................................   Passed    0.02 sec
        Start 545: SketchReferenceProjector projects semantic generated refs into sketch space
545/568 Test #545: SketchReferenceProjector projects semantic generated refs into sketch space ......................   Passed    0.02 sec
        Start 546: SketchReferenceProjector projects construction references into sketch space
546/568 Test #546: SketchReferenceProjector projects construction references into sketch space ......................   Passed    0.02 sec
        Start 547: SketchReferenceProjector rejects out-of-plane projected points
547/568 Test #547: SketchReferenceProjector rejects out-of-plane projected points ...................................   Passed    0.02 sec
        Start 548: SketchRegionFinder detects a deterministic single region from unordered explicit lines
548/568 Test #548: SketchRegionFinder detects a deterministic single region from unordered explicit lines ...........   Passed    0.02 sec
        Start 549: SketchRegionFinder rejects branched regions
549/568 Test #549: SketchRegionFinder rejects branched regions ......................................................   Passed    0.02 sec
        Start 550: Geometry recomputes additive extrude from detected sketch region
550/568 Test #550: Geometry recomputes additive extrude from detected sketch region .................................   Passed    0.02 sec
        Start 551: Geometry recomputes subtractive cut from detected sketch region
551/568 Test #551: Geometry recomputes subtractive cut from detected sketch region ..................................   Passed    0.04 sec
        Start 552: Geometry recomputes additive extrude from spline closed profile
552/568 Test #552: Geometry recomputes additive extrude from spline closed profile ..................................   Passed    0.02 sec
        Start 553: Geometry recomputes subtractive cut from spline closed profile
553/568 Test #553: Geometry recomputes subtractive cut from spline closed profile ...................................   Passed    0.07 sec
        Start 554: StepExporter writes a valid non-empty STEP file for a cut plate
554/568 Test #554: StepExporter writes a valid non-empty STEP file for a cut plate ..................................   Passed    0.04 sec
        Start 555: StepExporter rejects an empty shape
555/568 Test #555: StepExporter rejects an empty shape ..............................................................   Passed    0.02 sec
        Start 556: StepExporter rejects an empty path
556/568 Test #556: StepExporter rejects an empty path ...............................................................   Passed    0.03 sec
        Start 557: WorkplaneResolver resolves standard datum planes
557/568 Test #557: WorkplaneResolver resolves standard datum planes .................................................   Passed    0.02 sec
        Start 558: WorkplaneResolver resolves additive-extrude top-face workplanes
558/568 Test #558: WorkplaneResolver resolves additive-extrude top-face workplanes ..................................   Passed    0.02 sec
        Start 559: WorkplaneResolver resolves additive-extrude bottom-face workplanes
559/568 Test #559: WorkplaneResolver resolves additive-extrude bottom-face workplanes ...............................   Passed    0.02 sec
        Start 560: WorkplaneResolver resolves additive-extrude right-face workplanes
560/568 Test #560: WorkplaneResolver resolves additive-extrude right-face workplanes ................................   Passed    0.02 sec
        Start 561: WorkplaneResolver resolves additive-extrude left-face workplanes
561/568 Test #561: WorkplaneResolver resolves additive-extrude left-face workplanes .................................   Passed    0.02 sec
        Start 562: WorkplaneResolver resolves additive-extrude front-face workplanes
562/568 Test #562: WorkplaneResolver resolves additive-extrude front-face workplanes ................................   Passed    0.02 sec
        Start 563: WorkplaneResolver resolves additive-extrude back-face workplanes
563/568 Test #563: WorkplaneResolver resolves additive-extrude back-face workplanes .................................   Passed    0.02 sec
        Start 564: WorkplaneResolver maps side-face local sketch points through resolved frames
564/568 Test #564: WorkplaneResolver maps side-face local sketch points through resolved frames .....................   Passed    0.02 sec
        Start 565: WorkplaneResolver rejects missing workplanes
565/568 Test #565: WorkplaneResolver rejects missing workplanes .....................................................   Passed    0.02 sec
        Start 566: Generated-face sketch workplane origin follows source feature dimensions
566/568 Test #566: Generated-face sketch workplane origin follows source feature dimensions .........................   Passed    0.02 sec
        Start 567: Sketch origin override shifts the resolved sketch-local frame
567/568 Test #567: Sketch origin override shifts the resolved sketch-local frame ....................................   Passed    0.02 sec
        Start 568: Reference recovery evaluator reports missing generated source instead of remapping
568/568 Test #568: Reference recovery evaluator reports missing generated source instead of remapping ...............   Passed    0.02 sec

99% tests passed, 3 tests failed out of 568

Total Test time (real) =  10.22 sec

The following tests FAILED:
	337 - Generic direction equations support Line Axis and Plane capabilities (Failed)
	338 - Local generic relationships enter the shared solve freshness and rank paths (Failed)
	339 - Cross-hierarchy generic relationships reuse authorities solver application and diagnostics (Failed)
Errors while running CTest
===== focused tag: [geometry][assembly-generic-relationships] =====
Filters: [geometry] [assembly-generic-relationships]
Randomness seeded to: 1785617229

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blcad_geometry_tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
Generic direction equations support Line Axis and Plane capabilities
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:254
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:268: FAILED:
  CHECK( parallel_line_axis.value().compatibility.target_b_capability == AssemblyGeometricTargetCapability::Axis )
with expansion:
  2 == 1

===============================================================================
test cases:  2 |  1 passed | 1 failed
assertions: 32 | 31 passed | 1 failed

===== focused tag: [geometry][assembly-generic-relationships-solver] =====
Filters: [geometry] [assembly-generic-relationships-solver]
Randomness seeded to: 2342085713

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blcad_geometry_tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
Local generic relationships enter the shared solve freshness and rank paths
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:318
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:336: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:337: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:338: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

===============================================================================
test cases:  1 |  0 passed | 1 failed
assertions: 71 | 68 passed | 3 failed

===== focused tag: [geometry][assembly-generic-relationships-cross-hierarchy] =====
Filters: [geometry] [assembly-generic-relationships-cross-hierarchy]
Randomness seeded to: 2804748962

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blcad_geometry_tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
Cross-hierarchy generic relationships reuse authorities solver application and
diagnostics
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:363
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:381: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:383: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:385: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:401: FAILED:
  CHECK( child_transform(project).translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:402: FAILED:
  CHECK( child_transform(project).translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:403: FAILED:
  CHECK( child_transform(project).translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

===============================================================================
test cases:   3 |   2 passed | 1 failed
assertions: 206 | 200 passed | 6 failed

===== focused tag: [geometry][assembly-generic-relationships-diagnostics] =====
Filters: [geometry] [assembly-generic-relationships-diagnostics]
Randomness seeded to: 2961039627

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blcad_geometry_tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
Local generic relationships enter the shared solve freshness and rank paths
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:318
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:336: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:337: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:338: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

-------------------------------------------------------------------------------
Cross-hierarchy generic relationships reuse authorities solver application and
diagnostics
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:363
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:381: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:383: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:385: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:401: FAILED:
  CHECK( child_transform(project).translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:402: FAILED:
  CHECK( child_transform(project).translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:403: FAILED:
  CHECK( child_transform(project).translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

===============================================================================
test cases:   2 |   0 passed | 2 failed
assertions: 147 | 138 passed | 9 failed

===== focused tag: [geometry][assembly-target-compatibility] =====
Filters: [geometry] [assembly-target-compatibility]
Randomness seeded to: 1414445073
===============================================================================
All tests passed (346 assertions in 6 test cases)

===== focused tag: [geometry][assembly-cross-hierarchy-target-compatibility] =====
Filters: [geometry] [assembly-cross-hierarchy-target-compatibility]
Randomness seeded to: 1107530731
===============================================================================
All tests passed (189 assertions in 2 test cases)

Geometry workflow status: 8
Focused test status: 1

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

410/568 Test #410: Assembly numeric system flattens mixed planar and Insert residuals deterministically .............   Passed    0.02 sec
        Start 411: Rigid-body solver solves Insert lateral offset, tilt, and axial seating
411/568 Test #411: Rigid-body solver solves Insert lateral offset, tilt, and axial seating ..........................   Passed    0.03 sec
        Start 412: Insert solver preserves fixed inconsistency and non-convergence boundaries
412/568 Test #412: Insert solver preserves fixed inconsistency and non-convergence boundaries .......................   Passed    0.02 sec
        Start 413: Assembly solve diagnostics prove Insert rank five and one remaining DOF
413/568 Test #413: Assembly solve diagnostics prove Insert rank five and one remaining DOF ..........................   Passed    0.02 sec
        Start 414: Mixed Concentric and Insert diagnostics preserve deterministic order and rank
414/568 Test #414: Mixed Concentric and Insert diagnostics preserve deterministic order and rank ....................   Passed    0.02 sec
        Start 415: Interference analysis distinguishes disjoint, touching, and overlapping leaves
415/568 Test #415: Interference analysis distinguishes disjoint, touching, and overlapping leaves ...................   Passed    0.03 sec
        Start 416: Interference analysis is deterministic and insertion-order independent
416/568 Test #416: Interference analysis is deterministic and insertion-order independent ...........................   Passed    0.03 sec
        Start 417: Interference analysis excludes suppressed leaves
417/568 Test #417: Interference analysis excludes suppressed leaves .................................................   Passed    0.02 sec
        Start 418: Interference analysis covers repeated nested child occurrences
418/568 Test #418: Interference analysis covers repeated nested child occurrences ...................................   Passed    0.03 sec
        Start 419: Interference analysis validates its overlap tolerance
419/568 Test #419: Interference analysis validates its overlap tolerance ............................................   Passed    0.02 sec
        Start 420: Clearance analysis reports near pairs, touching pairs, and separates interference
420/568 Test #420: Clearance analysis reports near pairs, touching pairs, and separates interference ................   Passed    0.04 sec
        Start 421: Clearance analysis is deterministic and validates its thresholds
421/568 Test #421: Clearance analysis is deterministic and validates its thresholds .................................   Passed    0.04 sec
        Start 422: Clearance analysis drives the checked-in posed assembly example project
422/568 Test #422: Clearance analysis drives the checked-in posed assembly example project ..........................   Passed    0.03 sec
        Start 423: Joint motion application rejects a changed non-selected driven joint
423/568 Test #423: Joint motion application rejects a changed non-selected driven joint .............................   Passed    0.02 sec
        Start 424: AssemblyStepExporter flattens repeated two-level rigid subassemblies
424/568 Test #424: AssemblyStepExporter flattens repeated two-level rigid subassemblies .............................   Passed    0.05 sec
        Start 425: Nested posed export excludes hidden and suppressed complete subtrees and child leaves
425/568 Test #425: Nested posed export excludes hidden and suppressed complete subtrees and child leaves ............   Passed    0.02 sec
        Start 426: Nested posed export fails closed when hierarchy leaves are all filtered
426/568 Test #426: Nested posed export fails closed when hierarchy leaves are all filtered ..........................   Passed    0.02 sec
        Start 427: Nested posed export fails closed on an unresolved child leaf part
427/568 Test #427: Nested posed export fails closed on an unresolved child leaf part ................................   Passed    0.02 sec
        Start 428: A shared assembly bolt count drives both member parts
428/568 Test #428: A shared assembly bolt count drives both member parts ............................................   Passed    0.25 sec
        Start 429: Revolute joint equation preserves oriented signed twist semantics
429/568 Test #429: Revolute joint equation preserves oriented signed twist semantics ................................   Passed    0.02 sec
        Start 430: Shared numeric system gives a regular rank six revolute drive
430/568 Test #430: Shared numeric system gives a regular rank six revolute drive ....................................   Passed    0.02 sec
        Start 431: Revolute motion solver moves and atomically applies an in-range joint coordinate
431/568 Test #431: Revolute motion solver moves and atomically applies an in-range joint coordinate .................   Passed    0.03 sec
        Start 432: Revolute motion enforces limits grounding activity and suppression boundaries
432/568 Test #432: Revolute motion enforces limits grounding activity and suppression boundaries ....................   Passed    0.02 sec
        Start 433: Revolute motion filters suppressed related joints and keeps full stale snapshots
433/568 Test #433: Revolute motion filters suppressed related joints and keeps full stale snapshots .................   Passed    0.02 sec
        Start 434: Revolute motion result application rejects stale component and joint inputs
434/568 Test #434: Revolute motion result application rejects stale component and joint inputs ......................   Passed    0.02 sec
        Start 435: Revolute motion holds other active joints at persisted coordinates
435/568 Test #435: Revolute motion holds other active joints at persisted coordinates ...............................   Passed    0.03 sec
        Start 436: Sampled root-local Revolute sweep classifies contact at deterministic inclusive coordinates
436/568 Test #436: Sampled root-local Revolute sweep classifies contact at deterministic inclusive coordinates ......   Passed    0.07 sec
        Start 437: Sampled Revolute sweep preserves caller interval direction
437/568 Test #437: Sampled Revolute sweep preserves caller interval direction .......................................   Passed    0.07 sec
        Start 438: Sampled cross-hierarchy Revolute sweep reuses atomic cross motion on fresh Project copies
438/568 Test #438: Sampled cross-hierarchy Revolute sweep reuses atomic cross motion on fresh Project copies ........   Passed    0.07 sec
        Start 439: Sampled Revolute sweep validates units bounds sample count and selected scope
439/568 Test #439: Sampled Revolute sweep validates units bounds sample count and selected scope ....................   Passed    0.02 sec
        Start 440: Sampled Revolute sweep fails closed with sample context when contact analysis fails
440/568 Test #440: Sampled Revolute sweep fails closed with sample context when contact analysis fails ..............   Passed    0.02 sec
        Start 441: Rigid-body solver solves and explicitly applies one movable planar Mate
441/568 Test #441: Rigid-body solver solves and explicitly applies one movable planar Mate ..........................   Passed    0.02 sec
        Start 442: Rigid-body solver corrects planar Distance translation and orientation
442/568 Test #442: Rigid-body solver corrects planar Distance translation and orientation ...........................   Passed    0.02 sec
        Start 443: Rigid-body solver uses deterministic constraint and variable ordering for a chain
443/568 Test #443: Rigid-body solver uses deterministic constraint and variable ordering for a chain ................   Passed    0.03 sec
        Start 444: Rigid-body solver defines grounded, suppressed, and connected-group participation
444/568 Test #444: Rigid-body solver defines grounded, suppressed, and connected-group participation ................   Passed    0.02 sec
        Start 445: Rigid-body solver exposes validation and semantic target failures
445/568 Test #445: Rigid-body solver exposes validation and semantic target failures ................................   Passed    0.02 sec
        Start 446: Non-converged and stale solve results cannot mutate project placement
446/568 Test #446: Non-converged and stale solve results cannot mutate project placement ............................   Passed    0.02 sec
        Start 447: Assembly solve diagnostics report local remaining DOF for planar constraints
447/568 Test #447: Assembly solve diagnostics report local remaining DOF for planar constraints .....................   Passed    0.02 sec
        Start 448: Assembly solve diagnostics identify locally full rank and deterministic chains
448/568 Test #448: Assembly solve diagnostics identify locally full rank and deterministic chains ...................   Passed    0.02 sec
        Start 449: Assembly solve diagnostics preserve fixed and non-converged solve states
449/568 Test #449: Assembly solve diagnostics preserve fixed and non-converged solve states .........................   Passed    0.02 sec
        Start 450: Assembly solve diagnostics expose rank tolerance and residual redundancy boundaries
450/568 Test #450: Assembly solve diagnostics expose rank tolerance and residual redundancy boundaries ..............   Passed    0.02 sec
        Start 451: Assembly solve diagnostics preserve semantic target failures and enum labels
451/568 Test #451: Assembly solve diagnostics preserve semantic target failures and enum labels .....................   Passed    0.02 sec
        Start 452: AssemblyStepExporter poses repeated part instances and preserves repeat-export geometry
452/568 Test #452: AssemblyStepExporter poses repeated part instances and preserves repeat-export geometry ..........   Passed    0.05 sec
        Start 453: AssemblyStepExporter excludes hidden and suppressed component occurrences
453/568 Test #453: AssemblyStepExporter excludes hidden and suppressed component occurrences ........................   Passed    0.03 sec
        Start 454: AssemblyStepExporter fails closed on an unresolvable project member
454/568 Test #454: AssemblyStepExporter fails closed on an unresolvable project member ..............................   Passed    0.02 sec
        Start 455: AssemblyStepExporter fails when a referenced part recomputes without a final shape
455/568 Test #455: AssemblyStepExporter fails when a referenced part recomputes without a final shape ...............   Passed    0.02 sec
        Start 456: Structured STEP reuses one part definition for repeated root components
456/568 Test #456: Structured STEP reuses one part definition for repeated root components ..........................   Passed    0.04 sec
        Start 457: Structured STEP preserves repeated child and nested assembly occurrence products
457/568 Test #457: Structured STEP preserves repeated child and nested assembly occurrence products .................   Passed    0.06 sec
        Start 458: Structured STEP mirrors visible-active component and hierarchy filtering
458/568 Test #458: Structured STEP mirrors visible-active component and hierarchy filtering .........................   Passed    0.03 sec
        Start 459: Structured STEP fails closed without an output path or exported component
459/568 Test #459: Structured STEP fails closed without an output path or exported component ........................   Passed    0.02 sec
        Start 460: A suppressed middle component splits the numeric system deterministically
460/568 Test #460: A suppressed middle component splits the numeric system deterministically ........................   Passed    0.02 sec
        Start 461: A suppressed grounded component keeps the remaining subgroup solvable
461/568 Test #461: A suppressed grounded component keeps the remaining subgroup solvable ............................   Passed    0.02 sec
        Start 462: A subgroup without a grounded active component is still rejected
462/568 Test #462: A subgroup without a grounded active component is still rejected .................................   Passed    0.02 sec
        Start 463: Unsuppressing a component after solving makes the result stale
463/568 Test #463: Unsuppressing a component after solving makes the result stale ...................................   Passed    0.02 sec
        Start 464: Suppression diagnostics report rank only over active components
464/568 Test #464: Suppression diagnostics report rank only over active components ..................................   Passed    0.02 sec
        Start 465: Assembly target compatibility resolver covers the supported relationship matrix
465/568 Test #465: Assembly target compatibility resolver covers the supported relationship matrix ..................   Passed    0.02 sec
        Start 466: Assembly target compatibility resolver fails closed for incompatible pairs
466/568 Test #466: Assembly target compatibility resolver fails closed for incompatible pairs .......................   Passed    0.02 sec
        Start 467: Assembly target compatibility resolver is deterministic for multi-capability targets
467/568 Test #467: Assembly target compatibility resolver is deterministic for multi-capability targets .............   Passed    0.02 sec
        Start 468: Assembly target compatibility resolves current local target families without mutation
468/568 Test #468: Assembly target compatibility resolves current local target families without mutation ............   Passed    0.02 sec
        Start 469: Assembly equation builders consume compatibility before projection
469/568 Test #469: Assembly equation builders consume compatibility before projection ...............................   Passed    0.02 sec
        Start 470: Local and cross-hierarchy target compatibility agree for the same semantic families
470/568 Test #470: Local and cross-hierarchy target compatibility agree for the same semantic families ..............   Passed    0.02 sec
        Start 471: Cross-hierarchy equation builder consumes target compatibility
471/568 Test #471: Cross-hierarchy equation builder consumes target compatibility ...................................   Passed    0.02 sec
        Start 472: Assembly transform evaluator preserves identity and applies translation only to points
472/568 Test #472: Assembly transform evaluator preserves identity and applies translation only to points ...........   Passed    0.02 sec
        Start 473: Assembly transform evaluator applies right-handed single-axis rotations
473/568 Test #473: Assembly transform evaluator applies right-handed single-axis rotations ..........................   Passed    0.02 sec
        Start 474: Assembly transform evaluator proves X then Y then Z rotation order
474/568 Test #474: Assembly transform evaluator proves X then Y then Z rotation order ...............................   Passed    0.02 sec
        Start 475: Assembly transform evaluator maps a resolved target plane into assembly space
475/568 Test #475: Assembly transform evaluator maps a resolved target plane into assembly space ....................   Passed    0.02 sec
        Start 476: Assembly transform evaluation is deterministic, length-preserving, and read-only
476/568 Test #476: Assembly transform evaluation is deterministic, length-preserving, and read-only .................   Passed    0.02 sec
        Start 477: Back-face workplane recomputes an axis-directed through-all circular cut
477/568 Test #477: Back-face workplane recomputes an axis-directed through-all circular cut .........................   Passed    0.03 sec
        Start 478: Back-face workplane rejects holes outside side-face bounds
478/568 Test #478: Back-face workplane rejects holes outside side-face bounds .......................................   Passed    0.02 sec
        Start 479: Bolt circle pattern cuts the parametric hole count
479/568 Test #479: Bolt circle pattern cuts the parametric hole count ...............................................   Passed    0.07 sec
        Start 480: Changing the bolt count recomputes the bolt circle incrementally
480/568 Test #480: Changing the bolt count recomputes the bolt circle incrementally .................................   Passed    0.18 sec
        Start 481: Changing the bolt circle radius recomputes hole positions
481/568 Test #481: Changing the bolt circle radius recomputes hole positions ........................................   Passed    0.12 sec
        Start 482: Bolt circle pattern rejects holes outside the resolved bounds
482/568 Test #482: Bolt circle pattern rejects holes outside the resolved bounds ....................................   Passed    0.03 sec
        Start 483: WorkplaneResolver resolves construction planes parallel to planes through points
483/568 Test #483: WorkplaneResolver resolves construction planes parallel to planes through points .................   Passed    0.02 sec
        Start 484: CircularCutAdapter cuts a through-all hole and keeps a single solid
484/568 Test #484: CircularCutAdapter cuts a through-all hole and keeps a single solid ..............................   Passed    0.03 sec
        Start 485: CircularCutAdapter rejects an empty target shape
485/568 Test #485: CircularCutAdapter rejects an empty target shape .................................................   Passed    0.02 sec
        Start 486: Geometry recomputes an additive closed triangle profile
486/568 Test #486: Geometry recomputes an additive closed triangle profile ..........................................   Passed    0.02 sec
        Start 487: Geometry recomputes a subtractive through-all closed profile cut
487/568 Test #487: Geometry recomputes a subtractive through-all closed profile cut .................................   Passed    0.03 sec
        Start 488: Geometry recomputes additive extrude from composite closed profile with a hole
488/568 Test #488: Geometry recomputes additive extrude from composite closed profile with a hole ...................   Passed    0.02 sec
        Start 489: Geometry recomputes subtractive cut from composite closed profile with a hole
489/568 Test #489: Geometry recomputes subtractive cut from composite closed profile with a hole ....................   Passed    0.04 sec
        Start 490: Geometry recomputes a closed profile on an explicit construction plane
490/568 Test #490: Geometry recomputes a closed profile on an explicit construction plane ...........................   Passed    0.02 sec
        Start 491: Geometry recomputes a rectangle profile on an angled construction plane
491/568 Test #491: Geometry recomputes a rectangle profile on an angled construction plane ..........................   Passed    0.02 sec
        Start 492: Geometry recomputes a circular through-all cut on an angled construction plane
492/568 Test #492: Geometry recomputes a circular through-all cut on an angled construction plane ...................   Passed    0.03 sec
        Start 493: Geometry recomputes a closed profile on an offset construction plane relation
493/568 Test #493: Geometry recomputes a closed profile on an offset construction plane relation ....................   Passed    0.02 sec
        Start 494: WorkplaneResolver resolves explicit construction plane frames
494/568 Test #494: WorkplaneResolver resolves explicit construction plane frames ....................................   Passed    0.02 sec
        Start 495: WorkplaneResolver resolves offset construction plane relations
495/568 Test #495: WorkplaneResolver resolves offset construction plane relations ...................................   Passed    0.02 sec
        Start 496: WorkplaneResolver resolves construction planes through three points
496/568 Test #496: WorkplaneResolver resolves construction planes through three points ..............................   Passed    0.02 sec
        Start 497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane
497/568 Test #497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane ........................   Passed    0.03 sec
        Start 498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane
498/568 Test #498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane .....................   Passed    0.03 sec
        Start 499: Derived top-face workplane cut follows an off-center sketch point
499/568 Test #499: Derived top-face workplane cut follows an off-center sketch point ................................   Passed    0.03 sec
        Start 500: Derived top-face workplane accepts a near-edge hole inside the face bounds
500/568 Test #500: Derived top-face workplane accepts a near-edge hole inside the face bounds .......................   Passed    0.03 sec
        Start 501: Derived top-face workplane rejects holes outside the face bounds
501/568 Test #501: Derived top-face workplane rejects holes outside the face bounds .................................   Passed    0.02 sec
        Start 502: Incremental recompute follows derived-workplane dependency paths
502/568 Test #502: Incremental recompute follows derived-workplane dependency paths .................................   Passed    0.03 sec
        Start 503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base
503/568 Test #503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base .....   Passed    0.03 sec
        Start 504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices
504/568 Test #504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices ......................   Passed    0.02 sec
        Start 505: Geometry recomputes additive extrude from dimension-driven profile
505/568 Test #505: Geometry recomputes additive extrude from dimension-driven profile ...............................   Passed    0.02 sec
        Start 506: Front-face workplane recomputes an axis-directed through-all circular cut
506/568 Test #506: Front-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.03 sec
        Start 507: Front-face workplane rejects holes outside side-face bounds
507/568 Test #507: Front-face workplane rejects holes outside side-face bounds ......................................   Passed    0.02 sec
        Start 508: Left-face workplane recomputes an axis-directed through-all circular cut
508/568 Test #508: Left-face workplane recomputes an axis-directed through-all circular cut .........................   Passed    0.03 sec
        Start 509: Left-face workplane rejects holes outside side-face bounds
509/568 Test #509: Left-face workplane rejects holes outside side-face bounds .......................................   Passed    0.02 sec
        Start 510: A formula-driven length drives geometry recompute through the dependency graph
510/568 Test #510: A formula-driven length drives geometry recompute through the dependency graph ...................   Passed    0.02 sec
        Start 511: GeometryRecomputeExecutor executes an additive extrude into the shape cache
511/568 Test #511: GeometryRecomputeExecutor executes an additive extrude into the shape cache ......................   Passed    0.02 sec
        Start 512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan
512/568 Test #512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan ..................   Passed    0.02 sec
        Start 513: GeometryRecomputeExecutor rejects missing feature ids
513/568 Test #513: GeometryRecomputeExecutor rejects missing feature ids ............................................   Passed    0.02 sec
        Start 514: GeometryRecomputeExecutor rejects unsupported additive sketches
514/568 Test #514: GeometryRecomputeExecutor rejects unsupported additive sketches ..................................   Passed    0.02 sec
        Start 515: GeometryRecomputeExecutor cuts a central hole into a cached base body
515/568 Test #515: GeometryRecomputeExecutor cuts a central hole into a cached base body ............................   Passed    0.03 sec
        Start 516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan
516/568 Test #516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan .......................   Passed    0.03 sec
        Start 517: GeometryRecomputeExecutor requires the target body in the cache before cutting
517/568 Test #517: GeometryRecomputeExecutor requires the target body in the cache before cutting ...................   Passed    0.02 sec
        Start 518: GeometryRecomputeExecutor rejects unsupported subtractive sketches
518/568 Test #518: GeometryRecomputeExecutor rejects unsupported subtractive sketches ...............................   Passed    0.02 sec
        Start 519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths
519/568 Test #519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths ...........................   Passed    0.02 sec
        Start 520: GeometryShape defaults to an empty geometry handle
520/568 Test #520: GeometryShape defaults to an empty geometry handle ...............................................   Passed    0.02 sec
        Start 521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints
521/568 Test #521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints ..............   Passed    0.02 sec
        Start 522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points
522/568 Test #522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points .....   Passed    0.02 sec
        Start 523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices
523/568 Test #523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices ...................   Passed    0.02 sec
        Start 524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction
524/568 Test #524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction ....................   Passed    0.02 sec
        Start 525: Geometry recomputes additive extrude from reference-generated helper profile
525/568 Test #525: Geometry recomputes additive extrude from reference-generated helper profile .....................   Passed    0.02 sec
        Start 526: Geometry recomputes subtractive cut from reference-generated helper profile
526/568 Test #526: Geometry recomputes subtractive cut from reference-generated helper profile ......................   Passed    0.03 sec
        Start 527: MVP-1 reference part recomputes the whole document and exports a STEP file
527/568 Test #527: MVP-1 reference part recomputes the whole document and exports a STEP file .......................   Passed    0.03 sec
        Start 528: MVP-1 reference part recomputes a larger hole incrementally
528/568 Test #528: MVP-1 reference part recomputes a larger hole incrementally ......................................   Passed    0.03 sec
        Start 529: MVP-1 reference part can be restored from JSON and recomputed
529/568 Test #529: MVP-1 reference part can be restored from JSON and recomputed ....................................   Passed    0.03 sec
        Start 530: Right-face workplane recomputes an axis-directed through-all circular cut
530/568 Test #530: Right-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.03 sec
        Start 531: Right-face workplane rejects holes outside side-face bounds
531/568 Test #531: Right-face workplane rejects holes outside side-face bounds ......................................   Passed    0.02 sec
        Start 532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices
532/568 Test #532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices ..............   Passed    0.02 sec
        Start 533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints
533/568 Test #533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints ..........   Passed    0.02 sec
        Start 534: ConstructionLineResolver resolves deterministic chained construction lines
534/568 Test #534: ConstructionLineResolver resolves deterministic chained construction lines .......................   Passed    0.02 sec
        Start 535: ShapeCache starts empty with a stable id
535/568 Test #535: ShapeCache starts empty with a stable id .........................................................   Passed    0.02 sec
        Start 536: ShapeCache rejects empty cache ids
536/568 Test #536: ShapeCache rejects empty cache ids ...............................................................   Passed    0.02 sec
        Start 537: ShapeCache stores and finds feature shapes
537/568 Test #537: ShapeCache stores and finds feature shapes .......................................................   Passed    0.02 sec
        Start 538: ShapeCache updates existing feature shapes instead of duplicating them
538/568 Test #538: ShapeCache updates existing feature shapes instead of duplicating them ...........................   Passed    0.02 sec
        Start 539: ShapeCache tracks the final shape and source feature
539/568 Test #539: ShapeCache tracks the final shape and source feature .............................................   Passed    0.02 sec
        Start 540: ShapeCache removes cached feature shapes
540/568 Test #540: ShapeCache removes cached feature shapes .........................................................   Passed    0.02 sec
        Start 541: ShapeCache removes the final shape when its source feature is removed
541/568 Test #541: ShapeCache removes the final shape when its source feature is removed ............................   Passed    0.02 sec
        Start 542: ShapeCache remove reports false for missing feature shapes
542/568 Test #542: ShapeCache remove reports false for missing feature shapes .......................................   Passed    0.02 sec
        Start 543: ShapeCache clear removes cached feature and final shapes
543/568 Test #543: ShapeCache clear removes cached feature and final shapes .........................................   Passed    0.02 sec
        Start 544: ShapeCache rejects empty feature ids and empty shapes
544/568 Test #544: ShapeCache rejects empty feature ids and empty shapes ............................................   Passed    0.02 sec
        Start 545: SketchReferenceProjector projects semantic generated refs into sketch space
545/568 Test #545: SketchReferenceProjector projects semantic generated refs into sketch space ......................   Passed    0.02 sec
        Start 546: SketchReferenceProjector projects construction references into sketch space
546/568 Test #546: SketchReferenceProjector projects construction references into sketch space ......................   Passed    0.02 sec
        Start 547: SketchReferenceProjector rejects out-of-plane projected points
547/568 Test #547: SketchReferenceProjector rejects out-of-plane projected points ...................................   Passed    0.02 sec
        Start 548: SketchRegionFinder detects a deterministic single region from unordered explicit lines
548/568 Test #548: SketchRegionFinder detects a deterministic single region from unordered explicit lines ...........   Passed    0.02 sec
        Start 549: SketchRegionFinder rejects branched regions
549/568 Test #549: SketchRegionFinder rejects branched regions ......................................................   Passed    0.02 sec
        Start 550: Geometry recomputes additive extrude from detected sketch region
550/568 Test #550: Geometry recomputes additive extrude from detected sketch region .................................   Passed    0.02 sec
        Start 551: Geometry recomputes subtractive cut from detected sketch region
551/568 Test #551: Geometry recomputes subtractive cut from detected sketch region ..................................   Passed    0.03 sec
        Start 552: Geometry recomputes additive extrude from spline closed profile
552/568 Test #552: Geometry recomputes additive extrude from spline closed profile ..................................   Passed    0.02 sec
        Start 553: Geometry recomputes subtractive cut from spline closed profile
553/568 Test #553: Geometry recomputes subtractive cut from spline closed profile ...................................   Passed    0.06 sec
        Start 554: StepExporter writes a valid non-empty STEP file for a cut plate
554/568 Test #554: StepExporter writes a valid non-empty STEP file for a cut plate ..................................   Passed    0.03 sec
        Start 555: StepExporter rejects an empty shape
555/568 Test #555: StepExporter rejects an empty shape ..............................................................   Passed    0.02 sec
        Start 556: StepExporter rejects an empty path
556/568 Test #556: StepExporter rejects an empty path ...............................................................   Passed    0.03 sec
        Start 557: WorkplaneResolver resolves standard datum planes
557/568 Test #557: WorkplaneResolver resolves standard datum planes .................................................   Passed    0.02 sec
        Start 558: WorkplaneResolver resolves additive-extrude top-face workplanes
558/568 Test #558: WorkplaneResolver resolves additive-extrude top-face workplanes ..................................   Passed    0.02 sec
        Start 559: WorkplaneResolver resolves additive-extrude bottom-face workplanes
559/568 Test #559: WorkplaneResolver resolves additive-extrude bottom-face workplanes ...............................   Passed    0.02 sec
        Start 560: WorkplaneResolver resolves additive-extrude right-face workplanes
560/568 Test #560: WorkplaneResolver resolves additive-extrude right-face workplanes ................................   Passed    0.02 sec
        Start 561: WorkplaneResolver resolves additive-extrude left-face workplanes
561/568 Test #561: WorkplaneResolver resolves additive-extrude left-face workplanes .................................   Passed    0.02 sec
        Start 562: WorkplaneResolver resolves additive-extrude front-face workplanes
562/568 Test #562: WorkplaneResolver resolves additive-extrude front-face workplanes ................................   Passed    0.02 sec
        Start 563: WorkplaneResolver resolves additive-extrude back-face workplanes
563/568 Test #563: WorkplaneResolver resolves additive-extrude back-face workplanes .................................   Passed    0.02 sec
        Start 564: WorkplaneResolver maps side-face local sketch points through resolved frames
564/568 Test #564: WorkplaneResolver maps side-face local sketch points through resolved frames .....................   Passed    0.02 sec
        Start 565: WorkplaneResolver rejects missing workplanes
565/568 Test #565: WorkplaneResolver rejects missing workplanes .....................................................   Passed    0.02 sec
        Start 566: Generated-face sketch workplane origin follows source feature dimensions
566/568 Test #566: Generated-face sketch workplane origin follows source feature dimensions .........................   Passed    0.02 sec
        Start 567: Sketch origin override shifts the resolved sketch-local frame
567/568 Test #567: Sketch origin override shifts the resolved sketch-local frame ....................................   Passed    0.02 sec
        Start 568: Reference recovery evaluator reports missing generated source instead of remapping
568/568 Test #568: Reference recovery evaluator reports missing generated source instead of remapping ...............   Passed    0.02 sec

99% tests passed, 1 tests failed out of 568

Total Test time (real) =   7.70 sec

The following tests FAILED:
	337 - Generic direction equations support Line Axis and Plane capabilities (Failed)
Errors while running CTest
===== focused tag: [geometry][assembly-generic-relationships] =====
Filters: [geometry] [assembly-generic-relationships]
Randomness seeded to: 1589021617

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blcad_geometry_tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
Generic direction equations support Line Axis and Plane capabilities
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:254
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:268: FAILED:
  CHECK( parallel_line_axis.value().compatibility.target_b_capability == AssemblyGeometricTargetCapability::Axis )
with expansion:
  2 == 1

===============================================================================
test cases:  2 |  1 passed | 1 failed
assertions: 32 | 31 passed | 1 failed

===== focused tag: [geometry][assembly-generic-relationships-solver] =====
Filters: [geometry] [assembly-generic-relationships-solver]
Randomness seeded to: 3875262244
===============================================================================
All tests passed (74 assertions in 1 test case)

===== focused tag: [geometry][assembly-generic-relationships-cross-hierarchy] =====
Filters: [geometry] [assembly-generic-relationships-cross-hierarchy]
Randomness seeded to: 319619917
===============================================================================
All tests passed (205 assertions in 3 test cases)

===== focused tag: [geometry][assembly-generic-relationships-diagnostics] =====
Filters: [geometry] [assembly-generic-relationships-diagnostics]
Randomness seeded to: 1793865234
===============================================================================
All tests passed (149 assertions in 2 test cases)

===== focused tag: [geometry][assembly-target-compatibility] =====
Filters: [geometry] [assembly-target-compatibility]
Randomness seeded to: 2584168308
===============================================================================
All tests passed (346 assertions in 6 test cases)

===== focused tag: [geometry][assembly-cross-hierarchy-target-compatibility] =====
Filters: [geometry] [assembly-cross-hierarchy-target-compatibility]
Randomness seeded to: 3059565864
===============================================================================
All tests passed (189 assertions in 2 test cases)

Geometry workflow status: 8
Focused test status: 1

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

488/568 Test #488: Geometry recomputes additive extrude from composite closed profile with a hole ...................   Passed    0.02 sec
        Start 489: Geometry recomputes subtractive cut from composite closed profile with a hole
489/568 Test #489: Geometry recomputes subtractive cut from composite closed profile with a hole ....................   Passed    0.04 sec
        Start 490: Geometry recomputes a closed profile on an explicit construction plane
490/568 Test #490: Geometry recomputes a closed profile on an explicit construction plane ...........................   Passed    0.02 sec
        Start 491: Geometry recomputes a rectangle profile on an angled construction plane
491/568 Test #491: Geometry recomputes a rectangle profile on an angled construction plane ..........................   Passed    0.02 sec
        Start 492: Geometry recomputes a circular through-all cut on an angled construction plane
492/568 Test #492: Geometry recomputes a circular through-all cut on an angled construction plane ...................   Passed    0.04 sec
        Start 493: Geometry recomputes a closed profile on an offset construction plane relation
493/568 Test #493: Geometry recomputes a closed profile on an offset construction plane relation ....................   Passed    0.02 sec
        Start 494: WorkplaneResolver resolves explicit construction plane frames
494/568 Test #494: WorkplaneResolver resolves explicit construction plane frames ....................................   Passed    0.02 sec
        Start 495: WorkplaneResolver resolves offset construction plane relations
495/568 Test #495: WorkplaneResolver resolves offset construction plane relations ...................................   Passed    0.02 sec
        Start 496: WorkplaneResolver resolves construction planes through three points
496/568 Test #496: WorkplaneResolver resolves construction planes through three points ..............................   Passed    0.02 sec
        Start 497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane
497/568 Test #497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane ........................   Passed    0.03 sec
        Start 498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane
498/568 Test #498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane .....................   Passed    0.03 sec
        Start 499: Derived top-face workplane cut follows an off-center sketch point
499/568 Test #499: Derived top-face workplane cut follows an off-center sketch point ................................   Passed    0.03 sec
        Start 500: Derived top-face workplane accepts a near-edge hole inside the face bounds
500/568 Test #500: Derived top-face workplane accepts a near-edge hole inside the face bounds .......................   Passed    0.04 sec
        Start 501: Derived top-face workplane rejects holes outside the face bounds
501/568 Test #501: Derived top-face workplane rejects holes outside the face bounds .................................   Passed    0.03 sec
        Start 502: Incremental recompute follows derived-workplane dependency paths
502/568 Test #502: Incremental recompute follows derived-workplane dependency paths .................................   Passed    0.04 sec
        Start 503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base
503/568 Test #503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base .....   Passed    0.04 sec
        Start 504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices
504/568 Test #504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices ......................   Passed    0.02 sec
        Start 505: Geometry recomputes additive extrude from dimension-driven profile
505/568 Test #505: Geometry recomputes additive extrude from dimension-driven profile ...............................   Passed    0.02 sec
        Start 506: Front-face workplane recomputes an axis-directed through-all circular cut
506/568 Test #506: Front-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.03 sec
        Start 507: Front-face workplane rejects holes outside side-face bounds
507/568 Test #507: Front-face workplane rejects holes outside side-face bounds ......................................   Passed    0.02 sec
        Start 508: Left-face workplane recomputes an axis-directed through-all circular cut
508/568 Test #508: Left-face workplane recomputes an axis-directed through-all circular cut .........................   Passed    0.03 sec
        Start 509: Left-face workplane rejects holes outside side-face bounds
509/568 Test #509: Left-face workplane rejects holes outside side-face bounds .......................................   Passed    0.02 sec
        Start 510: A formula-driven length drives geometry recompute through the dependency graph
510/568 Test #510: A formula-driven length drives geometry recompute through the dependency graph ...................   Passed    0.02 sec
        Start 511: GeometryRecomputeExecutor executes an additive extrude into the shape cache
511/568 Test #511: GeometryRecomputeExecutor executes an additive extrude into the shape cache ......................   Passed    0.02 sec
        Start 512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan
512/568 Test #512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan ..................   Passed    0.02 sec
        Start 513: GeometryRecomputeExecutor rejects missing feature ids
513/568 Test #513: GeometryRecomputeExecutor rejects missing feature ids ............................................   Passed    0.02 sec
        Start 514: GeometryRecomputeExecutor rejects unsupported additive sketches
514/568 Test #514: GeometryRecomputeExecutor rejects unsupported additive sketches ..................................   Passed    0.02 sec
        Start 515: GeometryRecomputeExecutor cuts a central hole into a cached base body
515/568 Test #515: GeometryRecomputeExecutor cuts a central hole into a cached base body ............................   Passed    0.03 sec
        Start 516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan
516/568 Test #516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan .......................   Passed    0.03 sec
        Start 517: GeometryRecomputeExecutor requires the target body in the cache before cutting
517/568 Test #517: GeometryRecomputeExecutor requires the target body in the cache before cutting ...................   Passed    0.02 sec
        Start 518: GeometryRecomputeExecutor rejects unsupported subtractive sketches
518/568 Test #518: GeometryRecomputeExecutor rejects unsupported subtractive sketches ...............................   Passed    0.02 sec
        Start 519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths
519/568 Test #519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths ...........................   Passed    0.02 sec
        Start 520: GeometryShape defaults to an empty geometry handle
520/568 Test #520: GeometryShape defaults to an empty geometry handle ...............................................   Passed    0.02 sec
        Start 521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints
521/568 Test #521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints ..............   Passed    0.02 sec
        Start 522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points
522/568 Test #522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points .....   Passed    0.02 sec
        Start 523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices
523/568 Test #523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices ...................   Passed    0.02 sec
        Start 524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction
524/568 Test #524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction ....................   Passed    0.02 sec
        Start 525: Geometry recomputes additive extrude from reference-generated helper profile
525/568 Test #525: Geometry recomputes additive extrude from reference-generated helper profile .....................   Passed    0.02 sec
        Start 526: Geometry recomputes subtractive cut from reference-generated helper profile
526/568 Test #526: Geometry recomputes subtractive cut from reference-generated helper profile ......................   Passed    0.03 sec
        Start 527: MVP-1 reference part recomputes the whole document and exports a STEP file
527/568 Test #527: MVP-1 reference part recomputes the whole document and exports a STEP file .......................   Passed    0.03 sec
        Start 528: MVP-1 reference part recomputes a larger hole incrementally
528/568 Test #528: MVP-1 reference part recomputes a larger hole incrementally ......................................   Passed    0.04 sec
        Start 529: MVP-1 reference part can be restored from JSON and recomputed
529/568 Test #529: MVP-1 reference part can be restored from JSON and recomputed ....................................   Passed    0.04 sec
        Start 530: Right-face workplane recomputes an axis-directed through-all circular cut
530/568 Test #530: Right-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.03 sec
        Start 531: Right-face workplane rejects holes outside side-face bounds
531/568 Test #531: Right-face workplane rejects holes outside side-face bounds ......................................   Passed    0.02 sec
        Start 532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices
532/568 Test #532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices ..............   Passed    0.02 sec
        Start 533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints
533/568 Test #533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints ..........   Passed    0.02 sec
        Start 534: ConstructionLineResolver resolves deterministic chained construction lines
534/568 Test #534: ConstructionLineResolver resolves deterministic chained construction lines .......................   Passed    0.02 sec
        Start 535: ShapeCache starts empty with a stable id
535/568 Test #535: ShapeCache starts empty with a stable id .........................................................   Passed    0.02 sec
        Start 536: ShapeCache rejects empty cache ids
536/568 Test #536: ShapeCache rejects empty cache ids ...............................................................   Passed    0.02 sec
        Start 537: ShapeCache stores and finds feature shapes
537/568 Test #537: ShapeCache stores and finds feature shapes .......................................................   Passed    0.02 sec
        Start 538: ShapeCache updates existing feature shapes instead of duplicating them
538/568 Test #538: ShapeCache updates existing feature shapes instead of duplicating them ...........................   Passed    0.02 sec
        Start 539: ShapeCache tracks the final shape and source feature
539/568 Test #539: ShapeCache tracks the final shape and source feature .............................................   Passed    0.02 sec
        Start 540: ShapeCache removes cached feature shapes
540/568 Test #540: ShapeCache removes cached feature shapes .........................................................   Passed    0.02 sec
        Start 541: ShapeCache removes the final shape when its source feature is removed
541/568 Test #541: ShapeCache removes the final shape when its source feature is removed ............................   Passed    0.02 sec
        Start 542: ShapeCache remove reports false for missing feature shapes
542/568 Test #542: ShapeCache remove reports false for missing feature shapes .......................................   Passed    0.02 sec
        Start 543: ShapeCache clear removes cached feature and final shapes
543/568 Test #543: ShapeCache clear removes cached feature and final shapes .........................................   Passed    0.02 sec
        Start 544: ShapeCache rejects empty feature ids and empty shapes
544/568 Test #544: ShapeCache rejects empty feature ids and empty shapes ............................................   Passed    0.02 sec
        Start 545: SketchReferenceProjector projects semantic generated refs into sketch space
545/568 Test #545: SketchReferenceProjector projects semantic generated refs into sketch space ......................   Passed    0.02 sec
        Start 546: SketchReferenceProjector projects construction references into sketch space
546/568 Test #546: SketchReferenceProjector projects construction references into sketch space ......................   Passed    0.02 sec
        Start 547: SketchReferenceProjector rejects out-of-plane projected points
547/568 Test #547: SketchReferenceProjector rejects out-of-plane projected points ...................................   Passed    0.02 sec
        Start 548: SketchRegionFinder detects a deterministic single region from unordered explicit lines
548/568 Test #548: SketchRegionFinder detects a deterministic single region from unordered explicit lines ...........   Passed    0.02 sec
        Start 549: SketchRegionFinder rejects branched regions
549/568 Test #549: SketchRegionFinder rejects branched regions ......................................................   Passed    0.02 sec
        Start 550: Geometry recomputes additive extrude from detected sketch region
550/568 Test #550: Geometry recomputes additive extrude from detected sketch region .................................   Passed    0.02 sec
        Start 551: Geometry recomputes subtractive cut from detected sketch region
551/568 Test #551: Geometry recomputes subtractive cut from detected sketch region ..................................   Passed    0.03 sec
        Start 552: Geometry recomputes additive extrude from spline closed profile
552/568 Test #552: Geometry recomputes additive extrude from spline closed profile ..................................   Passed    0.02 sec
        Start 553: Geometry recomputes subtractive cut from spline closed profile
553/568 Test #553: Geometry recomputes subtractive cut from spline closed profile ...................................   Passed    0.07 sec
        Start 554: StepExporter writes a valid non-empty STEP file for a cut plate
554/568 Test #554: StepExporter writes a valid non-empty STEP file for a cut plate ..................................   Passed    0.04 sec
        Start 555: StepExporter rejects an empty shape
555/568 Test #555: StepExporter rejects an empty shape ..............................................................   Passed    0.02 sec
        Start 556: StepExporter rejects an empty path
556/568 Test #556: StepExporter rejects an empty path ...............................................................   Passed    0.03 sec
        Start 557: WorkplaneResolver resolves standard datum planes
557/568 Test #557: WorkplaneResolver resolves standard datum planes .................................................   Passed    0.02 sec
        Start 558: WorkplaneResolver resolves additive-extrude top-face workplanes
558/568 Test #558: WorkplaneResolver resolves additive-extrude top-face workplanes ..................................   Passed    0.02 sec
        Start 559: WorkplaneResolver resolves additive-extrude bottom-face workplanes
559/568 Test #559: WorkplaneResolver resolves additive-extrude bottom-face workplanes ...............................   Passed    0.02 sec
        Start 560: WorkplaneResolver resolves additive-extrude right-face workplanes
560/568 Test #560: WorkplaneResolver resolves additive-extrude right-face workplanes ................................   Passed    0.02 sec
        Start 561: WorkplaneResolver resolves additive-extrude left-face workplanes
561/568 Test #561: WorkplaneResolver resolves additive-extrude left-face workplanes .................................   Passed    0.02 sec
        Start 562: WorkplaneResolver resolves additive-extrude front-face workplanes
562/568 Test #562: WorkplaneResolver resolves additive-extrude front-face workplanes ................................   Passed    0.02 sec
        Start 563: WorkplaneResolver resolves additive-extrude back-face workplanes
563/568 Test #563: WorkplaneResolver resolves additive-extrude back-face workplanes .................................   Passed    0.02 sec
        Start 564: WorkplaneResolver maps side-face local sketch points through resolved frames
564/568 Test #564: WorkplaneResolver maps side-face local sketch points through resolved frames .....................   Passed    0.02 sec
        Start 565: WorkplaneResolver rejects missing workplanes
565/568 Test #565: WorkplaneResolver rejects missing workplanes .....................................................   Passed    0.02 sec
        Start 566: Generated-face sketch workplane origin follows source feature dimensions
566/568 Test #566: Generated-face sketch workplane origin follows source feature dimensions .........................   Passed    0.02 sec
        Start 567: Sketch origin override shifts the resolved sketch-local frame
567/568 Test #567: Sketch origin override shifts the resolved sketch-local frame ....................................   Passed    0.02 sec
        Start 568: Reference recovery evaluator reports missing generated source instead of remapping
568/568 Test #568: Reference recovery evaluator reports missing generated source instead of remapping ...............   Passed    0.02 sec

99% tests passed, 3 tests failed out of 568

Total Test time (real) =   9.58 sec

The following tests FAILED:
	337 - Generic direction equations support Line Axis and Plane capabilities (Failed)
	338 - Local generic relationships enter the shared solve freshness and rank paths (Failed)
	339 - Cross-hierarchy generic relationships reuse authorities solver application and diagnostics (Failed)
Errors while running CTest
===== focused tag: [geometry][assembly-generic-relationships] =====
Filters: [geometry] [assembly-generic-relationships]
Randomness seeded to: 389205758

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blcad_geometry_tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
Generic direction equations support Line Axis and Plane capabilities
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:254
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:268: FAILED:
  CHECK( parallel_line_axis.value().compatibility.target_b_capability == AssemblyGeometricTargetCapability::Axis )
with expansion:
  2 == 1

===============================================================================
test cases:  2 |  1 passed | 1 failed
assertions: 32 | 31 passed | 1 failed

===== focused tag: [geometry][assembly-generic-relationships-solver] =====
Filters: [geometry] [assembly-generic-relationships-solver]
Randomness seeded to: 2700192958

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blcad_geometry_tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
Local generic relationships enter the shared solve freshness and rank paths
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:318
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:336: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:337: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:338: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

===============================================================================
test cases:  1 |  0 passed | 1 failed
assertions: 71 | 68 passed | 3 failed

===== focused tag: [geometry][assembly-generic-relationships-cross-hierarchy] =====
Filters: [geometry] [assembly-generic-relationships-cross-hierarchy]
Randomness seeded to: 3236337221

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blcad_geometry_tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
Cross-hierarchy generic relationships reuse authorities solver application and
diagnostics
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:363
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:381: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:383: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:385: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:401: FAILED:
  CHECK( child_transform(project).translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:402: FAILED:
  CHECK( child_transform(project).translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:403: FAILED:
  CHECK( child_transform(project).translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

===============================================================================
test cases:   3 |   2 passed | 1 failed
assertions: 206 | 200 passed | 6 failed

===== focused tag: [geometry][assembly-generic-relationships-diagnostics] =====
Filters: [geometry] [assembly-generic-relationships-diagnostics]
Randomness seeded to: 4220872026

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blcad_geometry_tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
Local generic relationships enter the shared solve freshness and rank paths
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:318
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:336: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:337: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:338: FAILED:
  CHECK( proposal.proposed_transform.translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

-------------------------------------------------------------------------------
Cross-hierarchy generic relationships reuse authorities solver application and
diagnostics
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:363
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:381: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:383: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:385: FAILED:
  CHECK( solved.value().proposed_transforms.front().proposed_transform.translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:401: FAILED:
  CHECK( child_transform(project).translation_mm.x == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0401232261 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:402: FAILED:
  CHECK( child_transform(project).translation_mm.y == Approx(0.0).margin(kTolerance) )
with expansion:
  -0.021577597 == Approx( 0.0 )

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:403: FAILED:
  CHECK( child_transform(project).translation_mm.z == Approx(0.0).margin(kTolerance) )
with expansion:
  0.0013568735 == Approx( 0.0 )

===============================================================================
test cases:   2 |   0 passed | 2 failed
assertions: 147 | 138 passed | 9 failed

===== focused tag: [geometry][assembly-target-compatibility] =====
Filters: [geometry] [assembly-target-compatibility]
Randomness seeded to: 1261134843
===============================================================================
All tests passed (346 assertions in 6 test cases)

===== focused tag: [geometry][assembly-cross-hierarchy-target-compatibility] =====
Filters: [geometry] [assembly-cross-hierarchy-target-compatibility]
Randomness seeded to: 333477080
===============================================================================
All tests passed (189 assertions in 2 test cases)

Geometry workflow status: 8
Focused test status: 1

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

The following paths are ignored by one of your .gitignore files:
debug/block39-run23.log
hint: Use -f if you really want to add them.
hint: Disable this message with "git config set advice.addIgnoredFile false"

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

The following paths are ignored by one of your .gitignore files:
debug/block39-run23.log
hint: Use -f if you really want to add them.
hint: Disable this message with "git config set advice.addIgnoredFile false"

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

The following paths are ignored by one of your .gitignore files:
debug/block39-run23.log
hint: Use -f if you really want to add them.
hint: Disable this message with "git config set advice.addIgnoredFile false"

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

The following paths are ignored by one of your .gitignore files:
debug/block39-run23.log
hint: Use -f if you really want to add them.
hint: Disable this message with "git config set advice.addIgnoredFile false"

@github-actions

Copy link
Copy Markdown

Block 39 verification failed.

412/568 Test #412: Insert solver preserves fixed inconsistency and non-convergence boundaries .......................   Passed    0.02 sec
        Start 413: Assembly solve diagnostics prove Insert rank five and one remaining DOF
413/568 Test #413: Assembly solve diagnostics prove Insert rank five and one remaining DOF ..........................   Passed    0.02 sec
        Start 414: Mixed Concentric and Insert diagnostics preserve deterministic order and rank
414/568 Test #414: Mixed Concentric and Insert diagnostics preserve deterministic order and rank ....................   Passed    0.03 sec
        Start 415: Interference analysis distinguishes disjoint, touching, and overlapping leaves
415/568 Test #415: Interference analysis distinguishes disjoint, touching, and overlapping leaves ...................   Passed    0.03 sec
        Start 416: Interference analysis is deterministic and insertion-order independent
416/568 Test #416: Interference analysis is deterministic and insertion-order independent ...........................   Passed    0.03 sec
        Start 417: Interference analysis excludes suppressed leaves
417/568 Test #417: Interference analysis excludes suppressed leaves .................................................   Passed    0.02 sec
        Start 418: Interference analysis covers repeated nested child occurrences
418/568 Test #418: Interference analysis covers repeated nested child occurrences ...................................   Passed    0.03 sec
        Start 419: Interference analysis validates its overlap tolerance
419/568 Test #419: Interference analysis validates its overlap tolerance ............................................   Passed    0.02 sec
        Start 420: Clearance analysis reports near pairs, touching pairs, and separates interference
420/568 Test #420: Clearance analysis reports near pairs, touching pairs, and separates interference ................   Passed    0.04 sec
        Start 421: Clearance analysis is deterministic and validates its thresholds
421/568 Test #421: Clearance analysis is deterministic and validates its thresholds .................................   Passed    0.04 sec
        Start 422: Clearance analysis drives the checked-in posed assembly example project
422/568 Test #422: Clearance analysis drives the checked-in posed assembly example project ..........................   Passed    0.03 sec
        Start 423: Joint motion application rejects a changed non-selected driven joint
423/568 Test #423: Joint motion application rejects a changed non-selected driven joint .............................   Passed    0.02 sec
        Start 424: AssemblyStepExporter flattens repeated two-level rigid subassemblies
424/568 Test #424: AssemblyStepExporter flattens repeated two-level rigid subassemblies .............................   Passed    0.05 sec
        Start 425: Nested posed export excludes hidden and suppressed complete subtrees and child leaves
425/568 Test #425: Nested posed export excludes hidden and suppressed complete subtrees and child leaves ............   Passed    0.02 sec
        Start 426: Nested posed export fails closed when hierarchy leaves are all filtered
426/568 Test #426: Nested posed export fails closed when hierarchy leaves are all filtered ..........................   Passed    0.02 sec
        Start 427: Nested posed export fails closed on an unresolved child leaf part
427/568 Test #427: Nested posed export fails closed on an unresolved child leaf part ................................   Passed    0.02 sec
        Start 428: A shared assembly bolt count drives both member parts
428/568 Test #428: A shared assembly bolt count drives both member parts ............................................   Passed    0.22 sec
        Start 429: Revolute joint equation preserves oriented signed twist semantics
429/568 Test #429: Revolute joint equation preserves oriented signed twist semantics ................................   Passed    0.02 sec
        Start 430: Shared numeric system gives a regular rank six revolute drive
430/568 Test #430: Shared numeric system gives a regular rank six revolute drive ....................................   Passed    0.02 sec
        Start 431: Revolute motion solver moves and atomically applies an in-range joint coordinate
431/568 Test #431: Revolute motion solver moves and atomically applies an in-range joint coordinate .................   Passed    0.03 sec
        Start 432: Revolute motion enforces limits grounding activity and suppression boundaries
432/568 Test #432: Revolute motion enforces limits grounding activity and suppression boundaries ....................   Passed    0.02 sec
        Start 433: Revolute motion filters suppressed related joints and keeps full stale snapshots
433/568 Test #433: Revolute motion filters suppressed related joints and keeps full stale snapshots .................   Passed    0.03 sec
        Start 434: Revolute motion result application rejects stale component and joint inputs
434/568 Test #434: Revolute motion result application rejects stale component and joint inputs ......................   Passed    0.03 sec
        Start 435: Revolute motion holds other active joints at persisted coordinates
435/568 Test #435: Revolute motion holds other active joints at persisted coordinates ...............................   Passed    0.03 sec
        Start 436: Sampled root-local Revolute sweep classifies contact at deterministic inclusive coordinates
436/568 Test #436: Sampled root-local Revolute sweep classifies contact at deterministic inclusive coordinates ......   Passed    0.08 sec
        Start 437: Sampled Revolute sweep preserves caller interval direction
437/568 Test #437: Sampled Revolute sweep preserves caller interval direction .......................................   Passed    0.07 sec
        Start 438: Sampled cross-hierarchy Revolute sweep reuses atomic cross motion on fresh Project copies
438/568 Test #438: Sampled cross-hierarchy Revolute sweep reuses atomic cross motion on fresh Project copies ........   Passed    0.08 sec
        Start 439: Sampled Revolute sweep validates units bounds sample count and selected scope
439/568 Test #439: Sampled Revolute sweep validates units bounds sample count and selected scope ....................   Passed    0.02 sec
        Start 440: Sampled Revolute sweep fails closed with sample context when contact analysis fails
440/568 Test #440: Sampled Revolute sweep fails closed with sample context when contact analysis fails ..............   Passed    0.02 sec
        Start 441: Rigid-body solver solves and explicitly applies one movable planar Mate
441/568 Test #441: Rigid-body solver solves and explicitly applies one movable planar Mate ..........................   Passed    0.03 sec
        Start 442: Rigid-body solver corrects planar Distance translation and orientation
442/568 Test #442: Rigid-body solver corrects planar Distance translation and orientation ...........................   Passed    0.03 sec
        Start 443: Rigid-body solver uses deterministic constraint and variable ordering for a chain
443/568 Test #443: Rigid-body solver uses deterministic constraint and variable ordering for a chain ................   Passed    0.04 sec
        Start 444: Rigid-body solver defines grounded, suppressed, and connected-group participation
444/568 Test #444: Rigid-body solver defines grounded, suppressed, and connected-group participation ................   Passed    0.02 sec
        Start 445: Rigid-body solver exposes validation and semantic target failures
445/568 Test #445: Rigid-body solver exposes validation and semantic target failures ................................   Passed    0.02 sec
        Start 446: Non-converged and stale solve results cannot mutate project placement
446/568 Test #446: Non-converged and stale solve results cannot mutate project placement ............................   Passed    0.03 sec
        Start 447: Assembly solve diagnostics report local remaining DOF for planar constraints
447/568 Test #447: Assembly solve diagnostics report local remaining DOF for planar constraints .....................   Passed    0.03 sec
        Start 448: Assembly solve diagnostics identify locally full rank and deterministic chains
448/568 Test #448: Assembly solve diagnostics identify locally full rank and deterministic chains ...................   Passed    0.03 sec
        Start 449: Assembly solve diagnostics preserve fixed and non-converged solve states
449/568 Test #449: Assembly solve diagnostics preserve fixed and non-converged solve states .........................   Passed    0.03 sec
        Start 450: Assembly solve diagnostics expose rank tolerance and residual redundancy boundaries
450/568 Test #450: Assembly solve diagnostics expose rank tolerance and residual redundancy boundaries ..............   Passed    0.03 sec
        Start 451: Assembly solve diagnostics preserve semantic target failures and enum labels
451/568 Test #451: Assembly solve diagnostics preserve semantic target failures and enum labels .....................   Passed    0.02 sec
        Start 452: AssemblyStepExporter poses repeated part instances and preserves repeat-export geometry
452/568 Test #452: AssemblyStepExporter poses repeated part instances and preserves repeat-export geometry ..........   Passed    0.05 sec
        Start 453: AssemblyStepExporter excludes hidden and suppressed component occurrences
453/568 Test #453: AssemblyStepExporter excludes hidden and suppressed component occurrences ........................   Passed    0.03 sec
        Start 454: AssemblyStepExporter fails closed on an unresolvable project member
454/568 Test #454: AssemblyStepExporter fails closed on an unresolvable project member ..............................   Passed    0.02 sec
        Start 455: AssemblyStepExporter fails when a referenced part recomputes without a final shape
455/568 Test #455: AssemblyStepExporter fails when a referenced part recomputes without a final shape ...............   Passed    0.02 sec
        Start 456: Structured STEP reuses one part definition for repeated root components
456/568 Test #456: Structured STEP reuses one part definition for repeated root components ..........................   Passed    0.05 sec
        Start 457: Structured STEP preserves repeated child and nested assembly occurrence products
457/568 Test #457: Structured STEP preserves repeated child and nested assembly occurrence products .................   Passed    0.06 sec
        Start 458: Structured STEP mirrors visible-active component and hierarchy filtering
458/568 Test #458: Structured STEP mirrors visible-active component and hierarchy filtering .........................   Passed    0.03 sec
        Start 459: Structured STEP fails closed without an output path or exported component
459/568 Test #459: Structured STEP fails closed without an output path or exported component ........................   Passed    0.02 sec
        Start 460: A suppressed middle component splits the numeric system deterministically
460/568 Test #460: A suppressed middle component splits the numeric system deterministically ........................   Passed    0.02 sec
        Start 461: A suppressed grounded component keeps the remaining subgroup solvable
461/568 Test #461: A suppressed grounded component keeps the remaining subgroup solvable ............................   Passed    0.02 sec
        Start 462: A subgroup without a grounded active component is still rejected
462/568 Test #462: A subgroup without a grounded active component is still rejected .................................   Passed    0.02 sec
        Start 463: Unsuppressing a component after solving makes the result stale
463/568 Test #463: Unsuppressing a component after solving makes the result stale ...................................   Passed    0.02 sec
        Start 464: Suppression diagnostics report rank only over active components
464/568 Test #464: Suppression diagnostics report rank only over active components ..................................   Passed    0.03 sec
        Start 465: Assembly target compatibility resolver covers the supported relationship matrix
465/568 Test #465: Assembly target compatibility resolver covers the supported relationship matrix ..................   Passed    0.02 sec
        Start 466: Assembly target compatibility resolver fails closed for incompatible pairs
466/568 Test #466: Assembly target compatibility resolver fails closed for incompatible pairs .......................   Passed    0.02 sec
        Start 467: Assembly target compatibility resolver is deterministic for multi-capability targets
467/568 Test #467: Assembly target compatibility resolver is deterministic for multi-capability targets .............   Passed    0.02 sec
        Start 468: Assembly target compatibility resolves current local target families without mutation
468/568 Test #468: Assembly target compatibility resolves current local target families without mutation ............   Passed    0.03 sec
        Start 469: Assembly equation builders consume compatibility before projection
469/568 Test #469: Assembly equation builders consume compatibility before projection ...............................   Passed    0.02 sec
        Start 470: Local and cross-hierarchy target compatibility agree for the same semantic families
470/568 Test #470: Local and cross-hierarchy target compatibility agree for the same semantic families ..............   Passed    0.02 sec
        Start 471: Cross-hierarchy equation builder consumes target compatibility
471/568 Test #471: Cross-hierarchy equation builder consumes target compatibility ...................................   Passed    0.02 sec
        Start 472: Assembly transform evaluator preserves identity and applies translation only to points
472/568 Test #472: Assembly transform evaluator preserves identity and applies translation only to points ...........   Passed    0.02 sec
        Start 473: Assembly transform evaluator applies right-handed single-axis rotations
473/568 Test #473: Assembly transform evaluator applies right-handed single-axis rotations ..........................   Passed    0.02 sec
        Start 474: Assembly transform evaluator proves X then Y then Z rotation order
474/568 Test #474: Assembly transform evaluator proves X then Y then Z rotation order ...............................   Passed    0.02 sec
        Start 475: Assembly transform evaluator maps a resolved target plane into assembly space
475/568 Test #475: Assembly transform evaluator maps a resolved target plane into assembly space ....................   Passed    0.02 sec
        Start 476: Assembly transform evaluation is deterministic, length-preserving, and read-only
476/568 Test #476: Assembly transform evaluation is deterministic, length-preserving, and read-only .................   Passed    0.02 sec
        Start 477: Back-face workplane recomputes an axis-directed through-all circular cut
477/568 Test #477: Back-face workplane recomputes an axis-directed through-all circular cut .........................   Passed    0.03 sec
        Start 478: Back-face workplane rejects holes outside side-face bounds
478/568 Test #478: Back-face workplane rejects holes outside side-face bounds .......................................   Passed    0.02 sec
        Start 479: Bolt circle pattern cuts the parametric hole count
479/568 Test #479: Bolt circle pattern cuts the parametric hole count ...............................................   Passed    0.07 sec
        Start 480: Changing the bolt count recomputes the bolt circle incrementally
480/568 Test #480: Changing the bolt count recomputes the bolt circle incrementally .................................   Passed    0.17 sec
        Start 481: Changing the bolt circle radius recomputes hole positions
481/568 Test #481: Changing the bolt circle radius recomputes hole positions ........................................   Passed    0.11 sec
        Start 482: Bolt circle pattern rejects holes outside the resolved bounds
482/568 Test #482: Bolt circle pattern rejects holes outside the resolved bounds ....................................   Passed    0.03 sec
        Start 483: WorkplaneResolver resolves construction planes parallel to planes through points
483/568 Test #483: WorkplaneResolver resolves construction planes parallel to planes through points .................   Passed    0.02 sec
        Start 484: CircularCutAdapter cuts a through-all hole and keeps a single solid
484/568 Test #484: CircularCutAdapter cuts a through-all hole and keeps a single solid ..............................   Passed    0.03 sec
        Start 485: CircularCutAdapter rejects an empty target shape
485/568 Test #485: CircularCutAdapter rejects an empty target shape .................................................   Passed    0.02 sec
        Start 486: Geometry recomputes an additive closed triangle profile
486/568 Test #486: Geometry recomputes an additive closed triangle profile ..........................................   Passed    0.02 sec
        Start 487: Geometry recomputes a subtractive through-all closed profile cut
487/568 Test #487: Geometry recomputes a subtractive through-all closed profile cut .................................   Passed    0.03 sec
        Start 488: Geometry recomputes additive extrude from composite closed profile with a hole
488/568 Test #488: Geometry recomputes additive extrude from composite closed profile with a hole ...................   Passed    0.02 sec
        Start 489: Geometry recomputes subtractive cut from composite closed profile with a hole
489/568 Test #489: Geometry recomputes subtractive cut from composite closed profile with a hole ....................   Passed    0.04 sec
        Start 490: Geometry recomputes a closed profile on an explicit construction plane
490/568 Test #490: Geometry recomputes a closed profile on an explicit construction plane ...........................   Passed    0.02 sec
        Start 491: Geometry recomputes a rectangle profile on an angled construction plane
491/568 Test #491: Geometry recomputes a rectangle profile on an angled construction plane ..........................   Passed    0.02 sec
        Start 492: Geometry recomputes a circular through-all cut on an angled construction plane
492/568 Test #492: Geometry recomputes a circular through-all cut on an angled construction plane ...................   Passed    0.04 sec
        Start 493: Geometry recomputes a closed profile on an offset construction plane relation
493/568 Test #493: Geometry recomputes a closed profile on an offset construction plane relation ....................   Passed    0.02 sec
        Start 494: WorkplaneResolver resolves explicit construction plane frames
494/568 Test #494: WorkplaneResolver resolves explicit construction plane frames ....................................   Passed    0.02 sec
        Start 495: WorkplaneResolver resolves offset construction plane relations
495/568 Test #495: WorkplaneResolver resolves offset construction plane relations ...................................   Passed    0.02 sec
        Start 496: WorkplaneResolver resolves construction planes through three points
496/568 Test #496: WorkplaneResolver resolves construction planes through three points ..............................   Passed    0.02 sec
        Start 497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane
497/568 Test #497: MVP-2 seed recomputes a cut from a sketch on a derived top-face workplane ........................   Passed    0.03 sec
        Start 498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane
498/568 Test #498: MVP-2 seed recomputes a cut from a sketch on a derived bottom-face workplane .....................   Passed    0.03 sec
        Start 499: Derived top-face workplane cut follows an off-center sketch point
499/568 Test #499: Derived top-face workplane cut follows an off-center sketch point ................................   Passed    0.03 sec
        Start 500: Derived top-face workplane accepts a near-edge hole inside the face bounds
500/568 Test #500: Derived top-face workplane accepts a near-edge hole inside the face bounds .......................   Passed    0.03 sec
        Start 501: Derived top-face workplane rejects holes outside the face bounds
501/568 Test #501: Derived top-face workplane rejects holes outside the face bounds .................................   Passed    0.02 sec
        Start 502: Incremental recompute follows derived-workplane dependency paths
502/568 Test #502: Incremental recompute follows derived-workplane dependency paths .................................   Passed    0.03 sec
        Start 503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base
503/568 Test #503: Incremental recompute rejects a previously valid derived-workplane hole after shrinking base .....   Passed    0.03 sec
        Start 504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices
504/568 Test #504: DimensionDrivenProfileResolver resolves dimensioned closed profile vertices ......................   Passed    0.02 sec
        Start 505: Geometry recomputes additive extrude from dimension-driven profile
505/568 Test #505: Geometry recomputes additive extrude from dimension-driven profile ...............................   Passed    0.02 sec
        Start 506: Front-face workplane recomputes an axis-directed through-all circular cut
506/568 Test #506: Front-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.03 sec
        Start 507: Front-face workplane rejects holes outside side-face bounds
507/568 Test #507: Front-face workplane rejects holes outside side-face bounds ......................................   Passed    0.02 sec
        Start 508: Left-face workplane recomputes an axis-directed through-all circular cut
508/568 Test #508: Left-face workplane recomputes an axis-directed through-all circular cut .........................   Passed    0.03 sec
        Start 509: Left-face workplane rejects holes outside side-face bounds
509/568 Test #509: Left-face workplane rejects holes outside side-face bounds .......................................   Passed    0.02 sec
        Start 510: A formula-driven length drives geometry recompute through the dependency graph
510/568 Test #510: A formula-driven length drives geometry recompute through the dependency graph ...................   Passed    0.02 sec
        Start 511: GeometryRecomputeExecutor executes an additive extrude into the shape cache
511/568 Test #511: GeometryRecomputeExecutor executes an additive extrude into the shape cache ......................   Passed    0.02 sec
        Start 512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan
512/568 Test #512: GeometryRecomputeExecutor executes additive feature nodes from a recompute plan ..................   Passed    0.02 sec
        Start 513: GeometryRecomputeExecutor rejects missing feature ids
513/568 Test #513: GeometryRecomputeExecutor rejects missing feature ids ............................................   Passed    0.02 sec
        Start 514: GeometryRecomputeExecutor rejects unsupported additive sketches
514/568 Test #514: GeometryRecomputeExecutor rejects unsupported additive sketches ..................................   Passed    0.02 sec
        Start 515: GeometryRecomputeExecutor cuts a central hole into a cached base body
515/568 Test #515: GeometryRecomputeExecutor cuts a central hole into a cached base body ............................   Passed    0.03 sec
        Start 516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan
516/568 Test #516: GeometryRecomputeExecutor runs additive then subtractive nodes from a plan .......................   Passed    0.03 sec
        Start 517: GeometryRecomputeExecutor requires the target body in the cache before cutting
517/568 Test #517: GeometryRecomputeExecutor requires the target body in the cache before cutting ...................   Passed    0.02 sec
        Start 518: GeometryRecomputeExecutor rejects unsupported subtractive sketches
518/568 Test #518: GeometryRecomputeExecutor rejects unsupported subtractive sketches ...............................   Passed    0.02 sec
        Start 519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths
519/568 Test #519: RectangleExtrusionAdapter creates one OCCT solid from positive lengths ...........................   Passed    0.02 sec
        Start 520: GeometryShape defaults to an empty geometry handle
520/568 Test #520: GeometryShape defaults to an empty geometry handle ...............................................   Passed    0.02 sec
        Start 521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints
521/568 Test #521: ReferenceDrivenSketchHelper resolves projected-point and projected-line constraints ..............   Passed    0.02 sec
        Start 522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points
522/568 Test #522: ReferenceDrivenSketchHelper creates deterministic profile helper lines from projected points .....   Passed    0.02 sec
        Start 523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices
523/568 Test #523: ReferenceGeneratedProfileResolver resolves first-class helper profile vertices ...................   Passed    0.02 sec
        Start 524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction
524/568 Test #524: ReferenceGeneratedProfileResolver rejects mismatched projected-line direction ....................   Passed    0.02 sec
        Start 525: Geometry recomputes additive extrude from reference-generated helper profile
525/568 Test #525: Geometry recomputes additive extrude from reference-generated helper profile .....................   Passed    0.02 sec
        Start 526: Geometry recomputes subtractive cut from reference-generated helper profile
526/568 Test #526: Geometry recomputes subtractive cut from reference-generated helper profile ......................   Passed    0.03 sec
        Start 527: MVP-1 reference part recomputes the whole document and exports a STEP file
527/568 Test #527: MVP-1 reference part recomputes the whole document and exports a STEP file .......................   Passed    0.04 sec
        Start 528: MVP-1 reference part recomputes a larger hole incrementally
528/568 Test #528: MVP-1 reference part recomputes a larger hole incrementally ......................................   Passed    0.04 sec
        Start 529: MVP-1 reference part can be restored from JSON and recomputed
529/568 Test #529: MVP-1 reference part can be restored from JSON and recomputed ....................................   Passed    0.04 sec
        Start 530: Right-face workplane recomputes an axis-directed through-all circular cut
530/568 Test #530: Right-face workplane recomputes an axis-directed through-all circular cut ........................   Passed    0.03 sec
        Start 531: Right-face workplane rejects holes outside side-face bounds
531/568 Test #531: Right-face workplane rejects holes outside side-face bounds ......................................   Passed    0.02 sec
        Start 532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices
532/568 Test #532: SemanticReferenceEvaluator resolves rectangular additive extrude edges and vertices ..............   Passed    0.02 sec
        Start 533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints
533/568 Test #533: ConstructionPointResolver resolves generated vertex points and generated edge midpoints ..........   Passed    0.02 sec
        Start 534: ConstructionLineResolver resolves deterministic chained construction lines
534/568 Test #534: ConstructionLineResolver resolves deterministic chained construction lines .......................   Passed    0.02 sec
        Start 535: ShapeCache starts empty with a stable id
535/568 Test #535: ShapeCache starts empty with a stable id .........................................................   Passed    0.02 sec
        Start 536: ShapeCache rejects empty cache ids
536/568 Test #536: ShapeCache rejects empty cache ids ...............................................................   Passed    0.02 sec
        Start 537: ShapeCache stores and finds feature shapes
537/568 Test #537: ShapeCache stores and finds feature shapes .......................................................   Passed    0.02 sec
        Start 538: ShapeCache updates existing feature shapes instead of duplicating them
538/568 Test #538: ShapeCache updates existing feature shapes instead of duplicating them ...........................   Passed    0.02 sec
        Start 539: ShapeCache tracks the final shape and source feature
539/568 Test #539: ShapeCache tracks the final shape and source feature .............................................   Passed    0.02 sec
        Start 540: ShapeCache removes cached feature shapes
540/568 Test #540: ShapeCache removes cached feature shapes .........................................................   Passed    0.02 sec
        Start 541: ShapeCache removes the final shape when its source feature is removed
541/568 Test #541: ShapeCache removes the final shape when its source feature is removed ............................   Passed    0.02 sec
        Start 542: ShapeCache remove reports false for missing feature shapes
542/568 Test #542: ShapeCache remove reports false for missing feature shapes .......................................   Passed    0.02 sec
        Start 543: ShapeCache clear removes cached feature and final shapes
543/568 Test #543: ShapeCache clear removes cached feature and final shapes .........................................   Passed    0.02 sec
        Start 544: ShapeCache rejects empty feature ids and empty shapes
544/568 Test #544: ShapeCache rejects empty feature ids and empty shapes ............................................   Passed    0.02 sec
        Start 545: SketchReferenceProjector projects semantic generated refs into sketch space
545/568 Test #545: SketchReferenceProjector projects semantic generated refs into sketch space ......................   Passed    0.02 sec
        Start 546: SketchReferenceProjector projects construction references into sketch space
546/568 Test #546: SketchReferenceProjector projects construction references into sketch space ......................   Passed    0.02 sec
        Start 547: SketchReferenceProjector rejects out-of-plane projected points
547/568 Test #547: SketchReferenceProjector rejects out-of-plane projected points ...................................   Passed    0.02 sec
        Start 548: SketchRegionFinder detects a deterministic single region from unordered explicit lines
548/568 Test #548: SketchRegionFinder detects a deterministic single region from unordered explicit lines ...........   Passed    0.02 sec
        Start 549: SketchRegionFinder rejects branched regions
549/568 Test #549: SketchRegionFinder rejects branched regions ......................................................   Passed    0.02 sec
        Start 550: Geometry recomputes additive extrude from detected sketch region
550/568 Test #550: Geometry recomputes additive extrude from detected sketch region .................................   Passed    0.02 sec
        Start 551: Geometry recomputes subtractive cut from detected sketch region
551/568 Test #551: Geometry recomputes subtractive cut from detected sketch region ..................................   Passed    0.03 sec
        Start 552: Geometry recomputes additive extrude from spline closed profile
552/568 Test #552: Geometry recomputes additive extrude from spline closed profile ..................................   Passed    0.02 sec
        Start 553: Geometry recomputes subtractive cut from spline closed profile
553/568 Test #553: Geometry recomputes subtractive cut from spline closed profile ...................................   Passed    0.06 sec
        Start 554: StepExporter writes a valid non-empty STEP file for a cut plate
554/568 Test #554: StepExporter writes a valid non-empty STEP file for a cut plate ..................................   Passed    0.03 sec
        Start 555: StepExporter rejects an empty shape
555/568 Test #555: StepExporter rejects an empty shape ..............................................................   Passed    0.02 sec
        Start 556: StepExporter rejects an empty path
556/568 Test #556: StepExporter rejects an empty path ...............................................................   Passed    0.03 sec
        Start 557: WorkplaneResolver resolves standard datum planes
557/568 Test #557: WorkplaneResolver resolves standard datum planes .................................................   Passed    0.02 sec
        Start 558: WorkplaneResolver resolves additive-extrude top-face workplanes
558/568 Test #558: WorkplaneResolver resolves additive-extrude top-face workplanes ..................................   Passed    0.02 sec
        Start 559: WorkplaneResolver resolves additive-extrude bottom-face workplanes
559/568 Test #559: WorkplaneResolver resolves additive-extrude bottom-face workplanes ...............................   Passed    0.02 sec
        Start 560: WorkplaneResolver resolves additive-extrude right-face workplanes
560/568 Test #560: WorkplaneResolver resolves additive-extrude right-face workplanes ................................   Passed    0.02 sec
        Start 561: WorkplaneResolver resolves additive-extrude left-face workplanes
561/568 Test #561: WorkplaneResolver resolves additive-extrude left-face workplanes .................................   Passed    0.02 sec
        Start 562: WorkplaneResolver resolves additive-extrude front-face workplanes
562/568 Test #562: WorkplaneResolver resolves additive-extrude front-face workplanes ................................   Passed    0.02 sec
        Start 563: WorkplaneResolver resolves additive-extrude back-face workplanes
563/568 Test #563: WorkplaneResolver resolves additive-extrude back-face workplanes .................................   Passed    0.02 sec
        Start 564: WorkplaneResolver maps side-face local sketch points through resolved frames
564/568 Test #564: WorkplaneResolver maps side-face local sketch points through resolved frames .....................   Passed    0.02 sec
        Start 565: WorkplaneResolver rejects missing workplanes
565/568 Test #565: WorkplaneResolver rejects missing workplanes .....................................................   Passed    0.02 sec
        Start 566: Generated-face sketch workplane origin follows source feature dimensions
566/568 Test #566: Generated-face sketch workplane origin follows source feature dimensions .........................   Passed    0.02 sec
        Start 567: Sketch origin override shifts the resolved sketch-local frame
567/568 Test #567: Sketch origin override shifts the resolved sketch-local frame ....................................   Passed    0.02 sec
        Start 568: Reference recovery evaluator reports missing generated source instead of remapping
568/568 Test #568: Reference recovery evaluator reports missing generated source instead of remapping ...............   Passed    0.02 sec

99% tests passed, 1 tests failed out of 568

Total Test time (real) =   8.68 sec

The following tests FAILED:
	337 - Generic direction equations support Line Axis and Plane capabilities (Failed)
Errors while running CTest
===== focused tag: [geometry][assembly-generic-relationships] =====
Filters: [geometry] [assembly-generic-relationships]
Randomness seeded to: 3741665865

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blcad_geometry_tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
Generic direction equations support Line Axis and Plane capabilities
-------------------------------------------------------------------------------
/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:254
...............................................................................

/home/runner/work/Better-Linux-CAD/Better-Linux-CAD/tests/geometry/assembly_generic_relationship_equation_tests.cpp:268: FAILED:
  CHECK( parallel_line_axis.value().compatibility.target_b_capability == AssemblyGeometricTargetCapability::Axis )
with expansion:
  2 == 1

===============================================================================
test cases:  2 |  1 passed | 1 failed
assertions: 32 | 31 passed | 1 failed

===== focused tag: [geometry][assembly-generic-relationships-solver] =====
Filters: [geometry] [assembly-generic-relationships-solver]
Randomness seeded to: 3221593107
===============================================================================
All tests passed (74 assertions in 1 test case)

===== focused tag: [geometry][assembly-generic-relationships-cross-hierarchy] =====
Filters: [geometry] [assembly-generic-relationships-cross-hierarchy]
Randomness seeded to: 2089309177
===============================================================================
All tests passed (205 assertions in 3 test cases)

===== focused tag: [geometry][assembly-generic-relationships-diagnostics] =====
Filters: [geometry] [assembly-generic-relationships-diagnostics]
Randomness seeded to: 3853301936
===============================================================================
All tests passed (149 assertions in 2 test cases)

===== focused tag: [geometry][assembly-target-compatibility] =====
Filters: [geometry] [assembly-target-compatibility]
Randomness seeded to: 1637011955
===============================================================================
All tests passed (346 assertions in 6 test cases)

===== focused tag: [geometry][assembly-cross-hierarchy-target-compatibility] =====
Filters: [geometry] [assembly-cross-hierarchy-target-compatibility]
Randomness seeded to: 2827711716
===============================================================================
All tests passed (189 assertions in 2 test cases)

Geometry workflow status: 8
Focused test status: 1
The following paths are ignored by one of your .gitignore files:
debug/block39-focused.log
hint: Use -f if you really want to add them.
hint: Disable this message with "git config set advice.addIgnoredFile false"

@GideonBa
GideonBa marked this pull request as ready for review July 13, 2026 11:01
@GideonBa
GideonBa merged commit f98a524 into main Jul 13, 2026
1 check failed
@GideonBa
GideonBa deleted the block39-generic-relationship-equations branch July 18, 2026 13:28
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.

1 participant