* Add ID generator to ExecState
* Change default plane IDs to be hardcoded
* Fix lint warning
* Add exposing ID generator as output of executor
* Change to use generated definition of ExecState in TS
* Fix IdGenerator to use camel case in TS
* Fix TS type errors
* Add exposing id_generator parameter
* Add using the previously generated ID generator
* wip: Add display of feature tree in debug pane
* Remove artifact graph augmentation
* Change default planes to use id generator instead of hardcoded UUIDs
* Fix to reuse previously generated IDs
* Add e2e test
* Change feature tree to be collapsed by default
* Remove debug prints
* Fix unit test to use execState
* Fix type to be more general
* Remove outdated comment
* Update derive-docs output
* Fix object display component to be more general
* Remove unused ArtifactId type
* Fix test to be less brittle
* Remove codeRef and pathToNode from display
* Fix to remove test.only
Co-authored-by: Frank Noirot <frank@zoo.dev>
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Move plane conversion code to be next to type
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)"
This reverts commit 3455cc951b.
* Rename file
* Rename components and add doc comments
* Revive the collapse button
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Confirm
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Confirm
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Confirm
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
26 lines
844 B
TypeScript
26 lines
844 B
TypeScript
import { parse, initPromise } from '../wasm'
|
|
import { enginelessExecutor } from '../../lib/testHelpers'
|
|
|
|
beforeAll(async () => {
|
|
await initPromise
|
|
})
|
|
|
|
describe('testing angledLineThatIntersects', () => {
|
|
it('angledLineThatIntersects should intersect with another line', async () => {
|
|
const code = (offset: string) => `part001 = startSketchOn('XY')
|
|
|> startProfileAt([0, 0], %)
|
|
|> lineTo([2, 2], %, $yo)
|
|
|> lineTo([3, 1], %)
|
|
|> angledLineThatIntersects({
|
|
angle: 180,
|
|
intersectTag: yo,
|
|
offset: ${offset},
|
|
}, %, $yo2)
|
|
intersect = segEndX(yo2)`
|
|
const execState = await enginelessExecutor(parse(code('-1')))
|
|
expect(execState.memory.get('intersect')?.value).toBe(1 + Math.sqrt(2))
|
|
const noOffset = await enginelessExecutor(parse(code('0')))
|
|
expect(noOffset.memory.get('intersect')?.value).toBeCloseTo(1)
|
|
})
|
|
})
|