Skip to content

Commit 4d711d8

Browse files
committed
TEST: using some of Red language SWITCH unit tests
1 parent 6588c30 commit 4d711d8

File tree

1 file changed

+167
-0
lines changed

1 file changed

+167
-0
lines changed

src/tests/units/conditional-test.r3

+167
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,173 @@ Rebol [
3434
--assert 2 = switch @b [@a [1] @b [2]]
3535
===end-group===
3636

37+
;- using tests from Red language...
38+
===start-group=== "switch basics"
39+
40+
--test-- "switch-basic-1"
41+
sb1-i: 1
42+
sb1-j: -1
43+
switch sb1-i [
44+
0 [sb1-j: 0]
45+
1 [sb1-j: 1]
46+
2 [sb1-j: 2]
47+
]
48+
--assert sb1-j = 1
49+
50+
--test-- "switch-basic-2"
51+
sb2-i: "Nenad"
52+
sb2-j: "REBOL"
53+
switch sb2-i [
54+
"Andreas" [sb2-j: "Earl"]
55+
"Nenad" [sb2-j: "Red"]
56+
"Peter" [sb2-j: "Peter"]
57+
]
58+
--assert sb2-j = "Red"
59+
60+
--test-- "switch-basic-3"
61+
sb3-i: "Χαῖρε, κόσμε"
62+
sb3-j: "REBOL"
63+
switch sb3-i [
64+
"Andreas" [sb3-j: "Earl"]
65+
"Nenad" [sb3-j: "Red"]
66+
"Peter" [sb3-j: "Peter"]
67+
"Χαῖρε, κόσμε" [sb3-j: "Zorba"]
68+
]
69+
--assert sb3-j = "Zorba"
70+
71+
--test-- "switch-basic-4"
72+
sb4-i: "Zorba"
73+
sb4-j: "REBOL"
74+
switch sb4-i [
75+
"Andreas" [sb4-j: "Earl"]
76+
"Nenad" [sb4-j: "Red"]
77+
"Peter" [sb4-j: "Peter"]
78+
"Zorba" [sb4-j: "Χαῖρε, κόσμε"]
79+
]
80+
--assert sb4-j = "Χαῖρε, κόσμε"
81+
82+
--test-- "switch-basic-5"
83+
;@@ R3 does not support UCS4 chars yet!
84+
; sb5-i: "abcde^(010000)"
85+
; sb5-j: "REBOL"
86+
; switch sb5-i [
87+
; "Andreas" [sb5-j: "Earl"]
88+
; "Nenad" [sb5-j: "Red"]
89+
; "Peter" [sb5-j: "Peter"]
90+
; "Zorba" [sb5-j: "Χαῖρε, κόσμε"]
91+
; "abcde^(010000)" [sb5-j: "boron"]
92+
; ]
93+
; --assert sb5-j = "boron"
94+
95+
--test-- "switch-basic-6"
96+
;@@ R3 does not support UCS4 chars yet!
97+
; sb6-i: #"^(010000)"
98+
; sb6-j: "REBOL"
99+
; switch sb6-i [
100+
; #"a" [sb6-j: "Earl"]
101+
; #"b" [sb6-j: "Red"]
102+
; #"c" [sb6-j: "Peter"]
103+
; #"d" [sb6-j: "Χαῖρε, κόσμε"]
104+
; #"^(010000)" [sb6-j: "boron"]
105+
; ]
106+
; --assert sb6-j = "boron"
107+
108+
--test-- "switch-basic-8"
109+
sb8-i: %Nenad
110+
sb8-j: "REBOL"
111+
switch sb8-i [
112+
%Andreas [sb8-j: "Earl"]
113+
%Nenad [sb8-j: "Red"]
114+
%Peter [sb8-j: "Peter"]
115+
]
116+
--assert sb8-j = "Red"
117+
118+
--test-- "switch-basic-9"
119+
sb9-i: #Nenad
120+
sb9-j: "REBOL"
121+
switch sb9-i [
122+
#Andreas [sb9-j: "Earl"]
123+
#Nenad [sb9-j: "Red"]
124+
#Peter [sb9-j: "Peter"]
125+
]
126+
--assert sb9-j = "Red"
127+
128+
--test-- "switch-basic-10"
129+
sb10-i: true
130+
sb10-j: "REBOL"
131+
switch sb10-i [
132+
#[false] [sb10-j: "Earl"]
133+
#[true] [sb10-j: "Red"]
134+
#[true] [sb10-j: "Peter"]
135+
]
136+
--assert sb10-j = "Red"
137+
138+
--test-- "switch-basic-11"
139+
sb11-i: first [(1 2 3)]
140+
sb11-j: "REBOL"
141+
switch sb11-i [
142+
(3 2 1) [sb11-j: "Earl"]
143+
(1 2 3) [sb11-j: "Red"]
144+
(2 3 1) [sb11-j: "Peter"]
145+
]
146+
--assert sb11-j = "Red"
147+
148+
--test-- "switch-basic-13"
149+
sb13-i: first [(2)]
150+
sb13-j: "REBOL"
151+
switch sb13-i [
152+
(1) [sb13-j: "Earl"]
153+
(2) [sb13-j: "Red"]
154+
(3) [sb13-j: "Peter"]
155+
]
156+
--assert sb13-j = "Red"
157+
158+
--test-- "switch-basic-14"
159+
sb14-i: [2]
160+
sb14-j: "REBOL"
161+
switch first sb14-i [
162+
1 [sb14-j: "Earl"]
163+
2 [sb14-j: "Red"]
164+
3 [sb14-j: "Peter"]
165+
]
166+
--assert sb14-j = "Red"
167+
168+
--test-- "switch-basic-15"
169+
sb15-i: integer!
170+
sb15-j: "REBOL"
171+
switch sb15-i [
172+
1 [sb15-j: "Earl"]
173+
integer! [sb15-j: "Peter"]
174+
#[datatype! integer!] [sb15-j: "Red"]
175+
#[datatype! char!] [sb15-j: "Blue"]
176+
]
177+
--assert sb15-j = "Red"
178+
179+
--test-- "switch-basic-16"
180+
sb16-i: number!
181+
sb16-j: "REBOL"
182+
do [switch sb16-i reduce [
183+
1 [sb16-j: "Earl"]
184+
'number! [sb16-j: "Peter"]
185+
number! [sb16-j: "Red"] ;@@ no idea how to encode a typeset literally, have to evaluate
186+
char! [sb16-j: "Blue"]
187+
]]
188+
--assert sb16-j = "Red"
189+
190+
; --test-- "switch-basic-17"
191+
;@@ having unset! as a switch value is not allowed in R3.. should it be?
192+
; sb17-j: "REBOL"
193+
; do [switch () reduce [
194+
; unset! [sb17-j: "Earl"]
195+
; 100 [sb17-j: "Peter"]
196+
; () [sb17-j: "Red"] ;@@ no idea how to encode `unset` literally, have to evaluate
197+
; char! [sb17-j: "Blue"]
198+
; ]]
199+
; --assert sb17-j = "Red"
200+
201+
202+
===end-group===
203+
37204
===start-group=== "switch basics local" ;; one "direct" type & one "indirect"
38205
;; should be sufficient
39206

0 commit comments

Comments
 (0)