PageRenderTime 31ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/projects/jruby-1.7.3/test/externals/ruby1.9/ruby/test_basicinstructions.rb

https://gitlab.com/essere.lab.public/qualitas.class-corpus
Ruby | 685 lines | 616 code | 67 blank | 2 comment | 3 complexity | 7688c356f4e6874a0277ab093855e1be MD5 | raw file
  1. require 'test/unit'
  2. ConstTest = 3
  3. class Class
  4. alias _remove_const remove_const
  5. public :_remove_const
  6. end
  7. class TestBasicInstructions < Test::Unit::TestCase
  8. def test_immediates
  9. assert_equal((1==1), true)
  10. assert_equal((1==2), false)
  11. assert_equal [][0], nil
  12. assert_equal "sym".intern, :sym
  13. assert_equal "sym".intern, :"sym"
  14. assert_equal 1234 + 0, 1234
  15. assert_equal 1234, 1_2_3_4
  16. assert_equal 41, 0b0101001
  17. assert_equal 420, 0644
  18. assert_equal 18, 0x12
  19. assert_equal 123456789012345678901234567890 + 0,
  20. 123456789012345678901234567890
  21. assert_equal 1.234 + 0.0, 1.234
  22. end
  23. def test_self
  24. assert_equal self, self
  25. assert_equal false, (self == false) # Qfalse==0 in C
  26. assert_equal false, (self == nil)
  27. assert_equal false, (self == 0)
  28. end
  29. def test_string
  30. expected = "str" + "ing"
  31. assert_equal expected, 'string'
  32. assert_equal expected, "string"
  33. assert_equal expected, %q(string)
  34. assert_equal expected, %Q(string)
  35. assert_equal expected, %(string)
  36. end
  37. def test_dstring
  38. assert_equal "2", "#{1+1}"
  39. s = "OK"
  40. assert_equal "OK", "#{s}"
  41. assert_equal "OKx", "#{s}x"
  42. assert_equal "xOK", "x#{s}"
  43. assert_equal "xOKx", "x#{s}x"
  44. end
  45. def test_dsym
  46. assert_equal :a3c, :"a#{1+2}c"
  47. s = "sym"
  48. assert_equal :sym, :"#{s}"
  49. assert_equal :sym, :"#{"#{"#{s}"}"}"
  50. end
  51. def test_xstr
  52. assert_equal 'hoge', `echo hoge`.chomp
  53. assert_equal '3', `echo #{1 + 2}`.chomp
  54. hoge = 'huga'
  55. assert_equal 'huga', `echo #{hoge}`.chomp
  56. end
  57. def test_regexp
  58. assert_equal(/test/, /test/)
  59. assert_equal 'test', /test/.source
  60. assert_equal 'TEST', /TEST/.source
  61. assert_equal true, !!(/test/ =~ 'test')
  62. assert_equal false, !!(/test/ =~ 'does not match')
  63. re = /test/
  64. assert_equal re, re
  65. assert_equal 'test', re.source
  66. assert_equal true, !!(re =~ 'test')
  67. assert_equal false, !!(re =~ 'does not match')
  68. assert_equal(/x#{1+1}x/, /x#{1+1}x/)
  69. s = "OK"
  70. assert_equal(/x#{s}x/, /x#{s}x/)
  71. assert_equal true, !!(/x#{s}x/ =~ "xOKx")
  72. assert_equal false, !!(/x#{s}x/ =~ "does not match")
  73. s = "OK"
  74. prev = nil
  75. 3.times do
  76. assert_equal prev.object_id, (prev ||= /#{s}/o).object_id if prev
  77. end
  78. end
  79. def test_array
  80. assert_equal [], []
  81. assert_equal 0, [].size
  82. assert_equal [1, 2, 3], [1, 2, 3]
  83. assert_equal [3, 7, 11], [1+2, 3+4, 5+6]
  84. assert_equal [[1], [2], [3]], [[1], [2], [3]]
  85. a = [1, 2, 3]
  86. assert_equal 1, a[0]
  87. assert_equal 2, a[1]
  88. assert_equal 3, a[2]
  89. assert_nil a[3]
  90. a = %w( a b c )
  91. assert_equal 'a', a[0]
  92. assert_equal 'b', a[1]
  93. assert_equal 'c', a[2]
  94. assert_nil a[3]
  95. end
  96. def test_hash
  97. assert_equal({}, {})
  98. assert_equal({1=>2}, {1=>2})
  99. assert_equal({1=>2, 3=>4}, {1=>2, 3=>4})
  100. assert_equal({1=>2, 3=>4}, {3=>4, 1=>2})
  101. # assert_equal({1=>2, 3=>4}, {1,2, 3,4}) # 1.9 doesn't support
  102. assert_equal({"key"=>"val"}, {"key"=>"val"})
  103. end
  104. def test_range
  105. assert_equal((1..3), (1..3))
  106. assert_equal((1...3), (1...3))
  107. assert_not_equal((1...3), (1..3))
  108. assert_not_equal((1..3), (1...3))
  109. assert_equal((1..3), (1..2+1))
  110. assert_equal((1...3), (1...2+1))
  111. assert_equal(('a'..'z'), ('a'..'z'))
  112. end
  113. def test_not
  114. assert_equal true, !nil
  115. assert_equal true, !false
  116. assert_equal false, !true
  117. assert_equal false, !3
  118. assert_equal false, !(1+1)
  119. assert_equal false, !!nil
  120. assert_equal false, !!false
  121. assert_equal true, !!true
  122. assert_equal true, !!3
  123. assert_equal true, !!(1+1)
  124. assert_equal true, (not nil)
  125. assert_equal true, (not false)
  126. assert_equal false, (not true)
  127. assert_equal false, (not 3)
  128. assert_equal false, (not (1 + 1))
  129. assert_equal false, (not not nil)
  130. assert_equal false, (not not false)
  131. assert_equal true, (not not true)
  132. assert_equal true, (not not 3)
  133. assert_equal true, (not not (1+1))
  134. end
  135. def test_local_variable
  136. a = 7
  137. assert_equal 7, a
  138. assert_equal a, a
  139. b = 17
  140. assert_equal 7, a
  141. assert_equal 17, b
  142. assert_equal a, a
  143. assert_equal b, b
  144. assert_not_equal a, b
  145. assert_not_equal b, a
  146. a = b
  147. assert_equal 17, a
  148. assert_equal 17, b
  149. assert_equal a, a
  150. assert_equal b, b
  151. assert_equal a, b
  152. assert_equal b, a
  153. c = 28
  154. assert_equal 17, a
  155. assert_equal 17, b
  156. assert_equal 28, c
  157. assert_equal a, a
  158. assert_equal b, b
  159. assert_equal a, b
  160. assert_equal c, c
  161. assert_not_equal a, c
  162. assert_not_equal b, c
  163. a = b = c
  164. assert_equal 28, a
  165. assert_equal 28, b
  166. assert_equal 28, c
  167. assert_equal a, a
  168. assert_equal b, b
  169. assert_equal a, b
  170. assert_equal b, a
  171. assert_equal a, c
  172. assert_equal c, a
  173. assert_equal b, c
  174. assert_equal c, b
  175. a = 1
  176. b = 2
  177. c = 3
  178. set_lvar_in_another_method
  179. assert_equal 1, a
  180. assert_equal 2, b
  181. assert_equal 3, c
  182. end
  183. def set_lvar_in_another_method
  184. assert_raise(NameError) { a }
  185. assert_raise(NameError) { b }
  186. assert_raise(NameError) { c }
  187. a = "NOT OK"
  188. b = "NOT OK"
  189. c = "NOT OK"
  190. end
  191. class Const
  192. $Const = self
  193. C = 'Const::C'
  194. def self.c() C end
  195. def c() C end
  196. class A
  197. C = 'Const::A::C'
  198. def self.c() C end
  199. def c() C end
  200. CC = 'Const::A::CC'
  201. def self.cc() CC end
  202. def cc() CC end
  203. class B
  204. C = 'Const::A::B::C'
  205. def self.c() C end
  206. def c() C end
  207. def self.cc() CC end
  208. def cc() CC end
  209. end
  210. end
  211. class AA < A
  212. def self.cc() CC end
  213. def cc() CC end
  214. end
  215. class AAA < AA
  216. def self.cc() CC end
  217. def cc() CC end
  218. end
  219. end
  220. C = 0
  221. def test_const_path
  222. do_test_const_path
  223. do_test_const_path
  224. do_test_const_path
  225. end
  226. def do_test_const_path
  227. assert_equal 0, C
  228. assert_equal 0, C
  229. assert_equal 3, ::ConstTest
  230. assert_equal 3, ::ConstTest
  231. assert_equal $Const, Const
  232. assert_equal 'Const::C', Const::C
  233. assert_equal 'Const::C', Const::C
  234. assert_equal 'Const::A::C', Const::A::C
  235. assert_equal 'Const::A::C', Const::A::C
  236. assert_equal 'Const::A::B::C', Const::A::B::C
  237. assert_equal 'Const::A::B::C', Const::A::B::C
  238. Const::A::B._remove_const :C
  239. assert_equal 'Const::C', Const::C
  240. assert_equal 'Const::A::C', Const::A::C
  241. assert_raise(NameError) { Const::A::B::C }
  242. Const::A._remove_const :C
  243. assert_equal 'Const::C', Const::C
  244. assert_raise(NameError) { Const::A::C }
  245. assert_raise(NameError) { Const::A::B::C }
  246. Const._remove_const :C
  247. assert_raise(NameError) { Const::C }
  248. assert_raise(NameError) { Const::A::C }
  249. assert_raise(NameError) { Const::A::B::C }
  250. Const::A.const_set :C, 'Const::A::C'
  251. assert_raise(NameError) { Const::C }
  252. assert_equal 'Const::A::C', Const::A::C
  253. assert_raise(NameError) { Const::A::B::C }
  254. Const::A::B.const_set :C, 'Const::A::B::C'
  255. assert_raise(NameError) { Const::C }
  256. assert_equal 'Const::A::C', Const::A::C
  257. assert_equal 'Const::A::B::C', Const::A::B::C
  258. Const.const_set :C, 'Const::C'
  259. assert_equal 'Const::C', Const::C
  260. assert_equal 'Const::A::C', Const::A::C
  261. assert_equal 'Const::A::B::C', Const::A::B::C
  262. end
  263. def test_const_cref
  264. do_test_const_cref
  265. do_test_const_cref
  266. do_test_const_cref
  267. end
  268. def do_test_const_cref
  269. assert_equal 'Const::C', Const.new.c
  270. assert_equal 'Const::A::C', Const::A.new.c
  271. assert_equal 'Const::A::B::C', Const::A::B.new.c
  272. assert_equal 'Const::C', Const.c
  273. assert_equal 'Const::A::C', Const::A.c
  274. assert_equal 'Const::A::B::C', Const::A::B.c
  275. Const::A::B._remove_const :C
  276. assert_equal 'Const::C', Const.c
  277. assert_equal 'Const::A::C', Const::A.c
  278. assert_equal 'Const::A::C', Const::A::B.c
  279. assert_equal 'Const::C', Const.new.c
  280. assert_equal 'Const::A::C', Const::A.new.c
  281. assert_equal 'Const::A::C', Const::A::B.new.c
  282. Const::A._remove_const :C
  283. assert_equal 'Const::C', Const.c
  284. assert_equal 'Const::C', Const::A.c
  285. assert_equal 'Const::C', Const::A::B.c
  286. assert_equal 'Const::C', Const.new.c
  287. assert_equal 'Const::C', Const::A.new.c
  288. assert_equal 'Const::C', Const::A::B.new.c
  289. Const::A::B.const_set :C, 'Const::A::B::C'
  290. assert_equal 'Const::C', Const.c
  291. assert_equal 'Const::C', Const::A.c
  292. assert_equal 'Const::A::B::C', Const::A::B.c
  293. assert_equal 'Const::C', Const.new.c
  294. assert_equal 'Const::C', Const::A.new.c
  295. assert_equal 'Const::A::B::C', Const::A::B.new.c
  296. Const::A.const_set :C, 'Const::A::C'
  297. assert_equal 'Const::C', Const.c
  298. assert_equal 'Const::A::C', Const::A.c
  299. assert_equal 'Const::A::B::C', Const::A::B.c
  300. assert_equal 'Const::C', Const.new.c
  301. assert_equal 'Const::A::C', Const::A.new.c
  302. assert_equal 'Const::A::B::C', Const::A::B.new.c
  303. ensure
  304. # reset
  305. Const.const_set :C, 'Const::C' unless Const.const_defined?(:C)
  306. Const::A.const_set :C, 'Const::A::C' unless Const::A.const_defined?(:C)
  307. Const::A::B.const_set :C, 'Const::A::B::C' unless Const::A::B.const_defined?(:C)
  308. end
  309. def test_const_inherit
  310. do_test_const_inherit
  311. do_test_const_inherit
  312. do_test_const_inherit
  313. end
  314. def do_test_const_inherit
  315. assert_equal 'Const::A::CC', Const::A.cc
  316. assert_equal 'Const::A::CC', Const::AA.cc
  317. assert_equal 'Const::A::CC', Const::AAA.cc
  318. assert_equal 'Const::A::CC', Const::A.new.cc
  319. assert_equal 'Const::A::CC', Const::AA.new.cc
  320. assert_equal 'Const::A::CC', Const::AAA.new.cc
  321. Const::AA.const_set :CC, 'Const::AA::CC'
  322. assert_equal 'Const::A::CC', Const::A.cc
  323. assert_equal 'Const::AA::CC', Const::AA.cc
  324. assert_equal 'Const::AA::CC', Const::AAA.cc
  325. assert_equal 'Const::A::CC', Const::A.new.cc
  326. assert_equal 'Const::AA::CC', Const::AA.new.cc
  327. assert_equal 'Const::AA::CC', Const::AAA.new.cc
  328. Const::AAA.const_set :CC, 'Const::AAA::CC'
  329. assert_equal 'Const::A::CC', Const::A.cc
  330. assert_equal 'Const::AA::CC', Const::AA.cc
  331. assert_equal 'Const::AAA::CC', Const::AAA.cc
  332. assert_equal 'Const::A::CC', Const::A.new.cc
  333. assert_equal 'Const::AA::CC', Const::AA.new.cc
  334. assert_equal 'Const::AAA::CC', Const::AAA.new.cc
  335. Const::AA._remove_const :CC
  336. assert_equal 'Const::A::CC', Const::A.cc
  337. assert_equal 'Const::A::CC', Const::AA.cc
  338. assert_equal 'Const::AAA::CC', Const::AAA.cc
  339. assert_equal 'Const::A::CC', Const::A.new.cc
  340. assert_equal 'Const::A::CC', Const::AA.new.cc
  341. assert_equal 'Const::AAA::CC', Const::AAA.new.cc
  342. Const::AAA._remove_const :CC
  343. assert_equal 'Const::A::CC', Const::A.cc
  344. assert_equal 'Const::A::CC', Const::AA.cc
  345. assert_equal 'Const::A::CC', Const::AAA.cc
  346. assert_equal 'Const::A::CC', Const::A.new.cc
  347. assert_equal 'Const::A::CC', Const::AA.new.cc
  348. assert_equal 'Const::A::CC', Const::AAA.new.cc
  349. end
  350. def test_global_variable
  351. $gvar1 = 1
  352. assert_equal 1, $gvar1
  353. $gvar1 = 2
  354. assert_equal 2, $gvar1
  355. $gvar2 = 77
  356. assert_equal 2, $gvar1
  357. assert_equal 77, $gvar2
  358. $gvar2 = $gvar1
  359. assert_equal 2, $gvar1
  360. assert_equal 2, $gvar2
  361. $gvar1 = 1
  362. assert_equal 1, $gvar1
  363. assert_equal 2, $gvar2
  364. set_gvar_in_another_method
  365. assert_equal "OK1", $gvar1
  366. assert_equal "OK2", $gvar2
  367. end
  368. def set_gvar_in_another_method
  369. assert_equal 1, $gvar1
  370. assert_equal 2, $gvar2
  371. $gvar1 = "OK1"
  372. $gvar2 = "OK2"
  373. end
  374. class CVarA
  375. @@cv = 'CVarA@@cv'
  376. def self.cv() @@cv end
  377. def self.cv=(v) @@cv = v end
  378. class << self
  379. def cv2() @@cv end
  380. end
  381. def cv() @@cv end
  382. def cv=(v) @@cv = v end
  383. end
  384. class CVarB < CVarA
  385. def self.cvB() @@cv end
  386. def self.cvB=(v) @@cv = v end
  387. class << self
  388. def cvB2() @@cv end
  389. end
  390. def cvB() @@cv end
  391. def cvB=(v) @@cv = v end
  392. end
  393. def test_class_variable
  394. assert_equal 'CVarA@@cv', CVarA.cv
  395. assert_equal 'CVarA@@cv', CVarA.cv2
  396. assert_equal 'CVarA@@cv', CVarA.new.cv
  397. CVarA.cv = 'singleton'
  398. assert_equal 'singleton', CVarA.cv
  399. assert_equal 'singleton', CVarA.cv2
  400. assert_equal 'singleton', CVarA.new.cv
  401. CVarA.new.cv = 'instance'
  402. assert_equal 'instance', CVarA.cv
  403. assert_equal 'instance', CVarA.cv2
  404. assert_equal 'instance', CVarA.new.cv
  405. CVarA.cv = 'CVarA@@cv'
  406. CVarB.cv = 'B/singleton'
  407. assert_equal 'B/singleton', CVarB.cv
  408. assert_equal 'B/singleton', CVarB.cv2
  409. assert_equal 'B/singleton', CVarB.new.cv
  410. assert_equal 'B/singleton', CVarA.cv
  411. assert_equal 'B/singleton', CVarA.cv2
  412. assert_equal 'B/singleton', CVarA.new.cv
  413. CVarB.new.cv = 'B/instance'
  414. assert_equal 'B/instance', CVarB.cv
  415. assert_equal 'B/instance', CVarB.cv2
  416. assert_equal 'B/instance', CVarB.new.cv
  417. assert_equal 'B/instance', CVarA.cv
  418. assert_equal 'B/instance', CVarA.cv2
  419. assert_equal 'B/instance', CVarA.new.cv
  420. CVarA.cv = 'CVarA@@cv'
  421. assert_equal('CVarA@@cv', CVarB.cvB)
  422. assert_equal('CVarA@@cv', CVarB.cvB2)
  423. assert_equal('CVarA@@cv', CVarB.new.cvB)
  424. CVarB.cvB = 'B/singleton'
  425. assert_equal 'B/singleton', CVarB.cvB
  426. assert_equal 'B/singleton', CVarB.cvB2
  427. assert_equal 'B/singleton', CVarB.new.cvB
  428. assert_equal 'B/singleton', CVarA.cv
  429. assert_equal 'B/singleton', CVarA.cv2
  430. assert_equal 'B/singleton', CVarA.new.cv
  431. CVarB.new.cvB = 'B/instance'
  432. assert_equal 'B/instance', CVarB.cvB
  433. assert_equal 'B/instance', CVarB.cvB2
  434. assert_equal 'B/instance', CVarB.new.cvB
  435. assert_equal 'B/instance', CVarA.cv
  436. assert_equal 'B/instance', CVarA.cv2
  437. assert_equal 'B/instance', CVarA.new.cv
  438. CVarA.cv = 'CVarA@@cv'
  439. CVarB.cvB = 'CVarB@@cv'
  440. end
  441. class OP
  442. attr_reader :x
  443. def x=(x)
  444. @x = x
  445. :Bug1996
  446. end
  447. Bug1996 = '[ruby-dev:39163], [ruby-core:25143]'
  448. def [](i)
  449. @x
  450. end
  451. def []=(i, x)
  452. @x = x
  453. :Bug2050
  454. end
  455. Bug2050 = '[ruby-core:25387]'
  456. end
  457. def test_opassign2_1
  458. x = nil
  459. assert_equal 1, x ||= 1
  460. assert_equal 1, x
  461. assert_equal 2, x &&= 2
  462. assert_equal 2, x
  463. assert_equal 2, x ||= 3
  464. assert_equal 2, x
  465. assert_equal 4, x &&= 4
  466. assert_equal 4, x
  467. assert_equal 5, x += 1
  468. assert_equal 5, x
  469. assert_equal 4, x -= 1
  470. assert_equal 4, x
  471. end
  472. def test_opassign2_2
  473. y = OP.new
  474. y.x = nil
  475. assert_equal 1, y.x ||= 1, OP::Bug1996
  476. assert_equal 1, y.x
  477. assert_equal 2, y.x &&= 2, OP::Bug1996
  478. assert_equal 2, y.x
  479. assert_equal 2, y.x ||= 3
  480. assert_equal 2, y.x
  481. assert_equal 4, y.x &&= 4, OP::Bug1996
  482. assert_equal 4, y.x
  483. assert_equal 5, y.x += 1, OP::Bug1996
  484. assert_equal 5, y.x
  485. assert_equal 4, y.x -= 1, OP::Bug1996
  486. assert_equal 4, y.x
  487. end
  488. def test_opassign2_3
  489. z = OP.new
  490. z.x = OP.new
  491. z.x.x = nil
  492. assert_equal 1, z.x.x ||= 1, OP::Bug1996
  493. assert_equal 1, z.x.x
  494. assert_equal 2, z.x.x &&= 2, OP::Bug1996
  495. assert_equal 2, z.x.x
  496. assert_equal 2, z.x.x ||= 3
  497. assert_equal 2, z.x.x
  498. assert_equal 4, z.x.x &&= 4, OP::Bug1996
  499. assert_equal 4, z.x.x
  500. assert_equal 5, z.x.x += 1, OP::Bug1996
  501. assert_equal 5, z.x.x
  502. assert_equal 4, z.x.x -= 1, OP::Bug1996
  503. assert_equal 4, z.x.x
  504. end
  505. def test_opassign1_1
  506. a = []
  507. a[0] = nil
  508. assert_equal 1, a[0] ||= 1
  509. assert_equal 1, a[0]
  510. assert_equal 2, a[0] &&= 2
  511. assert_equal 2, a[0]
  512. assert_equal 2, a[0] ||= 3
  513. assert_equal 2, a[0]
  514. assert_equal 4, a[0] &&= 4
  515. assert_equal 4, a[0]
  516. assert_equal 5, a[0] += 1
  517. assert_equal 5, a[0]
  518. assert_equal 4, a[0] -= 1
  519. assert_equal 4, a[0]
  520. end
  521. def test_opassign1_2
  522. x = OP.new
  523. x[0] = nil
  524. assert_equal 1, x[0] ||= 1, OP::Bug2050
  525. assert_equal 1, x[0]
  526. assert_equal 2, x[0] &&= 2, OP::Bug2050
  527. assert_equal 2, x[0]
  528. assert_equal 2, x[0] ||= 3, OP::Bug2050
  529. assert_equal 2, x[0]
  530. assert_equal 4, x[0] &&= 4, OP::Bug2050
  531. assert_equal 4, x[0]
  532. assert_equal 5, x[0] += 1, OP::Bug2050
  533. assert_equal 5, x[0]
  534. assert_equal 4, x[0] -= 1, OP::Bug2050
  535. assert_equal 4, x[0]
  536. end
  537. def test_backref
  538. /re/ =~ 'not match'
  539. assert_nil $~
  540. assert_nil $`
  541. assert_nil $&
  542. assert_nil $'
  543. assert_nil $+
  544. assert_nil $1
  545. assert_nil $2
  546. assert_nil $3
  547. assert_nil $4
  548. assert_nil $5
  549. assert_nil $6
  550. assert_nil $7
  551. assert_nil $8
  552. assert_nil $9
  553. /(a)(b)(c)(d)(e)(f)(g)(h)(i)/ =~ 'xabcdefghiy'
  554. assert_not_nil $~
  555. assert_instance_of MatchData, $~
  556. assert_equal 'abcdefghi', $~[0]
  557. assert_equal 'a', $~[1]
  558. assert_equal 'b', $~[2]
  559. assert_equal 'c', $~[3]
  560. assert_equal 'd', $~[4]
  561. assert_equal 'e', $~[5]
  562. assert_equal 'f', $~[6]
  563. assert_equal 'g', $~[7]
  564. assert_equal 'h', $~[8]
  565. assert_equal 'i', $~[9]
  566. assert_equal 'x', $`
  567. assert_equal 'abcdefghi', $&
  568. assert_equal "y", $'
  569. assert_equal 'i', $+
  570. assert_equal 'a', $1
  571. assert_equal 'b', $2
  572. assert_equal 'c', $3
  573. assert_equal 'd', $4
  574. assert_equal 'e', $5
  575. assert_equal 'f', $6
  576. assert_equal 'g', $7
  577. assert_equal 'h', $8
  578. assert_equal 'i', $9
  579. /re/ =~ 'not match'
  580. assert_nil $~
  581. assert_nil $`
  582. assert_nil $&
  583. assert_nil $'
  584. assert_nil $+
  585. assert_nil $1
  586. assert_nil $2
  587. assert_nil $3
  588. assert_nil $4
  589. assert_nil $5
  590. assert_nil $6
  591. assert_nil $7
  592. assert_nil $8
  593. assert_nil $9
  594. end
  595. def test_array_splat
  596. feature1125 = '[ruby-core:21901]'
  597. a = []
  598. assert_equal [], [*a]
  599. assert_equal [1], [1, *a]
  600. assert_not_same(a, [*a], feature1125)
  601. a = [2]
  602. assert_equal [2], [*a]
  603. assert_equal [1, 2], [1, *a]
  604. assert_not_same(a, [*a], feature1125)
  605. a = [2, 3]
  606. assert_equal [2, 3], [*a]
  607. assert_equal [1, 2, 3], [1, *a]
  608. assert_not_same(a, [*a], feature1125)
  609. a = nil
  610. assert_equal [], [*a]
  611. assert_equal [1], [1, *a]
  612. end
  613. end