42 lines
845 B
Text
42 lines
845 B
Text
(namespace tests.loop
|
|
(test.case "while.basic-true"
|
|
(def counter 0)
|
|
(while (eq? counter 0)
|
|
(set! counter 1))
|
|
(assert.eq! counter 1)
|
|
)
|
|
|
|
(test.case "while.condition-false"
|
|
(def counter 5)
|
|
(while (lt? counter 0)
|
|
(set! counter (+ counter 1)))
|
|
(assert.eq! counter 5)
|
|
)
|
|
|
|
(test.case "while.counting-loop"
|
|
(def n 0)
|
|
(while (lt? n 10)
|
|
(set! n (+ n 1)))
|
|
(assert.eq! n 10)
|
|
)
|
|
|
|
(test.case "while.loop-condition-reached"
|
|
(def i 0)
|
|
(while (lt? i 5)
|
|
(set! i (+ i 1)))
|
|
(assert.eq! i 5)
|
|
)
|
|
|
|
(test.case "while.nested"
|
|
(def outer 0)
|
|
(def inner 0)
|
|
(def total 0)
|
|
(while (lt? outer 3)
|
|
(set! inner 0)
|
|
(while (lt? inner 2)
|
|
(set! total (+ total 1))
|
|
(set! inner (+ inner 1)))
|
|
(set! outer (+ outer 1)))
|
|
(assert.eq! total 6)
|
|
)
|
|
)
|