source: EcnlProtoTool/trunk/mruby-1.3.0/test/t/literals.rb@ 331

Last change on this file since 331 was 331, checked in by coas-nagasima, 6 years ago

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-ruby;charset=UTF-8
File size: 5.9 KB
Line 
1##
2# Literals ISO Test
3
4assert('Literals Numerical', '8.7.6.2') do
5 # signed and unsigned integer
6 assert_equal 1, 1
7 assert_equal(-1, -1)
8 assert_equal(+1, +1)
9 # signed and unsigned float
10 assert_equal 1.0, 1.0
11 assert_equal(-1.0, -1.0)
12 # binary
13 assert_equal 128, 0b10000000
14 assert_equal 128, 0B10000000
15 # octal
16 assert_equal 8, 0o10
17 assert_equal 8, 0O10
18 assert_equal 8, 0_10
19 # hex
20 assert_equal 255, 0xff
21 assert_equal 255, 0Xff
22 # decimal
23 assert_equal 999, 0d999
24 assert_equal 999, 0D999
25 # decimal seperator
26 assert_equal 10000000, 10_000_000
27 assert_equal 10, 1_0
28 # integer with exponent
29 assert_equal 10.0, 1e1
30 assert_equal(0.1, 1e-1)
31 assert_equal 10.0, 1e+1
32 # float with exponent
33 assert_equal 10.0, 1.0e1
34 assert_equal(0.1, 1.0e-1)
35 assert_equal 10.0, 1.0e+1
36end
37
38assert('Literals Strings Single Quoted', '8.7.6.3.2') do
39 assert_equal 'abc', 'abc'
40 assert_equal '\'', '\''
41 assert_equal '\\', '\\'
42end
43
44assert('Literals Strings Double Quoted', '8.7.6.3.3') do
45 a = "abc"
46
47 assert_equal "abc", "abc"
48 assert_equal "\"", "\""
49 assert_equal "\\", "\\"
50 assert_equal "abc", "#{a}"
51end
52
53assert('Literals Strings Quoted Non-Expanded', '8.7.6.3.4') do
54 a = %q{abc}
55 b = %q(abc)
56 c = %q[abc]
57 d = %q<abc>
58 e = %q/abc/
59 f = %q/ab\/c/
60 g = %q{#{a}}
61
62 assert_equal 'abc', a
63 assert_equal 'abc', b
64 assert_equal 'abc', c
65 assert_equal 'abc', d
66 assert_equal 'abc', e
67 assert_equal 'ab/c', f
68 assert_equal '#{a}', g
69end
70
71assert('Literals Strings Quoted Expanded', '8.7.6.3.5') do
72 a = %Q{abc}
73 b = %Q(abc)
74 c = %Q[abc]
75 d = %Q<abc>
76 e = %Q/abc/
77 f = %Q/ab\/c/
78 g = %Q{#{a}}
79
80 assert_equal 'abc', a
81 assert_equal 'abc', b
82 assert_equal 'abc', c
83 assert_equal 'abc', d
84 assert_equal 'abc', e
85 assert_equal 'ab/c', f
86 assert_equal 'abc', g
87end
88
89assert('Literals Strings Here documents', '8.7.6.3.6') do
90 a = <<AAA
91aaa
92AAA
93 b = <<b_b
94bbb
95b_b
96 c = [<<CCC1, <<"CCC2", <<'CCC3']
97c1
98CCC1
99c 2
100CCC2
101c 3
102CCC3
103
104 d = <<DDD
105d#{1+2}DDD
106d\t
107DDD\n
108DDD
109 e = <<'EEE'
110e#{1+2}EEE
111e\t
112EEE\n
113EEE
114 f = <<"FFF"
115F
116FF#{"f"}FFF
117F
118FFF
119
120 g = <<-GGG
121 ggg
122 GGG
123 h = <<-"HHH"
124 hhh
125 HHH
126 i = <<-'III'
127 iii
128 III
129 j = [<<-JJJ1 , <<-"JJJ2" , <<-'JJJ3' ]
130 j#{1}j
131 JJJ1
132 j#{2}j
133 JJJ2
134 j#{3}j
135 JJJ3
136
137 k = <<'KKK'.to_i
138123
139KKK
140
141 m = [<<MM1, <<MM2]
142x#{m2 = {x:<<MM3}}y
143mm3
144MM3
145mm1
146MM1
147mm2
148MM2
149
150 n = [1, "#{<<NN1}", 3,
151nn1
152NN1
153 4]
154
155 qqq = Proc.new {|*x| x.join(' $ ')}
156 q1 = qqq.call("a", <<QQ1, "c",
157q
158QQ1
159 "d")
160 q2 = qqq.call("l", "m#{<<QQ2}n",
161qq
162QQ2
163 "o")
164
165 w = %W( 1 #{<<WWW} 3
166www
167WWW
168 4 5 )
169
170 x = [1, <<XXX1,
171foo #{<<XXX2} bar
172222 #{<<XXX3} 444
173333
174XXX3
1755
176XXX2
1776
178XXX1
179 9]
180
181 z = <<'ZZZ'
182ZZZ
183
184 assert_equal "aaa\n", a
185 assert_equal "bbb\n", b
186 assert_equal ["c1\n", "c 2\n", "c 3\n"], c
187 assert_equal "d3DDD\nd\t\nDDD\n\n", d
188 assert_equal "e\#{1+2}EEE\ne\\t\nEEE\\n\n", e
189 assert_equal "F\nFFfFFF\nF\n", f
190 assert_equal " ggg\n", g
191 assert_equal " hhh\n", h
192 assert_equal " iii\n", i
193 assert_equal [" j1j\n", " j2j\n", " j\#{3}j\n"], j
194 assert_equal 123, k
195 assert_equal ["x{:x=>\"mm3\\n\"}y\nmm1\n", "mm2\n"], m
196 assert_equal ({:x=>"mm3\n"}), m2
197 assert_equal [1, "nn1\n", 3, 4], n
198 assert_equal "a $ q\n $ c $ d", q1
199 assert_equal "l $ mqq\nn $ o", q2
200 assert_equal ["1", "www\n", "3", "4", "5"], w
201 assert_equal [1, "foo 222 333\n 444\n5\n bar\n6\n", 9], x
202 assert_equal "", z
203
204end
205
206
207assert('Literals Array', '8.7.6.4') do
208 a = %W{abc#{1+2}def \}g}
209 b = %W(abc #{2+3} def \(g)
210 c = %W[#{3+4}]
211 d = %W< #{4+5} >
212 e = %W//
213 f = %W[[ab cd][ef]]
214 g = %W{
215 ab
216 #{-1}1
217 2#{2}
218 }
219 h = %W(a\nb
220 test\ abc
221 c\
222d
223 x\y x\\y x\\\y)
224
225 assert_equal ['abc3def', '}g'], a
226 assert_equal ['abc', '5', 'def', '(g'], b
227 assert_equal ['7'],c
228 assert_equal ['9'], d
229 assert_equal [], e
230 assert_equal ['[ab', 'cd][ef]'], f
231 assert_equal ['ab', '-11', '22'], g
232 assert_equal ["a\nb", 'test abc', "c\nd", "xy", "x\\y", "x\\y"], h
233
234 a = %w{abc#{1+2}def \}g}
235 b = %w(abc #{2+3} def \(g)
236 c = %w[#{3+4}]
237 d = %w< #{4+5} >
238 e = %w//
239 f = %w[[ab cd][ef]]
240 g = %w{
241 ab
242 #{-1}1
243 2#{2}
244 }
245 h = %w(a\nb
246 test\ abc
247 c\
248d
249 x\y x\\y x\\\y)
250
251 assert_equal ['abc#{1+2}def', '}g'], a
252 assert_equal ['abc', '#{2+3}', 'def', '(g'], b
253 assert_equal ['#{3+4}'], c
254 assert_equal ['#{4+5}'], d
255 assert_equal [], e
256 assert_equal ['[ab', 'cd][ef]'], f
257 assert_equal ['ab', '#{-1}1', '2#{2}'], g
258 assert_equal ["a\\nb", "test abc", "c\nd", "x\\y", "x\\y", "x\\\\y"], h
259end
260
261
262assert('Literals Array of symbols') do
263 a = %I{abc#{1+2}def \}g}
264 b = %I(abc #{2+3} def \(g)
265 c = %I[#{3+4}]
266 d = %I< #{4+5} >
267 e = %I//
268 f = %I[[ab cd][ef]]
269 g = %I{
270 ab
271 #{-1}1
272 2#{2}
273 }
274
275 assert_equal [:'abc3def', :'}g'], a
276 assert_equal [:'abc', :'5', :'def', :'(g'], b
277 assert_equal [:'7'],c
278 assert_equal [:'9'], d
279 assert_equal [], e
280 assert_equal [:'[ab', :'cd][ef]'], f
281 assert_equal [:'ab', :'-11', :'22'], g
282
283 a = %i{abc#{1+2}def \}g}
284 b = %i(abc #{2+3} def \(g)
285 c = %i[#{3+4}]
286 d = %i< #{4+5} >
287 e = %i//
288 f = %i[[ab cd][ef]]
289 g = %i{
290 ab
291 #{-1}1
292 2#{2}
293 }
294
295 assert_equal [:'abc#{1+2}def', :'}g'], a
296 assert_equal [:'abc', :'#{2+3}', :'def', :'(g'], b
297 assert_equal [:'#{3+4}'], c
298 assert_equal [:'#{4+5}'], d
299 assert_equal [] ,e
300 assert_equal [:'[ab', :'cd][ef]'], f
301 assert_equal [:'ab', :'#{-1}1', :'2#{2}'], g
302end
303
304assert('Literals Symbol', '8.7.6.6') do
305 # do not compile error
306 :$asd
307 :@asd
308 :@@asd
309 :asd=
310 :asd!
311 :asd?
312 :+
313 :+@
314 :if
315 :BEGIN
316
317 a = :"asd qwe"
318 b = :'foo bar'
319 c = :"a#{1+2}b"
320 d = %s(asd)
321 e = %s( foo \))
322 f = %s[asd \[
323qwe]
324 g = %s/foo#{1+2}bar/
325 h = %s{{foo bar}}
326
327 assert_equal :'asd qwe', a
328 assert_equal :"foo bar", b
329 assert_equal :a3b, c
330 assert_equal :asd, d
331 assert_equal :' foo )', e
332 assert_equal :"asd [\nqwe", f
333 assert_equal :'foo#{1+2}bar', g
334 assert_equal :'{foo bar}', h
335end
336
337# Not Implemented ATM assert('Literals Regular expression', '8.7.6.5') do
Note: See TracBrowser for help on using the repository browser.