Skip to content

v0.7.0 — Real-shape STEP integration tests

Choose a tag to compare

@gsdali gsdali released this 03 May 09:32
· 13 commits to main since this release
c0eb09a

Real-shape STEP integration tests. The end-to-end pipeline (CADFileLoader.loadInteractiveContext.display → synthetic PickResultSelection) now runs against actual machined-part geometry, not just OCCT primitives.

New

  • Tests/OCCTSwiftAISTests/Fixtures/ — three small (~16 KB) committed stock STEP files. Wired through Package.swift via resources: [.copy("Fixtures")] and accessed via Bundle.module.url(forResource:withExtension:subdirectory:).
  • STEPIntegrationTests.swift adds two suites:
    • Stock suite (.serialized, @MainActor): 7 parametrised tests × 3 fixtures = 21 cases covering load, six-face / twelve-edge / eight-vertex topology, non-degenerate bounds, mesh tessellation, edge / vertex pick buffer population, face + vertex pick round-trips, linear dimension across opposite parallel faces matching a bbox extent, remap preserving identical topology.
    • WIP suite (.serialized, skip-on-missing): same shape on multi-MB machined-part WIP files in test_files/ (gitignored). Silently passes when the files are absent — CI without them stays green; devs with them get extended coverage.
  • .gitignore excludes test_files/ so the committed fixtures stay small (~48 KB total).

Notes

.serialized is required on both suites — the OCCT NCollection arm64 race triggers SIGSEGV under Swift Testing's intra-process parallelism even with --num-workers 1 (which controls processes, not in-process tasks). Existing AIS test suites that don't touch real STEP geometry don't need it; only suites that go through CADFileLoader do.

Tests

155 across 14 suites, all green. Stock suite is sub-second; WIP suite ~15 s on three multi-MB files (when present locally).

Dependencies

Unchanged from v0.6.3.