diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-10-15 18:35:13 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-10-15 18:35:13 +0900 |
| commit | 6b457d2c006c333bfdc1328ecc73db7e63a6aca5 (patch) | |
| tree | d4175aeefd1bf78893e21dda70615127594ad29f /test | |
| parent | c779413df39ef7d96583bda08104491c55049fad (diff) | |
| parent | bec4d053400c3a11c8efd68c3e8bd5ea4a0bcc54 (diff) | |
| download | mruby-6b457d2c006c333bfdc1328ecc73db7e63a6aca5.tar.gz mruby-6b457d2c006c333bfdc1328ecc73db7e63a6aca5.zip | |
Merge branch 'work_for_merge' of https://github.com/zubycz/mruby into zubycz-work_for_merge
Diffstat (limited to 'test')
| -rw-r--r-- | test/t/array.rb | 5 | ||||
| -rw-r--r-- | test/t/range.rb | 68 | ||||
| -rw-r--r-- | test/t/string.rb | 4 |
3 files changed, 76 insertions, 1 deletions
diff --git a/test/t/array.rb b/test/t/array.rb index 2982cab01..b3952e5a5 100644 --- a/test/t/array.rb +++ b/test/t/array.rb @@ -57,6 +57,7 @@ assert('Array#[]', '15.2.12.5.4') do a = [ "a", "b", "c", "d", "e" ] assert_equal(["b", "c"], a[1,2]) assert_equal(["b", "c", "d"], a[1..-2]) + assert_equal(["b", "c", "d", "e"], a[1..]) skip unless Object.const_defined?(:Float) assert_equal("b", a[1.1]) end @@ -92,6 +93,10 @@ assert('Array#[]=', '15.2.12.5.5') do a[2...4] = 6 assert_equal([1,2,6,5], a) + a = [1,2,3,4,5] + a[2...] = 6 + assert_equal([1,2,6], a) + # passing self (#3274) a = [1,2,3] a[1,0] = a diff --git a/test/t/range.rb b/test/t/range.rb index 106c2866e..13843ff08 100644 --- a/test/t/range.rb +++ b/test/t/range.rb @@ -8,19 +8,30 @@ end assert('Range#==', '15.2.14.4.1') do assert_true (1..10) == (1..10) assert_false (1..10) == (1..100) + assert_false (1..10) == (1..) + + assert_true (1..) == (1..nil) + assert_true (1..) == (1..) + assert_false (1..) == (1...) + skip unless Object.const_defined?(:Float) assert_true (1..10) == Range.new(1.0, 10.0) + end assert('Range#===', '15.2.14.4.2') do a = (1..10) + b = (1..) assert_true a === 5 assert_false a === 20 + assert_true b === 20 + assert_false b === 0 end assert('Range#begin', '15.2.14.4.3') do assert_equal 1, (1..10).begin + assert_equal 1, (1..).begin end assert('Range#each', '15.2.14.4.4') do @@ -28,27 +39,38 @@ assert('Range#each', '15.2.14.4.4') do b = 0 a.each {|i| b += i} assert_equal 6, b + c = [] + (1..).each { |i| c << i; break if c.size == 10 } + assert_equal [1, 2, 3, 4, 5, 6, 7, 8 ,9, 10], c end assert('Range#end', '15.2.14.4.5') do assert_equal 10, (1..10).end + assert_nil (1..).end end assert('Range#exclude_end?', '15.2.14.4.6') do assert_true (1...10).exclude_end? assert_false (1..10).exclude_end? + assert_true (1...).exclude_end? + assert_false (1..).exclude_end? end assert('Range#first', '15.2.14.4.7') do assert_equal 1, (1..10).first + assert_equal 1, (1..).first end assert('Range#include?', '15.2.14.4.8') do assert_true (1..10).include?(10) assert_false (1..10).include?(11) + assert_true (1..).include?(10) + assert_false (1..).include?(0) assert_true (1...10).include?(9) assert_false (1...10).include?(10) + assert_true (1...).include?(10) + assert_false (1...).include?(0) end assert('Range#initialize', '15.2.14.4.9') do @@ -61,17 +83,29 @@ assert('Range#initialize', '15.2.14.4.9') do assert_false b.exclude_end? assert_raise(NameError) { (0..1).__send__(:initialize, 1, 3) } + + c = Range.new(1, nil, true) + d = Range.new(1, nil, false) + + assert_equal (1...nil), c + assert_true c.exclude_end? + assert_equal (1..nil), d + assert_false d.exclude_end? end assert('Range#last', '15.2.14.4.10') do assert_equal 10, (1..10).last + assert_nil (1..).last end assert('Range#member?', '15.2.14.4.11') do a = (1..10) + b = (1..) assert_true a.member?(5) assert_false a.member?(20) + assert_true b.member?(20) + assert_false b.member?(0) end assert('Range#to_s', '15.2.14.4.12') do @@ -79,6 +113,10 @@ assert('Range#to_s', '15.2.14.4.12') do assert_equal "0...1", (0...1).to_s assert_equal "a..b", ("a".."b").to_s assert_equal "a...b", ("a"..."b").to_s + assert_equal "0..", (0..).to_s + assert_equal "0...", (0...).to_s + assert_equal "a..", ("a"..).to_s + assert_equal "a...", ("a"...).to_s end assert('Range#inspect', '15.2.14.4.13') do @@ -86,19 +124,36 @@ assert('Range#inspect', '15.2.14.4.13') do assert_equal "0...1", (0...1).inspect assert_equal "\"a\"..\"b\"", ("a".."b").inspect assert_equal "\"a\"...\"b\"", ("a"..."b").inspect + assert_equal "0..", (0..).inspect + assert_equal "0...", (0...).inspect + assert_equal "\"a\"..", ("a"..).inspect + assert_equal "\"a\"...", ("a"...).inspect end assert('Range#eql?', '15.2.14.4.14') do assert_true (1..10).eql? (1..10) assert_false (1..10).eql? (1..100) - assert_false (1..10).eql? (Range.new(1.0, 10.0)) assert_false (1..10).eql? "1..10" + assert_true (1..).eql? (1..) + assert_false (1..).eql? (2..) + assert_false (1..).eql? "1.." + skip unless Object.const_defined?(:Float) + assert_false (1..10).eql? (Range.new(1.0, 10.0)) + assert_false (1..).eql? (Range.new(1.0, nil)) end assert('Range#initialize_copy', '15.2.14.4.15') do assert_raise(NameError) { (0..1).__send__(:initialize_copy, 1..3) } end +assert('Range#hash', '15.3.1.3.15') do + assert_kind_of(Integer, (1..10).hash) + assert_equal (1..10).hash, (1..10).hash + assert_not_equal (1..10).hash, (1...10).hash + assert_equal (1..).hash, (1..).hash + assert_not_equal (1..).hash, (1...).hash +end + assert('Range#dup') do r = (1..3).dup assert_equal 1, r.begin @@ -109,4 +164,15 @@ assert('Range#dup') do assert_equal "a", r.begin assert_equal "z", r.end assert_true r.exclude_end? + + r = (1..).dup + assert_equal 1, r.begin + assert_nil r.end + assert_false r.exclude_end? +end + +assert('Range#to_a') do + assert_equal([1, 2, 3, 4, 5], (1..5).to_a) + assert_equal([1, 2, 3, 4], (1...5).to_a) + assert_raise(RangeError) { (1..).to_a } end diff --git a/test/t/string.rb b/test/t/string.rb index 2bb988810..c1511de63 100644 --- a/test/t/string.rb +++ b/test/t/string.rb @@ -90,6 +90,7 @@ assert('String#[] with Range') do h1 = 'abc'[3..4] i1 = 'abc'[4..5] j1 = 'abcdefghijklmnopqrstuvwxyz'[1..3] + k1 = 'abcdefghijklmnopqrstuvwxyz'[-3..] a2 = 'abc'[1...0] b2 = 'abc'[1...1] c2 = 'abc'[1...2] @@ -100,6 +101,7 @@ assert('String#[] with Range') do h2 = 'abc'[3...4] i2 = 'abc'[4...5] j2 = 'abcdefghijklmnopqrstuvwxyz'[1...3] + k2 = 'abcdefghijklmnopqrstuvwxyz'[-3...] assert_equal '', a1 assert_equal 'b', b1 @@ -111,6 +113,7 @@ assert('String#[] with Range') do assert_equal '', h1 assert_nil i2 assert_equal 'bcd', j1 + assert_equal 'xyz', k1 assert_equal '', a2 assert_equal '', b2 assert_equal 'b', c2 @@ -121,6 +124,7 @@ assert('String#[] with Range') do assert_equal '', h2 assert_nil i2 assert_equal 'bc', j2 + assert_equal 'xyz', k2 end assert('String#[]=') do |
