48 lines
771 B
TypeScript
48 lines
771 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')
|
|
})
|
|
}) |