summaryrefslogtreecommitdiff
path: root/test/reline
diff options
context:
space:
mode:
authorStan Lo <stan001212@gmail.com>2023-03-28 13:49:44 +0100
committergit <svn-admin@ruby-lang.org>2023-03-28 12:49:49 +0000
commit1e9a218ade3af90c18f42e3fea08e2fcea81222a (patch)
tree33531b5ca2e7d304f64a2947b1cf7717c683c60b /test/reline
parent417b1a36447cb2c650de55b433ba623541fb8bb3 (diff)
downloadruby-1e9a218ade3af90c18f42e3fea08e2fcea81222a.tar.gz
[ruby/reline] Expand the scanned array to later case statement more
straightforward (https://github.com/ruby/reline/pull/526) * Improve test coverage on Unicode.take_range * Add test for Unicode.calculate_width * Expand the scanned array to later case statement more straightforward
Diffstat (limited to 'test/reline')
-rw-r--r--test/reline/test_unicode.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/reline/test_unicode.rb b/test/reline/test_unicode.rb
index 0a66fe64c0..ee8e72c0d4 100644
--- a/test/reline/test_unicode.rb
+++ b/test/reline/test_unicode.rb
@@ -29,6 +29,26 @@ class Reline::Unicode::Test < Reline::TestCase
def test_take_range
assert_equal 'cdef', Reline::Unicode.take_range('abcdefghi', 2, 4)
+ assert_equal 'あde', Reline::Unicode.take_range('abあdef', 2, 4)
+ assert_equal 'zerocdef', Reline::Unicode.take_range("ab\1zero\2cdef", 2, 4)
+ assert_equal 'bzerocde', Reline::Unicode.take_range("ab\1zero\2cdef", 1, 4)
+ assert_equal "\e[31mcd\e[42mef", Reline::Unicode.take_range("\e[31mabcd\e[42mefg", 2, 4)
+ assert_equal "\e]0;1\acd", Reline::Unicode.take_range("ab\e]0;1\acd", 2, 3)
assert_equal 'いう', Reline::Unicode.take_range('あいうえお', 2, 4)
end
+
+ def test_calculate_width
+ assert_equal 9, Reline::Unicode.calculate_width('abcdefghi')
+ assert_equal 9, Reline::Unicode.calculate_width('abcdefghi', true)
+ assert_equal 7, Reline::Unicode.calculate_width('abあdef')
+ assert_equal 7, Reline::Unicode.calculate_width('abあdef', true)
+ assert_equal 14, Reline::Unicode.calculate_width("ab\1zero\2cdef")
+ assert_equal 6, Reline::Unicode.calculate_width("ab\1zero\2cdef", true)
+ assert_equal 19, Reline::Unicode.calculate_width("\e[31mabcd\e[42mefg")
+ assert_equal 7, Reline::Unicode.calculate_width("\e[31mabcd\e[42mefg", true)
+ assert_equal 12, Reline::Unicode.calculate_width("ab\e]0;1\acd")
+ assert_equal 4, Reline::Unicode.calculate_width("ab\e]0;1\acd", true)
+ assert_equal 10, Reline::Unicode.calculate_width('あいうえお')
+ assert_equal 10, Reline::Unicode.calculate_width('あいうえお', true)
+ end
end