diff options
Diffstat (limited to 'spec/ruby/core/encoding/compatible_spec.rb')
| -rw-r--r-- | spec/ruby/core/encoding/compatible_spec.rb | 634 |
1 files changed, 324 insertions, 310 deletions
diff --git a/spec/ruby/core/encoding/compatible_spec.rb b/spec/ruby/core/encoding/compatible_spec.rb index d5b958ea0b..0d620e5bf3 100644 --- a/spec/ruby/core/encoding/compatible_spec.rb +++ b/spec/ruby/core/encoding/compatible_spec.rb @@ -1,4 +1,4 @@ -# -*- encoding: binary -*- +# encoding: binary require_relative '../../spec_helper' @@ -55,7 +55,7 @@ describe "Encoding.compatible? String, String" do it "returns nil if the second's Encoding is not ASCII compatible" do a = "abc".dup.force_encoding("UTF-8") b = "1234".dup.force_encoding("UTF-16LE") - Encoding.compatible?(a, b).should be_nil + Encoding.compatible?(a, b).should == nil end end @@ -69,7 +69,7 @@ describe "Encoding.compatible? String, String" do end it "returns nil if the second encoding is ASCII compatible but neither String's encoding is ASCII only" do - Encoding.compatible?("\xff", "\u3042".encode("utf-8")).should be_nil + Encoding.compatible?("\xff", "\u3042".encode("utf-8")).should == nil end end @@ -79,15 +79,15 @@ describe "Encoding.compatible? String, String" do end it "returns nil when the second String is US-ASCII" do - Encoding.compatible?(@str, "def".encode("us-ascii")).should be_nil + Encoding.compatible?(@str, "def".encode("us-ascii")).should == nil end it "returns nil when the second String is BINARY and ASCII only" do - Encoding.compatible?(@str, "\x7f").should be_nil + Encoding.compatible?(@str, "\x7f").should == nil end it "returns nil when the second String is BINARY but not ASCII only" do - Encoding.compatible?(@str, "\xff").should be_nil + Encoding.compatible?(@str, "\xff").should == nil end it "returns the Encoding when the second's Encoding is not ASCII compatible but the same as the first's Encoding" do @@ -110,15 +110,15 @@ describe "Encoding.compatible? String, String" do end it "returns nil when the second's Encoding is BINARY but not ASCII only" do - Encoding.compatible?(@str, "\xff").should be_nil + Encoding.compatible?(@str, "\xff").should == nil end it "returns nil when the second's Encoding is invalid and ASCII only" do - Encoding.compatible?(@str, "\x7f".dup.force_encoding("utf-16be")).should be_nil + Encoding.compatible?(@str, "\x7f\x7f".dup.force_encoding("utf-16be")).should == nil end it "returns nil when the second's Encoding is invalid and not ASCII only" do - Encoding.compatible?(@str, "\xff".dup.force_encoding("utf-16be")).should be_nil + Encoding.compatible?(@str, "\xff\xff".dup.force_encoding("utf-16be")).should == nil end it "returns the Encoding when the second's Encoding is invalid but the same as the first" do @@ -171,7 +171,7 @@ describe "Encoding.compatible? String, String" do # Use the following script to regenerate the matrix: # # ``` -# # -*- encoding: binary -*- +# # encoding: binary # # ENCODINGS = [ # "US-ASCII", @@ -186,8 +186,8 @@ describe "Encoding.compatible? String, String" do # # VALUES = { # empty: "", -# :"7bits" => "\x01", -# non7bits: "\x81" +# :"7bits" => "\x01\x01", +# non7bits: "\x01\x81" # } # # ENCODINGS.product(TYPES, ENCODINGS, TYPES).each do |encoding1, type1, encoding2, type2| @@ -202,329 +202,329 @@ describe "Encoding.compatible? String, String" do matrix = [ ["US-ASCII", "", "US-ASCII", "", "US-ASCII"], - ["US-ASCII", "", "US-ASCII", "\x01", "US-ASCII"], - ["US-ASCII", "", "US-ASCII", "\x81", "US-ASCII"], + ["US-ASCII", "", "US-ASCII", "\x01\x01", "US-ASCII"], + ["US-ASCII", "", "US-ASCII", "\x01\x81", "US-ASCII"], ["US-ASCII", "", "UTF-8", "", "US-ASCII"], - ["US-ASCII", "", "UTF-8", "\u0001", "US-ASCII"], - ["US-ASCII", "", "UTF-8", "\x81", "UTF-8"], + ["US-ASCII", "", "UTF-8", "\u0001\u0001", "US-ASCII"], + ["US-ASCII", "", "UTF-8", "\u0001\x81", "UTF-8"], ["US-ASCII", "", "ASCII-8BIT", "", "US-ASCII"], - ["US-ASCII", "", "ASCII-8BIT", "\x01", "US-ASCII"], - ["US-ASCII", "", "ASCII-8BIT", "\x81", "ASCII-8BIT"], + ["US-ASCII", "", "ASCII-8BIT", "\x01\x01", "US-ASCII"], + ["US-ASCII", "", "ASCII-8BIT", "\x01\x81", "ASCII-8BIT"], ["US-ASCII", "", "ISO-8859-1", "", "US-ASCII"], - ["US-ASCII", "", "ISO-8859-1", "\x01", "US-ASCII"], - ["US-ASCII", "", "ISO-8859-1", "\x81", "ISO-8859-1"], + ["US-ASCII", "", "ISO-8859-1", "\x01\x01", "US-ASCII"], + ["US-ASCII", "", "ISO-8859-1", "\x01\x81", "ISO-8859-1"], ["US-ASCII", "", "UTF-16BE", "", "US-ASCII"], - ["US-ASCII", "", "UTF-16BE", "\x01", "UTF-16BE"], - ["US-ASCII", "", "UTF-16BE", "\x81", "UTF-16BE"], + ["US-ASCII", "", "UTF-16BE", "\u0101", "UTF-16BE"], + ["US-ASCII", "", "UTF-16BE", "\u0181", "UTF-16BE"], ["US-ASCII", "", "ISO-2022-JP", "", "US-ASCII"], - ["US-ASCII", "", "ISO-2022-JP", "\x01", "ISO-2022-JP"], - ["US-ASCII", "", "ISO-2022-JP", "\x81", "ISO-2022-JP"], - ["US-ASCII", "\x01", "US-ASCII", "", "US-ASCII"], - ["US-ASCII", "\x01", "US-ASCII", "\x01", "US-ASCII"], - ["US-ASCII", "\x01", "US-ASCII", "\x81", "US-ASCII"], - ["US-ASCII", "\x01", "UTF-8", "", "US-ASCII"], - ["US-ASCII", "\x01", "UTF-8", "\u0001", "US-ASCII"], - ["US-ASCII", "\x01", "UTF-8", "\x81", "UTF-8"], - ["US-ASCII", "\x01", "ASCII-8BIT", "", "US-ASCII"], - ["US-ASCII", "\x01", "ASCII-8BIT", "\x01", "US-ASCII"], - ["US-ASCII", "\x01", "ASCII-8BIT", "\x81", "ASCII-8BIT"], - ["US-ASCII", "\x01", "ISO-8859-1", "", "US-ASCII"], - ["US-ASCII", "\x01", "ISO-8859-1", "\x01", "US-ASCII"], - ["US-ASCII", "\x01", "ISO-8859-1", "\x81", "ISO-8859-1"], - ["US-ASCII", "\x01", "UTF-16BE", "", "US-ASCII"], - ["US-ASCII", "\x01", "UTF-16BE", "\x01", nil], - ["US-ASCII", "\x01", "UTF-16BE", "\x81", nil], - ["US-ASCII", "\x01", "ISO-2022-JP", "", "US-ASCII"], - ["US-ASCII", "\x01", "ISO-2022-JP", "\x01", nil], - ["US-ASCII", "\x01", "ISO-2022-JP", "\x81", nil], - ["US-ASCII", "\x81", "US-ASCII", "", "US-ASCII"], - ["US-ASCII", "\x81", "US-ASCII", "\x01", "US-ASCII"], - ["US-ASCII", "\x81", "US-ASCII", "\x81", "US-ASCII"], - ["US-ASCII", "\x81", "UTF-8", "", "US-ASCII"], - ["US-ASCII", "\x81", "UTF-8", "\u0001", "US-ASCII"], - ["US-ASCII", "\x81", "UTF-8", "\x81", nil], - ["US-ASCII", "\x81", "ASCII-8BIT", "", "US-ASCII"], - ["US-ASCII", "\x81", "ASCII-8BIT", "\x01", "US-ASCII"], - ["US-ASCII", "\x81", "ASCII-8BIT", "\x81", nil], - ["US-ASCII", "\x81", "ISO-8859-1", "", "US-ASCII"], - ["US-ASCII", "\x81", "ISO-8859-1", "\x01", "US-ASCII"], - ["US-ASCII", "\x81", "ISO-8859-1", "\x81", nil], - ["US-ASCII", "\x81", "UTF-16BE", "", "US-ASCII"], - ["US-ASCII", "\x81", "UTF-16BE", "\x01", nil], - ["US-ASCII", "\x81", "UTF-16BE", "\x81", nil], - ["US-ASCII", "\x81", "ISO-2022-JP", "", "US-ASCII"], - ["US-ASCII", "\x81", "ISO-2022-JP", "\x01", nil], - ["US-ASCII", "\x81", "ISO-2022-JP", "\x81", nil], + ["US-ASCII", "", "ISO-2022-JP", "\x01\x01", "ISO-2022-JP"], + ["US-ASCII", "", "ISO-2022-JP", "\x01\x81", "ISO-2022-JP"], + ["US-ASCII", "\x01\x01", "US-ASCII", "", "US-ASCII"], + ["US-ASCII", "\x01\x01", "US-ASCII", "\x01\x01", "US-ASCII"], + ["US-ASCII", "\x01\x01", "US-ASCII", "\x01\x81", "US-ASCII"], + ["US-ASCII", "\x01\x01", "UTF-8", "", "US-ASCII"], + ["US-ASCII", "\x01\x01", "UTF-8", "\u0001\u0001", "US-ASCII"], + ["US-ASCII", "\x01\x01", "UTF-8", "\u0001\x81", "UTF-8"], + ["US-ASCII", "\x01\x01", "ASCII-8BIT", "", "US-ASCII"], + ["US-ASCII", "\x01\x01", "ASCII-8BIT", "\x01\x01", "US-ASCII"], + ["US-ASCII", "\x01\x01", "ASCII-8BIT", "\x01\x81", "ASCII-8BIT"], + ["US-ASCII", "\x01\x01", "ISO-8859-1", "", "US-ASCII"], + ["US-ASCII", "\x01\x01", "ISO-8859-1", "\x01\x01", "US-ASCII"], + ["US-ASCII", "\x01\x01", "ISO-8859-1", "\x01\x81", "ISO-8859-1"], + ["US-ASCII", "\x01\x01", "UTF-16BE", "", "US-ASCII"], + ["US-ASCII", "\x01\x01", "UTF-16BE", "\u0101", nil], + ["US-ASCII", "\x01\x01", "UTF-16BE", "\u0181", nil], + ["US-ASCII", "\x01\x01", "ISO-2022-JP", "", "US-ASCII"], + ["US-ASCII", "\x01\x01", "ISO-2022-JP", "\x01\x01", nil], + ["US-ASCII", "\x01\x01", "ISO-2022-JP", "\x01\x81", nil], + ["US-ASCII", "\x01\x81", "US-ASCII", "", "US-ASCII"], + ["US-ASCII", "\x01\x81", "US-ASCII", "\x01\x01", "US-ASCII"], + ["US-ASCII", "\x01\x81", "US-ASCII", "\x01\x81", "US-ASCII"], + ["US-ASCII", "\x01\x81", "UTF-8", "", "US-ASCII"], + ["US-ASCII", "\x01\x81", "UTF-8", "\u0001\u0001", "US-ASCII"], + ["US-ASCII", "\x01\x81", "UTF-8", "\u0001\x81", nil], + ["US-ASCII", "\x01\x81", "ASCII-8BIT", "", "US-ASCII"], + ["US-ASCII", "\x01\x81", "ASCII-8BIT", "\x01\x01", "US-ASCII"], + ["US-ASCII", "\x01\x81", "ASCII-8BIT", "\x01\x81", nil], + ["US-ASCII", "\x01\x81", "ISO-8859-1", "", "US-ASCII"], + ["US-ASCII", "\x01\x81", "ISO-8859-1", "\x01\x01", "US-ASCII"], + ["US-ASCII", "\x01\x81", "ISO-8859-1", "\x01\x81", nil], + ["US-ASCII", "\x01\x81", "UTF-16BE", "", "US-ASCII"], + ["US-ASCII", "\x01\x81", "UTF-16BE", "\u0101", nil], + ["US-ASCII", "\x01\x81", "UTF-16BE", "\u0181", nil], + ["US-ASCII", "\x01\x81", "ISO-2022-JP", "", "US-ASCII"], + ["US-ASCII", "\x01\x81", "ISO-2022-JP", "\x01\x01", nil], + ["US-ASCII", "\x01\x81", "ISO-2022-JP", "\x01\x81", nil], ["UTF-8", "", "US-ASCII", "", "UTF-8"], - ["UTF-8", "", "US-ASCII", "\x01", "UTF-8"], - ["UTF-8", "", "US-ASCII", "\x81", "US-ASCII"], + ["UTF-8", "", "US-ASCII", "\x01\x01", "UTF-8"], + ["UTF-8", "", "US-ASCII", "\x01\x81", "US-ASCII"], ["UTF-8", "", "UTF-8", "", "UTF-8"], - ["UTF-8", "", "UTF-8", "\u0001", "UTF-8"], - ["UTF-8", "", "UTF-8", "\x81", "UTF-8"], + ["UTF-8", "", "UTF-8", "\u0001\u0001", "UTF-8"], + ["UTF-8", "", "UTF-8", "\u0001\x81", "UTF-8"], ["UTF-8", "", "ASCII-8BIT", "", "UTF-8"], - ["UTF-8", "", "ASCII-8BIT", "\x01", "UTF-8"], - ["UTF-8", "", "ASCII-8BIT", "\x81", "ASCII-8BIT"], + ["UTF-8", "", "ASCII-8BIT", "\x01\x01", "UTF-8"], + ["UTF-8", "", "ASCII-8BIT", "\x01\x81", "ASCII-8BIT"], ["UTF-8", "", "ISO-8859-1", "", "UTF-8"], - ["UTF-8", "", "ISO-8859-1", "\x01", "UTF-8"], - ["UTF-8", "", "ISO-8859-1", "\x81", "ISO-8859-1"], + ["UTF-8", "", "ISO-8859-1", "\x01\x01", "UTF-8"], + ["UTF-8", "", "ISO-8859-1", "\x01\x81", "ISO-8859-1"], ["UTF-8", "", "UTF-16BE", "", "UTF-8"], - ["UTF-8", "", "UTF-16BE", "\x01", "UTF-16BE"], - ["UTF-8", "", "UTF-16BE", "\x81", "UTF-16BE"], + ["UTF-8", "", "UTF-16BE", "\u0101", "UTF-16BE"], + ["UTF-8", "", "UTF-16BE", "\u0181", "UTF-16BE"], ["UTF-8", "", "ISO-2022-JP", "", "UTF-8"], - ["UTF-8", "", "ISO-2022-JP", "\x01", "ISO-2022-JP"], - ["UTF-8", "", "ISO-2022-JP", "\x81", "ISO-2022-JP"], - ["UTF-8", "\u0001", "US-ASCII", "", "UTF-8"], - ["UTF-8", "\u0001", "US-ASCII", "\x01", "UTF-8"], - ["UTF-8", "\u0001", "US-ASCII", "\x81", "US-ASCII"], - ["UTF-8", "\u0001", "UTF-8", "", "UTF-8"], - ["UTF-8", "\u0001", "UTF-8", "\u0001", "UTF-8"], - ["UTF-8", "\u0001", "UTF-8", "\x81", "UTF-8"], - ["UTF-8", "\u0001", "ASCII-8BIT", "", "UTF-8"], - ["UTF-8", "\u0001", "ASCII-8BIT", "\x01", "UTF-8"], - ["UTF-8", "\u0001", "ASCII-8BIT", "\x81", "ASCII-8BIT"], - ["UTF-8", "\u0001", "ISO-8859-1", "", "UTF-8"], - ["UTF-8", "\u0001", "ISO-8859-1", "\x01", "UTF-8"], - ["UTF-8", "\u0001", "ISO-8859-1", "\x81", "ISO-8859-1"], - ["UTF-8", "\u0001", "UTF-16BE", "", "UTF-8"], - ["UTF-8", "\u0001", "UTF-16BE", "\x01", nil], - ["UTF-8", "\u0001", "UTF-16BE", "\x81", nil], - ["UTF-8", "\u0001", "ISO-2022-JP", "", "UTF-8"], - ["UTF-8", "\u0001", "ISO-2022-JP", "\x01", nil], - ["UTF-8", "\u0001", "ISO-2022-JP", "\x81", nil], - ["UTF-8", "\x81", "US-ASCII", "", "UTF-8"], - ["UTF-8", "\x81", "US-ASCII", "\x01", "UTF-8"], - ["UTF-8", "\x81", "US-ASCII", "\x81", nil], - ["UTF-8", "\x81", "UTF-8", "", "UTF-8"], - ["UTF-8", "\x81", "UTF-8", "\u0001", "UTF-8"], - ["UTF-8", "\x81", "UTF-8", "\x81", "UTF-8"], - ["UTF-8", "\x81", "ASCII-8BIT", "", "UTF-8"], - ["UTF-8", "\x81", "ASCII-8BIT", "\x01", "UTF-8"], - ["UTF-8", "\x81", "ASCII-8BIT", "\x81", nil], - ["UTF-8", "\x81", "ISO-8859-1", "", "UTF-8"], - ["UTF-8", "\x81", "ISO-8859-1", "\x01", "UTF-8"], - ["UTF-8", "\x81", "ISO-8859-1", "\x81", nil], - ["UTF-8", "\x81", "UTF-16BE", "", "UTF-8"], - ["UTF-8", "\x81", "UTF-16BE", "\x01", nil], - ["UTF-8", "\x81", "UTF-16BE", "\x81", nil], - ["UTF-8", "\x81", "ISO-2022-JP", "", "UTF-8"], - ["UTF-8", "\x81", "ISO-2022-JP", "\x01", nil], - ["UTF-8", "\x81", "ISO-2022-JP", "\x81", nil], + ["UTF-8", "", "ISO-2022-JP", "\x01\x01", "ISO-2022-JP"], + ["UTF-8", "", "ISO-2022-JP", "\x01\x81", "ISO-2022-JP"], + ["UTF-8", "\u0001\u0001", "US-ASCII", "", "UTF-8"], + ["UTF-8", "\u0001\u0001", "US-ASCII", "\x01\x01", "UTF-8"], + ["UTF-8", "\u0001\u0001", "US-ASCII", "\x01\x81", "US-ASCII"], + ["UTF-8", "\u0001\u0001", "UTF-8", "", "UTF-8"], + ["UTF-8", "\u0001\u0001", "UTF-8", "\u0001\u0001", "UTF-8"], + ["UTF-8", "\u0001\u0001", "UTF-8", "\u0001\x81", "UTF-8"], + ["UTF-8", "\u0001\u0001", "ASCII-8BIT", "", "UTF-8"], + ["UTF-8", "\u0001\u0001", "ASCII-8BIT", "\x01\x01", "UTF-8"], + ["UTF-8", "\u0001\u0001", "ASCII-8BIT", "\x01\x81", "ASCII-8BIT"], + ["UTF-8", "\u0001\u0001", "ISO-8859-1", "", "UTF-8"], + ["UTF-8", "\u0001\u0001", "ISO-8859-1", "\x01\x01", "UTF-8"], + ["UTF-8", "\u0001\u0001", "ISO-8859-1", "\x01\x81", "ISO-8859-1"], + ["UTF-8", "\u0001\u0001", "UTF-16BE", "", "UTF-8"], + ["UTF-8", "\u0001\u0001", "UTF-16BE", "\u0101", nil], + ["UTF-8", "\u0001\u0001", "UTF-16BE", "\u0181", nil], + ["UTF-8", "\u0001\u0001", "ISO-2022-JP", "", "UTF-8"], + ["UTF-8", "\u0001\u0001", "ISO-2022-JP", "\x01\x01", nil], + ["UTF-8", "\u0001\u0001", "ISO-2022-JP", "\x01\x81", nil], + ["UTF-8", "\u0001\x81", "US-ASCII", "", "UTF-8"], + ["UTF-8", "\u0001\x81", "US-ASCII", "\x01\x01", "UTF-8"], + ["UTF-8", "\u0001\x81", "US-ASCII", "\x01\x81", nil], + ["UTF-8", "\u0001\x81", "UTF-8", "", "UTF-8"], + ["UTF-8", "\u0001\x81", "UTF-8", "\u0001\u0001", "UTF-8"], + ["UTF-8", "\u0001\x81", "UTF-8", "\u0001\x81", "UTF-8"], + ["UTF-8", "\u0001\x81", "ASCII-8BIT", "", "UTF-8"], + ["UTF-8", "\u0001\x81", "ASCII-8BIT", "\x01\x01", "UTF-8"], + ["UTF-8", "\u0001\x81", "ASCII-8BIT", "\x01\x81", nil], + ["UTF-8", "\u0001\x81", "ISO-8859-1", "", "UTF-8"], + ["UTF-8", "\u0001\x81", "ISO-8859-1", "\x01\x01", "UTF-8"], + ["UTF-8", "\u0001\x81", "ISO-8859-1", "\x01\x81", nil], + ["UTF-8", "\u0001\x81", "UTF-16BE", "", "UTF-8"], + ["UTF-8", "\u0001\x81", "UTF-16BE", "\u0101", nil], + ["UTF-8", "\u0001\x81", "UTF-16BE", "\u0181", nil], + ["UTF-8", "\u0001\x81", "ISO-2022-JP", "", "UTF-8"], + ["UTF-8", "\u0001\x81", "ISO-2022-JP", "\x01\x01", nil], + ["UTF-8", "\u0001\x81", "ISO-2022-JP", "\x01\x81", nil], ["ASCII-8BIT", "", "US-ASCII", "", "ASCII-8BIT"], - ["ASCII-8BIT", "", "US-ASCII", "\x01", "ASCII-8BIT"], - ["ASCII-8BIT", "", "US-ASCII", "\x81", "US-ASCII"], + ["ASCII-8BIT", "", "US-ASCII", "\x01\x01", "ASCII-8BIT"], + ["ASCII-8BIT", "", "US-ASCII", "\x01\x81", "US-ASCII"], ["ASCII-8BIT", "", "UTF-8", "", "ASCII-8BIT"], - ["ASCII-8BIT", "", "UTF-8", "\u0001", "ASCII-8BIT"], - ["ASCII-8BIT", "", "UTF-8", "\x81", "UTF-8"], + ["ASCII-8BIT", "", "UTF-8", "\u0001\u0001", "ASCII-8BIT"], + ["ASCII-8BIT", "", "UTF-8", "\u0001\x81", "UTF-8"], ["ASCII-8BIT", "", "ASCII-8BIT", "", "ASCII-8BIT"], - ["ASCII-8BIT", "", "ASCII-8BIT", "\x01", "ASCII-8BIT"], - ["ASCII-8BIT", "", "ASCII-8BIT", "\x81", "ASCII-8BIT"], + ["ASCII-8BIT", "", "ASCII-8BIT", "\x01\x01", "ASCII-8BIT"], + ["ASCII-8BIT", "", "ASCII-8BIT", "\x01\x81", "ASCII-8BIT"], ["ASCII-8BIT", "", "ISO-8859-1", "", "ASCII-8BIT"], - ["ASCII-8BIT", "", "ISO-8859-1", "\x01", "ASCII-8BIT"], - ["ASCII-8BIT", "", "ISO-8859-1", "\x81", "ISO-8859-1"], + ["ASCII-8BIT", "", "ISO-8859-1", "\x01\x01", "ASCII-8BIT"], + ["ASCII-8BIT", "", "ISO-8859-1", "\x01\x81", "ISO-8859-1"], ["ASCII-8BIT", "", "UTF-16BE", "", "ASCII-8BIT"], - ["ASCII-8BIT", "", "UTF-16BE", "\x01", "UTF-16BE"], - ["ASCII-8BIT", "", "UTF-16BE", "\x81", "UTF-16BE"], + ["ASCII-8BIT", "", "UTF-16BE", "\u0101", "UTF-16BE"], + ["ASCII-8BIT", "", "UTF-16BE", "\u0181", "UTF-16BE"], ["ASCII-8BIT", "", "ISO-2022-JP", "", "ASCII-8BIT"], - ["ASCII-8BIT", "", "ISO-2022-JP", "\x01", "ISO-2022-JP"], - ["ASCII-8BIT", "", "ISO-2022-JP", "\x81", "ISO-2022-JP"], - ["ASCII-8BIT", "\x01", "US-ASCII", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x01", "US-ASCII", "\x01", "ASCII-8BIT"], - ["ASCII-8BIT", "\x01", "US-ASCII", "\x81", "US-ASCII"], - ["ASCII-8BIT", "\x01", "UTF-8", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x01", "UTF-8", "\u0001", "ASCII-8BIT"], - ["ASCII-8BIT", "\x01", "UTF-8", "\x81", "UTF-8"], - ["ASCII-8BIT", "\x01", "ASCII-8BIT", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x01", "ASCII-8BIT", "\x01", "ASCII-8BIT"], - ["ASCII-8BIT", "\x01", "ASCII-8BIT", "\x81", "ASCII-8BIT"], - ["ASCII-8BIT", "\x01", "ISO-8859-1", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x01", "ISO-8859-1", "\x01", "ASCII-8BIT"], - ["ASCII-8BIT", "\x01", "ISO-8859-1", "\x81", "ISO-8859-1"], - ["ASCII-8BIT", "\x01", "UTF-16BE", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x01", "UTF-16BE", "\x01", nil], - ["ASCII-8BIT", "\x01", "UTF-16BE", "\x81", nil], - ["ASCII-8BIT", "\x01", "ISO-2022-JP", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x01", "ISO-2022-JP", "\x01", nil], - ["ASCII-8BIT", "\x01", "ISO-2022-JP", "\x81", nil], - ["ASCII-8BIT", "\x81", "US-ASCII", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x81", "US-ASCII", "\x01", "ASCII-8BIT"], - ["ASCII-8BIT", "\x81", "US-ASCII", "\x81", nil], - ["ASCII-8BIT", "\x81", "UTF-8", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x81", "UTF-8", "\u0001", "ASCII-8BIT"], - ["ASCII-8BIT", "\x81", "UTF-8", "\x81", nil], - ["ASCII-8BIT", "\x81", "ASCII-8BIT", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x81", "ASCII-8BIT", "\x01", "ASCII-8BIT"], - ["ASCII-8BIT", "\x81", "ASCII-8BIT", "\x81", "ASCII-8BIT"], - ["ASCII-8BIT", "\x81", "ISO-8859-1", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x81", "ISO-8859-1", "\x01", "ASCII-8BIT"], - ["ASCII-8BIT", "\x81", "ISO-8859-1", "\x81", nil], - ["ASCII-8BIT", "\x81", "UTF-16BE", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x81", "UTF-16BE", "\x01", nil], - ["ASCII-8BIT", "\x81", "UTF-16BE", "\x81", nil], - ["ASCII-8BIT", "\x81", "ISO-2022-JP", "", "ASCII-8BIT"], - ["ASCII-8BIT", "\x81", "ISO-2022-JP", "\x01", nil], - ["ASCII-8BIT", "\x81", "ISO-2022-JP", "\x81", nil], + ["ASCII-8BIT", "", "ISO-2022-JP", "\x01\x01", "ISO-2022-JP"], + ["ASCII-8BIT", "", "ISO-2022-JP", "\x01\x81", "ISO-2022-JP"], + ["ASCII-8BIT", "\x01\x01", "US-ASCII", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x01", "US-ASCII", "\x01\x01", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x01", "US-ASCII", "\x01\x81", "US-ASCII"], + ["ASCII-8BIT", "\x01\x01", "UTF-8", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x01", "UTF-8", "\u0001\u0001", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x01", "UTF-8", "\u0001\x81", "UTF-8"], + ["ASCII-8BIT", "\x01\x01", "ASCII-8BIT", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x01", "ASCII-8BIT", "\x01\x01", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x01", "ASCII-8BIT", "\x01\x81", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x01", "ISO-8859-1", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x01", "ISO-8859-1", "\x01\x01", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x01", "ISO-8859-1", "\x01\x81", "ISO-8859-1"], + ["ASCII-8BIT", "\x01\x01", "UTF-16BE", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x01", "UTF-16BE", "\u0101", nil], + ["ASCII-8BIT", "\x01\x01", "UTF-16BE", "\u0181", nil], + ["ASCII-8BIT", "\x01\x01", "ISO-2022-JP", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x01", "ISO-2022-JP", "\x01\x01", nil], + ["ASCII-8BIT", "\x01\x01", "ISO-2022-JP", "\x01\x81", nil], + ["ASCII-8BIT", "\x01\x81", "US-ASCII", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x81", "US-ASCII", "\x01\x01", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x81", "US-ASCII", "\x01\x81", nil], + ["ASCII-8BIT", "\x01\x81", "UTF-8", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x81", "UTF-8", "\u0001\u0001", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x81", "UTF-8", "\u0001\x81", nil], + ["ASCII-8BIT", "\x01\x81", "ASCII-8BIT", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x81", "ASCII-8BIT", "\x01\x01", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x81", "ASCII-8BIT", "\x01\x81", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x81", "ISO-8859-1", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x81", "ISO-8859-1", "\x01\x01", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x81", "ISO-8859-1", "\x01\x81", nil], + ["ASCII-8BIT", "\x01\x81", "UTF-16BE", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x81", "UTF-16BE", "\u0101", nil], + ["ASCII-8BIT", "\x01\x81", "UTF-16BE", "\u0181", nil], + ["ASCII-8BIT", "\x01\x81", "ISO-2022-JP", "", "ASCII-8BIT"], + ["ASCII-8BIT", "\x01\x81", "ISO-2022-JP", "\x01\x01", nil], + ["ASCII-8BIT", "\x01\x81", "ISO-2022-JP", "\x01\x81", nil], ["ISO-8859-1", "", "US-ASCII", "", "ISO-8859-1"], - ["ISO-8859-1", "", "US-ASCII", "\x01", "ISO-8859-1"], - ["ISO-8859-1", "", "US-ASCII", "\x81", "US-ASCII"], + ["ISO-8859-1", "", "US-ASCII", "\x01\x01", "ISO-8859-1"], + ["ISO-8859-1", "", "US-ASCII", "\x01\x81", "US-ASCII"], ["ISO-8859-1", "", "UTF-8", "", "ISO-8859-1"], - ["ISO-8859-1", "", "UTF-8", "\u0001", "ISO-8859-1"], - ["ISO-8859-1", "", "UTF-8", "\x81", "UTF-8"], + ["ISO-8859-1", "", "UTF-8", "\u0001\u0001", "ISO-8859-1"], + ["ISO-8859-1", "", "UTF-8", "\u0001\x81", "UTF-8"], ["ISO-8859-1", "", "ASCII-8BIT", "", "ISO-8859-1"], - ["ISO-8859-1", "", "ASCII-8BIT", "\x01", "ISO-8859-1"], - ["ISO-8859-1", "", "ASCII-8BIT", "\x81", "ASCII-8BIT"], + ["ISO-8859-1", "", "ASCII-8BIT", "\x01\x01", "ISO-8859-1"], + ["ISO-8859-1", "", "ASCII-8BIT", "\x01\x81", "ASCII-8BIT"], ["ISO-8859-1", "", "ISO-8859-1", "", "ISO-8859-1"], - ["ISO-8859-1", "", "ISO-8859-1", "\x01", "ISO-8859-1"], - ["ISO-8859-1", "", "ISO-8859-1", "\x81", "ISO-8859-1"], + ["ISO-8859-1", "", "ISO-8859-1", "\x01\x01", "ISO-8859-1"], + ["ISO-8859-1", "", "ISO-8859-1", "\x01\x81", "ISO-8859-1"], ["ISO-8859-1", "", "UTF-16BE", "", "ISO-8859-1"], - ["ISO-8859-1", "", "UTF-16BE", "\x01", "UTF-16BE"], - ["ISO-8859-1", "", "UTF-16BE", "\x81", "UTF-16BE"], + ["ISO-8859-1", "", "UTF-16BE", "\u0101", "UTF-16BE"], + ["ISO-8859-1", "", "UTF-16BE", "\u0181", "UTF-16BE"], ["ISO-8859-1", "", "ISO-2022-JP", "", "ISO-8859-1"], - ["ISO-8859-1", "", "ISO-2022-JP", "\x01", "ISO-2022-JP"], - ["ISO-8859-1", "", "ISO-2022-JP", "\x81", "ISO-2022-JP"], - ["ISO-8859-1", "\x01", "US-ASCII", "", "ISO-8859-1"], - ["ISO-8859-1", "\x01", "US-ASCII", "\x01", "ISO-8859-1"], - ["ISO-8859-1", "\x01", "US-ASCII", "\x81", "US-ASCII"], - ["ISO-8859-1", "\x01", "UTF-8", "", "ISO-8859-1"], - ["ISO-8859-1", "\x01", "UTF-8", "\u0001", "ISO-8859-1"], - ["ISO-8859-1", "\x01", "UTF-8", "\x81", "UTF-8"], - ["ISO-8859-1", "\x01", "ASCII-8BIT", "", "ISO-8859-1"], - ["ISO-8859-1", "\x01", "ASCII-8BIT", "\x01", "ISO-8859-1"], - ["ISO-8859-1", "\x01", "ASCII-8BIT", "\x81", "ASCII-8BIT"], - ["ISO-8859-1", "\x01", "ISO-8859-1", "", "ISO-8859-1"], - ["ISO-8859-1", "\x01", "ISO-8859-1", "\x01", "ISO-8859-1"], - ["ISO-8859-1", "\x01", "ISO-8859-1", "\x81", "ISO-8859-1"], - ["ISO-8859-1", "\x01", "UTF-16BE", "", "ISO-8859-1"], - ["ISO-8859-1", "\x01", "UTF-16BE", "\x01", nil], - ["ISO-8859-1", "\x01", "UTF-16BE", "\x81", nil], - ["ISO-8859-1", "\x01", "ISO-2022-JP", "", "ISO-8859-1"], - ["ISO-8859-1", "\x01", "ISO-2022-JP", "\x01", nil], - ["ISO-8859-1", "\x01", "ISO-2022-JP", "\x81", nil], - ["ISO-8859-1", "\x81", "US-ASCII", "", "ISO-8859-1"], - ["ISO-8859-1", "\x81", "US-ASCII", "\x01", "ISO-8859-1"], - ["ISO-8859-1", "\x81", "US-ASCII", "\x81", nil], - ["ISO-8859-1", "\x81", "UTF-8", "", "ISO-8859-1"], - ["ISO-8859-1", "\x81", "UTF-8", "\u0001", "ISO-8859-1"], - ["ISO-8859-1", "\x81", "UTF-8", "\x81", nil], - ["ISO-8859-1", "\x81", "ASCII-8BIT", "", "ISO-8859-1"], - ["ISO-8859-1", "\x81", "ASCII-8BIT", "\x01", "ISO-8859-1"], - ["ISO-8859-1", "\x81", "ASCII-8BIT", "\x81", nil], - ["ISO-8859-1", "\x81", "ISO-8859-1", "", "ISO-8859-1"], - ["ISO-8859-1", "\x81", "ISO-8859-1", "\x01", "ISO-8859-1"], - ["ISO-8859-1", "\x81", "ISO-8859-1", "\x81", "ISO-8859-1"], - ["ISO-8859-1", "\x81", "UTF-16BE", "", "ISO-8859-1"], - ["ISO-8859-1", "\x81", "UTF-16BE", "\x01", nil], - ["ISO-8859-1", "\x81", "UTF-16BE", "\x81", nil], - ["ISO-8859-1", "\x81", "ISO-2022-JP", "", "ISO-8859-1"], - ["ISO-8859-1", "\x81", "ISO-2022-JP", "\x01", nil], - ["ISO-8859-1", "\x81", "ISO-2022-JP", "\x81", nil], + ["ISO-8859-1", "", "ISO-2022-JP", "\x01\x01", "ISO-2022-JP"], + ["ISO-8859-1", "", "ISO-2022-JP", "\x01\x81", "ISO-2022-JP"], + ["ISO-8859-1", "\x01\x01", "US-ASCII", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x01", "US-ASCII", "\x01\x01", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x01", "US-ASCII", "\x01\x81", "US-ASCII"], + ["ISO-8859-1", "\x01\x01", "UTF-8", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x01", "UTF-8", "\u0001\u0001", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x01", "UTF-8", "\u0001\x81", "UTF-8"], + ["ISO-8859-1", "\x01\x01", "ASCII-8BIT", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x01", "ASCII-8BIT", "\x01\x01", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x01", "ASCII-8BIT", "\x01\x81", "ASCII-8BIT"], + ["ISO-8859-1", "\x01\x01", "ISO-8859-1", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x01", "ISO-8859-1", "\x01\x01", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x01", "ISO-8859-1", "\x01\x81", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x01", "UTF-16BE", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x01", "UTF-16BE", "\u0101", nil], + ["ISO-8859-1", "\x01\x01", "UTF-16BE", "\u0181", nil], + ["ISO-8859-1", "\x01\x01", "ISO-2022-JP", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x01", "ISO-2022-JP", "\x01\x01", nil], + ["ISO-8859-1", "\x01\x01", "ISO-2022-JP", "\x01\x81", nil], + ["ISO-8859-1", "\x01\x81", "US-ASCII", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x81", "US-ASCII", "\x01\x01", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x81", "US-ASCII", "\x01\x81", nil], + ["ISO-8859-1", "\x01\x81", "UTF-8", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x81", "UTF-8", "\u0001\u0001", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x81", "UTF-8", "\u0001\x81", nil], + ["ISO-8859-1", "\x01\x81", "ASCII-8BIT", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x81", "ASCII-8BIT", "\x01\x01", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x81", "ASCII-8BIT", "\x01\x81", nil], + ["ISO-8859-1", "\x01\x81", "ISO-8859-1", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x81", "ISO-8859-1", "\x01\x01", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x81", "ISO-8859-1", "\x01\x81", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x81", "UTF-16BE", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x81", "UTF-16BE", "\u0101", nil], + ["ISO-8859-1", "\x01\x81", "UTF-16BE", "\u0181", nil], + ["ISO-8859-1", "\x01\x81", "ISO-2022-JP", "", "ISO-8859-1"], + ["ISO-8859-1", "\x01\x81", "ISO-2022-JP", "\x01\x01", nil], + ["ISO-8859-1", "\x01\x81", "ISO-2022-JP", "\x01\x81", nil], ["UTF-16BE", "", "US-ASCII", "", "UTF-16BE"], - ["UTF-16BE", "", "US-ASCII", "\x01", "US-ASCII"], - ["UTF-16BE", "", "US-ASCII", "\x81", "US-ASCII"], + ["UTF-16BE", "", "US-ASCII", "\x01\x01", "US-ASCII"], + ["UTF-16BE", "", "US-ASCII", "\x01\x81", "US-ASCII"], ["UTF-16BE", "", "UTF-8", "", "UTF-16BE"], - ["UTF-16BE", "", "UTF-8", "\u0001", "UTF-8"], - ["UTF-16BE", "", "UTF-8", "\x81", "UTF-8"], + ["UTF-16BE", "", "UTF-8", "\u0001\u0001", "UTF-8"], + ["UTF-16BE", "", "UTF-8", "\u0001\x81", "UTF-8"], ["UTF-16BE", "", "ASCII-8BIT", "", "UTF-16BE"], - ["UTF-16BE", "", "ASCII-8BIT", "\x01", "ASCII-8BIT"], - ["UTF-16BE", "", "ASCII-8BIT", "\x81", "ASCII-8BIT"], + ["UTF-16BE", "", "ASCII-8BIT", "\x01\x01", "ASCII-8BIT"], + ["UTF-16BE", "", "ASCII-8BIT", "\x01\x81", "ASCII-8BIT"], ["UTF-16BE", "", "ISO-8859-1", "", "UTF-16BE"], - ["UTF-16BE", "", "ISO-8859-1", "\x01", "ISO-8859-1"], - ["UTF-16BE", "", "ISO-8859-1", "\x81", "ISO-8859-1"], + ["UTF-16BE", "", "ISO-8859-1", "\x01\x01", "ISO-8859-1"], + ["UTF-16BE", "", "ISO-8859-1", "\x01\x81", "ISO-8859-1"], ["UTF-16BE", "", "UTF-16BE", "", "UTF-16BE"], - ["UTF-16BE", "", "UTF-16BE", "\x01", "UTF-16BE"], - ["UTF-16BE", "", "UTF-16BE", "\x81", "UTF-16BE"], + ["UTF-16BE", "", "UTF-16BE", "\u0101", "UTF-16BE"], + ["UTF-16BE", "", "UTF-16BE", "\u0181", "UTF-16BE"], ["UTF-16BE", "", "ISO-2022-JP", "", "UTF-16BE"], - ["UTF-16BE", "", "ISO-2022-JP", "\x01", "ISO-2022-JP"], - ["UTF-16BE", "", "ISO-2022-JP", "\x81", "ISO-2022-JP"], - ["UTF-16BE", "\x01", "US-ASCII", "", "UTF-16BE"], - ["UTF-16BE", "\x01", "US-ASCII", "\x01", nil], - ["UTF-16BE", "\x01", "US-ASCII", "\x81", nil], - ["UTF-16BE", "\x01", "UTF-8", "", "UTF-16BE"], - ["UTF-16BE", "\x01", "UTF-8", "\u0001", nil], - ["UTF-16BE", "\x01", "UTF-8", "\x81", nil], - ["UTF-16BE", "\x01", "ASCII-8BIT", "", "UTF-16BE"], - ["UTF-16BE", "\x01", "ASCII-8BIT", "\x01", nil], - ["UTF-16BE", "\x01", "ASCII-8BIT", "\x81", nil], - ["UTF-16BE", "\x01", "ISO-8859-1", "", "UTF-16BE"], - ["UTF-16BE", "\x01", "ISO-8859-1", "\x01", nil], - ["UTF-16BE", "\x01", "ISO-8859-1", "\x81", nil], - ["UTF-16BE", "\x01", "UTF-16BE", "", "UTF-16BE"], - ["UTF-16BE", "\x01", "UTF-16BE", "\x01", "UTF-16BE"], - ["UTF-16BE", "\x01", "UTF-16BE", "\x81", "UTF-16BE"], - ["UTF-16BE", "\x01", "ISO-2022-JP", "", "UTF-16BE"], - ["UTF-16BE", "\x01", "ISO-2022-JP", "\x01", nil], - ["UTF-16BE", "\x01", "ISO-2022-JP", "\x81", nil], - ["UTF-16BE", "\x81", "US-ASCII", "", "UTF-16BE"], - ["UTF-16BE", "\x81", "US-ASCII", "\x01", nil], - ["UTF-16BE", "\x81", "US-ASCII", "\x81", nil], - ["UTF-16BE", "\x81", "UTF-8", "", "UTF-16BE"], - ["UTF-16BE", "\x81", "UTF-8", "\u0001", nil], - ["UTF-16BE", "\x81", "UTF-8", "\x81", nil], - ["UTF-16BE", "\x81", "ASCII-8BIT", "", "UTF-16BE"], - ["UTF-16BE", "\x81", "ASCII-8BIT", "\x01", nil], - ["UTF-16BE", "\x81", "ASCII-8BIT", "\x81", nil], - ["UTF-16BE", "\x81", "ISO-8859-1", "", "UTF-16BE"], - ["UTF-16BE", "\x81", "ISO-8859-1", "\x01", nil], - ["UTF-16BE", "\x81", "ISO-8859-1", "\x81", nil], - ["UTF-16BE", "\x81", "UTF-16BE", "", "UTF-16BE"], - ["UTF-16BE", "\x81", "UTF-16BE", "\x01", "UTF-16BE"], - ["UTF-16BE", "\x81", "UTF-16BE", "\x81", "UTF-16BE"], - ["UTF-16BE", "\x81", "ISO-2022-JP", "", "UTF-16BE"], - ["UTF-16BE", "\x81", "ISO-2022-JP", "\x01", nil], - ["UTF-16BE", "\x81", "ISO-2022-JP", "\x81", nil], + ["UTF-16BE", "", "ISO-2022-JP", "\x01\x01", "ISO-2022-JP"], + ["UTF-16BE", "", "ISO-2022-JP", "\x01\x81", "ISO-2022-JP"], + ["UTF-16BE", "\u0101", "US-ASCII", "", "UTF-16BE"], + ["UTF-16BE", "\u0101", "US-ASCII", "\x01\x01", nil], + ["UTF-16BE", "\u0101", "US-ASCII", "\x01\x81", nil], + ["UTF-16BE", "\u0101", "UTF-8", "", "UTF-16BE"], + ["UTF-16BE", "\u0101", "UTF-8", "\u0001\u0001", nil], + ["UTF-16BE", "\u0101", "UTF-8", "\u0001\x81", nil], + ["UTF-16BE", "\u0101", "ASCII-8BIT", "", "UTF-16BE"], + ["UTF-16BE", "\u0101", "ASCII-8BIT", "\x01\x01", nil], + ["UTF-16BE", "\u0101", "ASCII-8BIT", "\x01\x81", nil], + ["UTF-16BE", "\u0101", "ISO-8859-1", "", "UTF-16BE"], + ["UTF-16BE", "\u0101", "ISO-8859-1", "\x01\x01", nil], + ["UTF-16BE", "\u0101", "ISO-8859-1", "\x01\x81", nil], + ["UTF-16BE", "\u0101", "UTF-16BE", "", "UTF-16BE"], + ["UTF-16BE", "\u0101", "UTF-16BE", "\u0101", "UTF-16BE"], + ["UTF-16BE", "\u0101", "UTF-16BE", "\u0181", "UTF-16BE"], + ["UTF-16BE", "\u0101", "ISO-2022-JP", "", "UTF-16BE"], + ["UTF-16BE", "\u0101", "ISO-2022-JP", "\x01\x01", nil], + ["UTF-16BE", "\u0101", "ISO-2022-JP", "\x01\x81", nil], + ["UTF-16BE", "\u0181", "US-ASCII", "", "UTF-16BE"], + ["UTF-16BE", "\u0181", "US-ASCII", "\x01\x01", nil], + ["UTF-16BE", "\u0181", "US-ASCII", "\x01\x81", nil], + ["UTF-16BE", "\u0181", "UTF-8", "", "UTF-16BE"], + ["UTF-16BE", "\u0181", "UTF-8", "\u0001\u0001", nil], + ["UTF-16BE", "\u0181", "UTF-8", "\u0001\x81", nil], + ["UTF-16BE", "\u0181", "ASCII-8BIT", "", "UTF-16BE"], + ["UTF-16BE", "\u0181", "ASCII-8BIT", "\x01\x01", nil], + ["UTF-16BE", "\u0181", "ASCII-8BIT", "\x01\x81", nil], + ["UTF-16BE", "\u0181", "ISO-8859-1", "", "UTF-16BE"], + ["UTF-16BE", "\u0181", "ISO-8859-1", "\x01\x01", nil], + ["UTF-16BE", "\u0181", "ISO-8859-1", "\x01\x81", nil], + ["UTF-16BE", "\u0181", "UTF-16BE", "", "UTF-16BE"], + ["UTF-16BE", "\u0181", "UTF-16BE", "\u0101", "UTF-16BE"], + ["UTF-16BE", "\u0181", "UTF-16BE", "\u0181", "UTF-16BE"], + ["UTF-16BE", "\u0181", "ISO-2022-JP", "", "UTF-16BE"], + ["UTF-16BE", "\u0181", "ISO-2022-JP", "\x01\x01", nil], + ["UTF-16BE", "\u0181", "ISO-2022-JP", "\x01\x81", nil], ["ISO-2022-JP", "", "US-ASCII", "", "ISO-2022-JP"], - ["ISO-2022-JP", "", "US-ASCII", "\x01", "US-ASCII"], - ["ISO-2022-JP", "", "US-ASCII", "\x81", "US-ASCII"], + ["ISO-2022-JP", "", "US-ASCII", "\x01\x01", "US-ASCII"], + ["ISO-2022-JP", "", "US-ASCII", "\x01\x81", "US-ASCII"], ["ISO-2022-JP", "", "UTF-8", "", "ISO-2022-JP"], - ["ISO-2022-JP", "", "UTF-8", "\u0001", "UTF-8"], - ["ISO-2022-JP", "", "UTF-8", "\x81", "UTF-8"], + ["ISO-2022-JP", "", "UTF-8", "\u0001\u0001", "UTF-8"], + ["ISO-2022-JP", "", "UTF-8", "\u0001\x81", "UTF-8"], ["ISO-2022-JP", "", "ASCII-8BIT", "", "ISO-2022-JP"], - ["ISO-2022-JP", "", "ASCII-8BIT", "\x01", "ASCII-8BIT"], - ["ISO-2022-JP", "", "ASCII-8BIT", "\x81", "ASCII-8BIT"], + ["ISO-2022-JP", "", "ASCII-8BIT", "\x01\x01", "ASCII-8BIT"], + ["ISO-2022-JP", "", "ASCII-8BIT", "\x01\x81", "ASCII-8BIT"], ["ISO-2022-JP", "", "ISO-8859-1", "", "ISO-2022-JP"], - ["ISO-2022-JP", "", "ISO-8859-1", "\x01", "ISO-8859-1"], - ["ISO-2022-JP", "", "ISO-8859-1", "\x81", "ISO-8859-1"], + ["ISO-2022-JP", "", "ISO-8859-1", "\x01\x01", "ISO-8859-1"], + ["ISO-2022-JP", "", "ISO-8859-1", "\x01\x81", "ISO-8859-1"], ["ISO-2022-JP", "", "UTF-16BE", "", "ISO-2022-JP"], - ["ISO-2022-JP", "", "UTF-16BE", "\x01", "UTF-16BE"], - ["ISO-2022-JP", "", "UTF-16BE", "\x81", "UTF-16BE"], + ["ISO-2022-JP", "", "UTF-16BE", "\u0101", "UTF-16BE"], + ["ISO-2022-JP", "", "UTF-16BE", "\u0181", "UTF-16BE"], ["ISO-2022-JP", "", "ISO-2022-JP", "", "ISO-2022-JP"], - ["ISO-2022-JP", "", "ISO-2022-JP", "\x01", "ISO-2022-JP"], - ["ISO-2022-JP", "", "ISO-2022-JP", "\x81", "ISO-2022-JP"], - ["ISO-2022-JP", "\x01", "US-ASCII", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x01", "US-ASCII", "\x01", nil], - ["ISO-2022-JP", "\x01", "US-ASCII", "\x81", nil], - ["ISO-2022-JP", "\x01", "UTF-8", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x01", "UTF-8", "\u0001", nil], - ["ISO-2022-JP", "\x01", "UTF-8", "\x81", nil], - ["ISO-2022-JP", "\x01", "ASCII-8BIT", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x01", "ASCII-8BIT", "\x01", nil], - ["ISO-2022-JP", "\x01", "ASCII-8BIT", "\x81", nil], - ["ISO-2022-JP", "\x01", "ISO-8859-1", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x01", "ISO-8859-1", "\x01", nil], - ["ISO-2022-JP", "\x01", "ISO-8859-1", "\x81", nil], - ["ISO-2022-JP", "\x01", "UTF-16BE", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x01", "UTF-16BE", "\x01", nil], - ["ISO-2022-JP", "\x01", "UTF-16BE", "\x81", nil], - ["ISO-2022-JP", "\x01", "ISO-2022-JP", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x01", "ISO-2022-JP", "\x01", "ISO-2022-JP"], - ["ISO-2022-JP", "\x01", "ISO-2022-JP", "\x81", "ISO-2022-JP"], - ["ISO-2022-JP", "\x81", "US-ASCII", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x81", "US-ASCII", "\x01", nil], - ["ISO-2022-JP", "\x81", "US-ASCII", "\x81", nil], - ["ISO-2022-JP", "\x81", "UTF-8", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x81", "UTF-8", "\u0001", nil], - ["ISO-2022-JP", "\x81", "UTF-8", "\x81", nil], - ["ISO-2022-JP", "\x81", "ASCII-8BIT", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x81", "ASCII-8BIT", "\x01", nil], - ["ISO-2022-JP", "\x81", "ASCII-8BIT", "\x81", nil], - ["ISO-2022-JP", "\x81", "ISO-8859-1", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x81", "ISO-8859-1", "\x01", nil], - ["ISO-2022-JP", "\x81", "ISO-8859-1", "\x81", nil], - ["ISO-2022-JP", "\x81", "UTF-16BE", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x81", "UTF-16BE", "\x01", nil], - ["ISO-2022-JP", "\x81", "UTF-16BE", "\x81", nil], - ["ISO-2022-JP", "\x81", "ISO-2022-JP", "", "ISO-2022-JP"], - ["ISO-2022-JP", "\x81", "ISO-2022-JP", "\x01", "ISO-2022-JP"], - ["ISO-2022-JP", "\x81", "ISO-2022-JP", "\x81", "ISO-2022-JP"], + ["ISO-2022-JP", "", "ISO-2022-JP", "\x01\x01", "ISO-2022-JP"], + ["ISO-2022-JP", "", "ISO-2022-JP", "\x01\x81", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x01", "US-ASCII", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x01", "US-ASCII", "\x01\x01", nil], + ["ISO-2022-JP", "\x01\x01", "US-ASCII", "\x01\x81", nil], + ["ISO-2022-JP", "\x01\x01", "UTF-8", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x01", "UTF-8", "\u0001\u0001", nil], + ["ISO-2022-JP", "\x01\x01", "UTF-8", "\u0001\x81", nil], + ["ISO-2022-JP", "\x01\x01", "ASCII-8BIT", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x01", "ASCII-8BIT", "\x01\x01", nil], + ["ISO-2022-JP", "\x01\x01", "ASCII-8BIT", "\x01\x81", nil], + ["ISO-2022-JP", "\x01\x01", "ISO-8859-1", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x01", "ISO-8859-1", "\x01\x01", nil], + ["ISO-2022-JP", "\x01\x01", "ISO-8859-1", "\x01\x81", nil], + ["ISO-2022-JP", "\x01\x01", "UTF-16BE", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x01", "UTF-16BE", "\u0101", nil], + ["ISO-2022-JP", "\x01\x01", "UTF-16BE", "\u0181", nil], + ["ISO-2022-JP", "\x01\x01", "ISO-2022-JP", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x01", "ISO-2022-JP", "\x01\x01", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x01", "ISO-2022-JP", "\x01\x81", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x81", "US-ASCII", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x81", "US-ASCII", "\x01\x01", nil], + ["ISO-2022-JP", "\x01\x81", "US-ASCII", "\x01\x81", nil], + ["ISO-2022-JP", "\x01\x81", "UTF-8", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x81", "UTF-8", "\u0001\u0001", nil], + ["ISO-2022-JP", "\x01\x81", "UTF-8", "\u0001\x81", nil], + ["ISO-2022-JP", "\x01\x81", "ASCII-8BIT", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x81", "ASCII-8BIT", "\x01\x01", nil], + ["ISO-2022-JP", "\x01\x81", "ASCII-8BIT", "\x01\x81", nil], + ["ISO-2022-JP", "\x01\x81", "ISO-8859-1", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x81", "ISO-8859-1", "\x01\x01", nil], + ["ISO-2022-JP", "\x01\x81", "ISO-8859-1", "\x01\x81", nil], + ["ISO-2022-JP", "\x01\x81", "UTF-16BE", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x81", "UTF-16BE", "\u0101", nil], + ["ISO-2022-JP", "\x01\x81", "UTF-16BE", "\u0181", nil], + ["ISO-2022-JP", "\x01\x81", "ISO-2022-JP", "", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x81", "ISO-2022-JP", "\x01\x01", "ISO-2022-JP"], + ["ISO-2022-JP", "\x01\x81", "ISO-2022-JP", "\x01\x81", "ISO-2022-JP"], ] matrix.each do |encoding1, value1, encoding2, value2, compatible_encoding| @@ -557,6 +557,11 @@ describe "Encoding.compatible? String, Regexp" do [Encoding, "\x82\xa0".dup.force_encoding("shift_jis"), Encoding::Shift_JIS], ].should be_computed_by(:compatible?, /abc/) end + + it "returns the Regexp's Encoding if the String is ASCII only and the Regexp is not" do + r = Regexp.new("\xa4\xa2".dup.force_encoding("euc-jp")) + Encoding.compatible?("hello".dup.force_encoding("utf-8"), r).should == Encoding::EUC_JP + end end describe "Encoding.compatible? String, Symbol" do @@ -584,11 +589,11 @@ end describe "Encoding.compatible? String, Encoding" do it "returns nil if the String's encoding is not ASCII compatible" do - Encoding.compatible?("abc".encode("utf-32le"), Encoding::US_ASCII).should be_nil + Encoding.compatible?("abc".encode("utf-32le"), Encoding::US_ASCII).should == nil end it "returns nil if the Encoding is not ASCII compatible" do - Encoding.compatible?("abc".encode("us-ascii"), Encoding::UTF_32LE).should be_nil + Encoding.compatible?("abc".encode("us-ascii"), Encoding::UTF_32LE).should == nil end it "returns the String's encoding if the Encoding is US-ASCII" do @@ -609,7 +614,7 @@ describe "Encoding.compatible? String, Encoding" do end it "returns nil if the String's encoding is ASCII compatible but the string is not ASCII only" do - Encoding.compatible?("\u3042".encode("utf-8"), Encoding::BINARY).should be_nil + Encoding.compatible?("\u3042".encode("utf-8"), Encoding::BINARY).should == nil end end @@ -619,6 +624,15 @@ describe "Encoding.compatible? Regexp, String" do Encoding.compatible?(/abc/, str).should == Encoding::US_ASCII end + it "returns the String's Encoding when the String is ASCII only with a different encoding" do + r = Regexp.new("\xa4\xa2".dup.force_encoding("euc-jp")) + Encoding.compatible?(r, "hello".dup.force_encoding("utf-8")).should == Encoding::UTF_8 + end + + it "returns the Regexp's Encoding if the String has the same non-ASCII encoding" do + r = Regexp.new("\xa4\xa2".dup.force_encoding("euc-jp")) + Encoding.compatible?(r, "hello".dup.force_encoding("euc-jp")).should == Encoding::EUC_JP + end end describe "Encoding.compatible? Regexp, Regexp" do @@ -727,32 +741,32 @@ end describe "Encoding.compatible? Object, Object" do it "returns nil for Object, String" do - Encoding.compatible?(Object.new, "abc").should be_nil + Encoding.compatible?(Object.new, "abc").should == nil end it "returns nil for Object, Regexp" do - Encoding.compatible?(Object.new, /./).should be_nil + Encoding.compatible?(Object.new, /./).should == nil end it "returns nil for Object, Symbol" do - Encoding.compatible?(Object.new, :sym).should be_nil + Encoding.compatible?(Object.new, :sym).should == nil end it "returns nil for String, Object" do - Encoding.compatible?("abc", Object.new).should be_nil + Encoding.compatible?("abc", Object.new).should == nil end it "returns nil for Regexp, Object" do - Encoding.compatible?(/./, Object.new).should be_nil + Encoding.compatible?(/./, Object.new).should == nil end it "returns nil for Symbol, Object" do - Encoding.compatible?(:sym, Object.new).should be_nil + Encoding.compatible?(:sym, Object.new).should == nil end end describe "Encoding.compatible? nil, nil" do it "returns nil" do - Encoding.compatible?(nil, nil).should be_nil + Encoding.compatible?(nil, nil).should == nil end end |
