aboutsummaryrefslogtreecommitdiff
path: root/tests/control_flow.nom
diff options
context:
space:
mode:
authorBruce Hill <bitbucket@bruce-hill.com>2018-07-22 16:33:11 -0700
committerBruce Hill <bitbucket@bruce-hill.com>2018-07-22 16:33:11 -0700
commitd38020bc5ac0fe7b6ff060c62943c277d4beb3bf (patch)
tree032a888313e2abc71cc8cbd3689aec202737d695 /tests/control_flow.nom
parent5224199fcf017101de224574c0a6ab502d7dd772 (diff)
Actually removing the tests now that they're inline.
Diffstat (limited to 'tests/control_flow.nom')
-rw-r--r--tests/control_flow.nom176
1 files changed, 0 insertions, 176 deletions
diff --git a/tests/control_flow.nom b/tests/control_flow.nom
deleted file mode 100644
index 72adc5a..0000000
--- a/tests/control_flow.nom
+++ /dev/null
@@ -1,176 +0,0 @@
-#!/usr/bin/env nomsu -V2.5.4.3
-#
- Tests for the stuff defined in core/control_flow.nom
-
-use "core"
-
-do nothing
-action [test conditionals]:
- if (yes): %loc1 = (yes)
- if (no):
- barf "entered if 'no' conditional"
- unless (yes):
- barf "entered unless 'yes' conditional"
- if (yes): %loc2 = (yes)
- ..else:
- barf "entered if 'yes' else conditional"
-
- unless (no) (%loc3 = (yes)) else (barf "entered unless 'no' else conditional")
-
-assume (all of [%loc1 == (nil), %loc2 == (nil), %loc3 == (nil)]) or barf ".."
- conditionals leaking locals
-
-assume ((5 if (yes) else 1) == 5)
-assume ((5 if (no) else 1) == 1)
-action [return nil] (return (nil))
-assume (((return nil) if (yes) else 99) == (nil))
-go to %skip
-barf "go-to failed."
---- %skip ---
-%tot = 0
-for %x in [1, 2, 3]: %tot += %x
-assume (%tot == 6) or barf "for-loop failed"
-%x = 0
-repeat:
- %x += 1
- if (%x == 3): stop repeating
- if (%x > 3):
- barf "Failed to stop repeat loop"
-
-assume (%x == 3) or barf "Failed to repeat"
-%x = 0
-repeat 5 times: %x += 1
-assume (%x == 5) or barf "Failed to repeat 5 times"
-set {%x:0, %y:0}
-for % in [1, 2, 3]:
- repeat 5 times:
- do next repeat
- %x += 1
-
- %y += 1
-
-assume ([%x, %y] == [0, 3]) or barf "Failed to continue repeat"
-set {%x:0, %y:0}
-for % in [1, 2, 3]:
- repeat 5 times:
- do next %
- %x += 1
-
- %y += 1
-
-assume ([%x, %y] == [0, 0]) or barf "Failed to continue for"
-set {%x:0, %y:0}
-for % in [1, 2, 3]:
- repeat 5 times:
- stop repeating
- %x += 1
-
- %y += 1
-
-assume ([%x, %y] == [0, 3]) or barf "Failed to stop repeat"
-set {%x:0, %y:0}
-for % in [1, 2, 3]:
- repeat 5 times:
- stop %
- %x += 1
-
- %y += 1
-
-assume ([%x, %y] == [0, 0]) or barf "Failed to stop for"
-%x = 0
-repeat while (%x < 10): %x += 1
-assume (%x == 10) or barf "repeat-while failed"
-%x = 0
-repeat until (%x == 10): %x += 1
-assume (%x == 10) or barf "repeat-until failed"
-%x = 0
-for %i in 1 to 3: %x += %i
-assume (%x == 6) or barf "Numeric for range failed"
-%x = 0
-for %i in 3 to 1 via -1: %x += %i
-assume (%x == 6) or barf "backwards numeric for range failed"
-%result = {}
-for %key = %value in {x:1, y:2}:
- %result."\%key\%key" = (%value * 11)
-
-assume (%result == {xx:11, yy:22}) or barf "key/value iteration failed"
-for %key = %value in {x:1, y:2}:
- stop %key
- barf "stopping key failed"
-
-for %key = %value in {x:1, y:2}:
- stop %value
- barf "stopping value failed"
-
-for %key = %value in {x:1}:
- stop %key
- stop %value
- do next %key
- do next %value
-
-for %key = %value in {x:1, y:2}:
- do next %key
- barf "skipping key failed"
-
-for %key = %value in {x:1, y:2}:
- do next %value
- barf "skipping value failed"
-
-action [barfer]:
- barf "this should never be reached"
-
-if:
- (no): barf "'when' fail"
- (no) (3 > 4):
- barf "'when' fail 2"
- (yes) (barfer): do nothing
- (99 > 1):
- barf "Fell through incorrectly"
-
-%else_worked = (no)
-if:
- (no): barf
- else:
- %else_worked = (yes)
-
-assume %else_worked or barf "when..else failed"
-action [test when scope]:
- if (yes): %leaked = (yes)
-
-test when scope
-assume (not %leaked) or barf "'when' is leaking locals"
-%when_worked = (no)
-if 4 is:
- 1 2:
- barf "'when = ?' fail"
- 3 4 (barfer):
- %when_worked = (yes)
-
-assume %when_worked
-%when_worked = (no)
-if 5 is:
- 6: barf
- else:
- %when_worked = (yes)
-
-assume %when_worked
-%x = 1
-do: %x = 2
-assume (%x == 2) or barf "'do' is redefining locals"
-assume (..)
- (..)
- result of:
- %n = 0
- for % in [1, 2, 3]: %n += %
- return %n
- ..== 6
-
-%t = [1, [2, [[3], 4], 5, [[[6]]]]]
-%flat = []
-for % in recursive %t:
- if ((type of %) is "table"):
- for %2 in %: recurse % on %2
- ..else: add % to %flat
-
-assume ((sorted %flat) == [1, 2, 3, 4, 5, 6])
-say "Control flow test passed."