summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-10-15 18:35:13 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-10-15 18:35:13 +0900
commit6b457d2c006c333bfdc1328ecc73db7e63a6aca5 (patch)
treed4175aeefd1bf78893e21dda70615127594ad29f /test
parentc779413df39ef7d96583bda08104491c55049fad (diff)
parentbec4d053400c3a11c8efd68c3e8bd5ea4a0bcc54 (diff)
downloadmruby-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.rb5
-rw-r--r--test/t/range.rb68
-rw-r--r--test/t/string.rb4
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