diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-09-17 09:34:11 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-09-17 09:34:11 +0900 |
| commit | 070e04ea22d832c323e56ff75242f08ca3022fa8 (patch) | |
| tree | e6e296d99ad3780e769a5bae0d71bb5a6de75c9a /test/t/string.rb | |
| parent | 08f9a3ed041c2461fb9264c7beb64ed16a8df4e9 (diff) | |
| parent | f1c23a0f75a4a38c5077e1df30af200f3700752f (diff) | |
| download | mruby-070e04ea22d832c323e56ff75242f08ca3022fa8.tar.gz mruby-070e04ea22d832c323e56ff75242f08ca3022fa8.zip | |
Merge pull request #2953 from takahashim/string_aset
support String#[pos, len]= val
Diffstat (limited to 'test/t/string.rb')
| -rw-r--r-- | test/t/string.rb | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/test/t/string.rb b/test/t/string.rb index 7326adce9..87aec0e21 100644 --- a/test/t/string.rb +++ b/test/t/string.rb @@ -122,6 +122,69 @@ assert('String#[] with Range') do assert_equal 'bc', j2 end +assert('String#[]=') do + # length of args is 1 + a = 'abc' + a[0] = 'X' + assert_equal 'Xbc', a + + b = 'abc' + b[-1] = 'X' + assert_equal 'abX', b + + c = 'abc' + assert_raise(IndexError) do + c[10] = 'X' + end + + d = 'abc' + assert_raise(IndexError) do + d[-10] = 'X' + end + + e = 'abc' + e[1.1] = 'X' + assert_equal 'aXc', e + + + # length of args is 2 + a1 = 'abc' + assert_raise(IndexError) do + a1[0, -1] = 'X' + end + + b1 = 'abc' + assert_raise(IndexError) do + b1[10, 0] = 'X' + end + + c1 = 'abc' + assert_raise(IndexError) do + c1[-10, 0] = 'X' + end + + d1 = 'abc' + d1[0, 0] = 'X' + assert_equal 'Xabc', d1 + + e1 = 'abc' + e1[1, 3] = 'X' + assert_equal 'aX', e1 + + # args is RegExp + # It will be tested in mrbgems. + + # args is String + a3 = 'abc' + a3['bc'] = 'X' + assert_equal a3, 'aX' + + b3 = 'abc' + assert_raise(IndexError) do + b3['XX'] = 'Y' + end +end + assert('String#capitalize', '15.2.10.5.7') do a = 'abc' a.capitalize |
