* Send multiple errors and warnings to the frontend and LSP Signed-off-by: Nick Cameron <nrc@ncameron.org> * Refactor the parser to use CompilationError for parsing errors rather than KclError Signed-off-by: Nick Cameron <nrc@ncameron.org> * Refactoring: move CompilationError, etc. Signed-off-by: Nick Cameron <nrc@ncameron.org> * Integrate compilation errors with the frontend and CodeMirror Signed-off-by: Nick Cameron <nrc@ncameron.org> * Fix tests Signed-off-by: Nick Cameron <nrc@ncameron.org> * Review comments Signed-off-by: Nick Cameron <nrc@ncameron.org> * Fix module id/source range stuff Signed-off-by: Nick Cameron <nrc@ncameron.org> * More test fixups Signed-off-by: Nick Cameron <nrc@ncameron.org> --------- Signed-off-by: Nick Cameron <nrc@ncameron.org>
26 lines
862 B
TypeScript
26 lines
862 B
TypeScript
import { assertParse, 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(assertParse(code('-1')))
|
|
expect(execState.memory.get('intersect')?.value).toBe(1 + Math.sqrt(2))
|
|
const noOffset = await enginelessExecutor(assertParse(code('0')))
|
|
expect(noOffset.memory.get('intersect')?.value).toBeCloseTo(1)
|
|
})
|
|
})
|