Skip to content

Commit 9f55cb9

Browse files
test: Add tests for while and until loops.
1 parent d78a2ff commit 9f55cb9

File tree

4 files changed

+140
-1
lines changed

4 files changed

+140
-1
lines changed

test/scip/testdata/loops_and_conditionals.rb

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,37 @@ def for(xs)
6767
redo if g == 4
6868
end
6969
end
70+
71+
def while(xs)
72+
i = 0
73+
while i < 10
74+
puts xs[i]
75+
end
76+
77+
j = 0
78+
while j < 10
79+
g = xs[j]
80+
next if g == 0
81+
next g+1 if g == 1
82+
break if g == 2
83+
break g+1 if g == 3
84+
redo if g == 4
85+
end
86+
end
87+
88+
def until(xs)
89+
i = 0
90+
until i > 10
91+
puts xs[i]
92+
end
93+
94+
j = 0
95+
until j > 10
96+
g = xs[j]
97+
next if g == 0
98+
next g+1 if g == 1
99+
break if g == 2
100+
break g+1 if g == 3
101+
redo if g == 4
102+
end
103+
end

test/scip/testdata/loops_and_conditionals.snapshot.rb

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
def if_elsif_else()
44
#^^^^^^^^^^^^^^^^^^^ definition scip-ruby gem TODO TODO if_elsif_else().
5-
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition scip-ruby gem TODO TODO <static-init>().
5+
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition scip-ruby gem TODO TODO <static-init>().
66
x = 0
77
# ^ definition local 1~#2393773952
88
y = 0
@@ -121,3 +121,73 @@ def for(xs)
121121
# ^ reference local 4~#2901640080
122122
end
123123
end
124+
125+
def while(xs)
126+
#^^^^^^^^^^^^^ definition scip-ruby gem TODO TODO while().
127+
# ^^ definition local 1~#231090382
128+
i = 0
129+
# ^ definition local 2~#231090382
130+
while i < 10
131+
# ^ reference local 2~#231090382
132+
puts xs[i]
133+
# ^^ reference local 1~#231090382
134+
# ^ reference local 2~#231090382
135+
end
136+
137+
j = 0
138+
# ^ definition local 3~#231090382
139+
while j < 10
140+
# ^ reference local 3~#231090382
141+
g = xs[j]
142+
# ^ definition local 4~#231090382
143+
# ^^ reference local 1~#231090382
144+
# ^ reference local 3~#231090382
145+
next if g == 0
146+
# ^ reference local 4~#231090382
147+
next g+1 if g == 1
148+
# ^ reference local 4~#231090382
149+
# ^ reference local 4~#231090382
150+
break if g == 2
151+
# ^ reference local 4~#231090382
152+
break g+1 if g == 3
153+
# ^ reference local 4~#231090382
154+
# ^ reference local 4~#231090382
155+
redo if g == 4
156+
# ^ reference local 4~#231090382
157+
end
158+
end
159+
160+
def until(xs)
161+
#^^^^^^^^^^^^^ definition scip-ruby gem TODO TODO until().
162+
# ^^ definition local 1~#3132432719
163+
i = 0
164+
# ^ definition local 2~#3132432719
165+
until i > 10
166+
# ^ reference local 2~#3132432719
167+
puts xs[i]
168+
# ^^ reference local 1~#3132432719
169+
# ^ reference local 2~#3132432719
170+
end
171+
172+
j = 0
173+
# ^ definition local 3~#3132432719
174+
until j > 10
175+
# ^ reference local 3~#3132432719
176+
g = xs[j]
177+
# ^ definition local 4~#3132432719
178+
# ^^ reference local 1~#3132432719
179+
# ^ reference local 3~#3132432719
180+
next if g == 0
181+
# ^ reference local 4~#3132432719
182+
next g+1 if g == 1
183+
# ^ reference local 4~#3132432719
184+
# ^ reference local 4~#3132432719
185+
break if g == 2
186+
# ^ reference local 4~#3132432719
187+
break g+1 if g == 3
188+
# ^ reference local 4~#3132432719
189+
# ^ reference local 4~#3132432719
190+
redo if g == 4
191+
# ^ reference local 4~#3132432719
192+
end
193+
end

test/scip/testdata/s.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# typed: true
2+
3+
def case(x, y)
4+
case x
5+
when 0
6+
x = 3
7+
when (3 == (x = 1))
8+
x = 0
9+
else
10+
x = 1
11+
end
12+
return
13+
end

test/scip/testdata/s.snapshot.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# typed: true
2+
3+
def case(x, y)
4+
#^^^^^^^^^^^^^^ definition scip-ruby gem TODO TODO case().
5+
#^^^^^^^^^^^^ definition scip-ruby gem TODO TODO <static-init>().
6+
# ^ definition local 1~#2602907825
7+
case x
8+
# ^ reference local 1~#2602907825
9+
when 0
10+
x = 3
11+
# ^ reference (write) local 1~#2602907825
12+
when (3 == (x = 1))
13+
# ^ reference (write) local 1~#2602907825
14+
# ^^^^^ reference local 1~#2602907825
15+
x = 0
16+
# ^ reference (write) local 1~#2602907825
17+
else
18+
x = 1
19+
# ^ reference (write) local 1~#2602907825
20+
end
21+
return
22+
end

0 commit comments

Comments
 (0)