45 lines
744 B
TypeScript
45 lines
744 B
TypeScript
import { describe } from 'bun:test'
|
|
import { expect, test } from 'bun:test'
|
|
|
|
describe('while', () => {
|
|
test('basic variable', () => {
|
|
expect(`
|
|
a = true
|
|
b = ''
|
|
while a:
|
|
a = false
|
|
b = done
|
|
end
|
|
b`).toEvaluateTo('done')
|
|
})
|
|
|
|
test('basic expression', () => {
|
|
expect(`
|
|
a = 0
|
|
while a < 10:
|
|
a += 1
|
|
end
|
|
a`).toEvaluateTo(10)
|
|
})
|
|
|
|
test('compound expression', () => {
|
|
expect(`
|
|
a = 1
|
|
b = 0
|
|
while a > 0 and b < 100:
|
|
b += 1
|
|
end
|
|
b`).toEvaluateTo(100)
|
|
})
|
|
|
|
test('returns value', () => {
|
|
expect(`
|
|
a = 0
|
|
ret = while a < 10:
|
|
a += 1
|
|
done
|
|
end
|
|
ret`).toEvaluateTo('done')
|
|
})
|
|
})
|