summaryrefslogtreecommitdiff
path: root/test/ruby/enc
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/enc')
-rw-r--r--test/ruby/enc/test_case_comprehensive.rb61
-rw-r--r--test/ruby/enc/test_case_mapping.rb10
-rw-r--r--test/ruby/enc/test_case_options.rb12
-rw-r--r--test/ruby/enc/test_emoji_breaks.rb2
4 files changed, 42 insertions, 43 deletions
diff --git a/test/ruby/enc/test_case_comprehensive.rb b/test/ruby/enc/test_case_comprehensive.rb
index de18ac865c..b812b88b83 100644
--- a/test/ruby/enc/test_case_comprehensive.rb
+++ b/test/ruby/enc/test_case_comprehensive.rb
@@ -161,15 +161,14 @@ TestComprehensiveCaseMapping.data_files_available? and class TestComprehensiveC
end
end
- def self.generate_case_mapping_tests(encoding)
+ def self.generate_single_byte_case_mapping_tests(encoding)
all_tests
- # preselect codepoints to speed up testing for small encodings
- codepoints = @@codepoints.select do |code|
+ # precalculate codepoints to speed up testing for small encodings
+ codepoints = []
+ (0..255).each do |cp|
begin
- code.encode(encoding)
- true
- rescue Encoding::UndefinedConversionError
- false
+ codepoints << cp.chr(encoding).encode('UTF-8')
+ rescue Encoding::UndefinedConversionError, RangeError
end
end
all_tests.each do |test|
@@ -264,23 +263,23 @@ TestComprehensiveCaseMapping.data_files_available? and class TestComprehensiveC
end
end
- generate_case_mapping_tests 'US-ASCII'
- generate_case_mapping_tests 'ASCII-8BIT'
- generate_case_mapping_tests 'ISO-8859-1'
- generate_case_mapping_tests 'ISO-8859-2'
- generate_case_mapping_tests 'ISO-8859-3'
- generate_case_mapping_tests 'ISO-8859-4'
- generate_case_mapping_tests 'ISO-8859-5'
- generate_case_mapping_tests 'ISO-8859-6'
- generate_case_mapping_tests 'ISO-8859-7'
- generate_case_mapping_tests 'ISO-8859-8'
- generate_case_mapping_tests 'ISO-8859-9'
- generate_case_mapping_tests 'ISO-8859-10'
- generate_case_mapping_tests 'ISO-8859-11'
- generate_case_mapping_tests 'ISO-8859-13'
- generate_case_mapping_tests 'ISO-8859-14'
- generate_case_mapping_tests 'ISO-8859-15'
- generate_case_mapping_tests 'ISO-8859-16'
+ generate_single_byte_case_mapping_tests 'US-ASCII'
+ generate_single_byte_case_mapping_tests 'ASCII-8BIT'
+ generate_single_byte_case_mapping_tests 'ISO-8859-1'
+ generate_single_byte_case_mapping_tests 'ISO-8859-2'
+ generate_single_byte_case_mapping_tests 'ISO-8859-3'
+ generate_single_byte_case_mapping_tests 'ISO-8859-4'
+ generate_single_byte_case_mapping_tests 'ISO-8859-5'
+ generate_single_byte_case_mapping_tests 'ISO-8859-6'
+ generate_single_byte_case_mapping_tests 'ISO-8859-7'
+ generate_single_byte_case_mapping_tests 'ISO-8859-8'
+ generate_single_byte_case_mapping_tests 'ISO-8859-9'
+ generate_single_byte_case_mapping_tests 'ISO-8859-10'
+ generate_single_byte_case_mapping_tests 'ISO-8859-11'
+ generate_single_byte_case_mapping_tests 'ISO-8859-13'
+ generate_single_byte_case_mapping_tests 'ISO-8859-14'
+ generate_single_byte_case_mapping_tests 'ISO-8859-15'
+ generate_single_byte_case_mapping_tests 'ISO-8859-16'
generate_ascii_only_case_mapping_tests 'KOI8-R'
generate_ascii_only_case_mapping_tests 'KOI8-U'
generate_ascii_only_case_mapping_tests 'Big5'
@@ -291,14 +290,14 @@ TestComprehensiveCaseMapping.data_files_available? and class TestComprehensiveC
generate_ascii_only_case_mapping_tests 'GBK'
generate_ascii_only_case_mapping_tests 'Shift_JIS'
generate_ascii_only_case_mapping_tests 'Windows-31J'
- generate_case_mapping_tests 'Windows-1250'
- generate_case_mapping_tests 'Windows-1251'
- generate_case_mapping_tests 'Windows-1252'
- generate_case_mapping_tests 'Windows-1253'
- generate_case_mapping_tests 'Windows-1254'
- generate_case_mapping_tests 'Windows-1255'
+ generate_single_byte_case_mapping_tests 'Windows-1250'
+ generate_single_byte_case_mapping_tests 'Windows-1251'
+ generate_single_byte_case_mapping_tests 'Windows-1252'
+ generate_single_byte_case_mapping_tests 'Windows-1253'
+ generate_single_byte_case_mapping_tests 'Windows-1254'
+ generate_single_byte_case_mapping_tests 'Windows-1255'
generate_ascii_only_case_mapping_tests 'Windows-1256'
- generate_case_mapping_tests 'Windows-1257'
+ generate_single_byte_case_mapping_tests 'Windows-1257'
generate_unicode_case_mapping_tests 'UTF-8'
generate_unicode_case_mapping_tests 'UTF-16BE'
generate_unicode_case_mapping_tests 'UTF-16LE'
diff --git a/test/ruby/enc/test_case_mapping.rb b/test/ruby/enc/test_case_mapping.rb
index 31acdc4331..a7d1ed0d16 100644
--- a/test/ruby/enc/test_case_mapping.rb
+++ b/test/ruby/enc/test_case_mapping.rb
@@ -47,7 +47,7 @@ class TestCaseMappingPreliminary < Test::Unit::TestCase
# different properties; careful: roundtrip isn't always guaranteed
def check_swapcase_properties(expected, start, *flags)
assert_equal expected, start.swapcase(*flags)
- temp = start
+ temp = +start
assert_equal expected, temp.swapcase!(*flags)
assert_equal start, start.swapcase(*flags).swapcase(*flags)
assert_equal expected, expected.swapcase(*flags).swapcase(*flags)
@@ -61,10 +61,10 @@ class TestCaseMappingPreliminary < Test::Unit::TestCase
end
def test_invalid
- assert_raise(ArgumentError, "Should not be possible to upcase invalid string.") { "\xEB".force_encoding('UTF-8').upcase }
- assert_raise(ArgumentError, "Should not be possible to downcase invalid string.") { "\xEB".force_encoding('UTF-8').downcase }
- assert_raise(ArgumentError, "Should not be possible to capitalize invalid string.") { "\xEB".force_encoding('UTF-8').capitalize }
- assert_raise(ArgumentError, "Should not be possible to swapcase invalid string.") { "\xEB".force_encoding('UTF-8').swapcase }
+ assert_raise(ArgumentError, "Should not be possible to upcase invalid string.") { "\xEB".dup.force_encoding('UTF-8').upcase }
+ assert_raise(ArgumentError, "Should not be possible to downcase invalid string.") { "\xEB".dup.force_encoding('UTF-8').downcase }
+ assert_raise(ArgumentError, "Should not be possible to capitalize invalid string.") { "\xEB".dup.force_encoding('UTF-8').capitalize }
+ assert_raise(ArgumentError, "Should not be possible to swapcase invalid string.") { "\xEB".dup.force_encoding('UTF-8').swapcase }
end
def test_general
diff --git a/test/ruby/enc/test_case_options.rb b/test/ruby/enc/test_case_options.rb
index e9bf50fcfc..e9c81d804e 100644
--- a/test/ruby/enc/test_case_options.rb
+++ b/test/ruby/enc/test_case_options.rb
@@ -19,7 +19,7 @@ class TestCaseOptions < Test::Unit::TestCase
def assert_raise_both_types(*options)
assert_raise_functional_operations 'a', *options
- assert_raise_bang_operations 'a', *options
+ assert_raise_bang_operations(+'a', *options)
assert_raise_functional_operations :a, *options
end
@@ -51,7 +51,7 @@ class TestCaseOptions < Test::Unit::TestCase
def assert_okay_both_types(*options)
assert_okay_functional_operations 'a', *options
- assert_okay_bang_operations 'a', *options
+ assert_okay_bang_operations(+'a', *options)
assert_okay_functional_operations :a, *options
end
@@ -69,10 +69,10 @@ class TestCaseOptions < Test::Unit::TestCase
assert_raise(ArgumentError) { 'a'.upcase :fold }
assert_raise(ArgumentError) { 'a'.capitalize :fold }
assert_raise(ArgumentError) { 'a'.swapcase :fold }
- assert_nothing_raised { 'a'.downcase! :fold }
- assert_raise(ArgumentError) { 'a'.upcase! :fold }
- assert_raise(ArgumentError) { 'a'.capitalize! :fold }
- assert_raise(ArgumentError) { 'a'.swapcase! :fold }
+ assert_nothing_raised { 'a'.dup.downcase! :fold }
+ assert_raise(ArgumentError) { 'a'.dup.upcase! :fold }
+ assert_raise(ArgumentError) { 'a'.dup.capitalize! :fold }
+ assert_raise(ArgumentError) { 'a'.dup.swapcase! :fold }
assert_nothing_raised { :a.downcase :fold }
assert_raise(ArgumentError) { :a.upcase :fold }
assert_raise(ArgumentError) { :a.capitalize :fold }
diff --git a/test/ruby/enc/test_emoji_breaks.rb b/test/ruby/enc/test_emoji_breaks.rb
index bb5114680e..0873e681c3 100644
--- a/test/ruby/enc/test_emoji_breaks.rb
+++ b/test/ruby/enc/test_emoji_breaks.rb
@@ -53,7 +53,7 @@ class TestEmojiBreaks < Test::Unit::TestCase
EMOJI_DATA_FILES = %w[emoji-sequences emoji-test emoji-zwj-sequences].map do |basename|
BreakFile.new(basename, EMOJI_DATA_PATH, EMOJI_VERSION)
end
- UNICODE_DATA_FILE = BreakFile.new('emoji-variation-sequences', UNICODE_DATA_PATH, UNICODE_VERSION)
+ UNICODE_DATA_FILE = BreakFile.new('emoji-variation-sequences', UNICODE_DATA_PATH, EMOJI_VERSION)
EMOJI_DATA_FILES << UNICODE_DATA_FILE
def self.data_files_available?