import assert from 'node:assert/strict' import createOcctHistory from './dist/bitbybit-occt-history.js' const occt = await createOcctHistory() assert.match(occt.occtVersion(), /^8\./) const object = occt.makeBox(10, 10, 10) const tool = occt.makeBox(5, 5, 5) const response = occt.booleanHistory(object, tool, 'cut') const objectStep = occt.shapeToStep(object) const toolStep = occt.shapeToStep(tool) assert.match(objectStep, /^ISO-10303-21;/) assert.match(toolStep, /^ISO-10303-21;/) const serializedResponse = occt.booleanHistoryFromStep(objectStep, toolStep, 'cut') assert.equal(response.provider, 'occt-native') assert.equal(response.records.every((record) => ['generated', 'modified', 'deleted'].includes(record.relation)), true) assert.equal(typeof response.hasModified, 'boolean') assert.equal(typeof response.hasGenerated, 'boolean') assert.equal(typeof response.hasDeleted, 'boolean') assert.equal(serializedResponse.provider, 'occt-native') assert.equal(serializedResponse.records.length > 0, true) assert.match(serializedResponse.resultStep, /^ISO-10303-21;/) console.log(JSON.stringify({ occtVersion: response.occtVersion, recordCount: response.records.length, hasModified: response.hasModified, hasGenerated: response.hasGenerated, hasDeleted: response.hasDeleted }, null, 2))