u 0.5.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/build/ext/u/data/attributes.rb +39 -0
- data/build/ext/u/data/bidi-mirroring.rb +27 -0
- data/build/ext/u/data/canonical-combining-class.rb +15 -0
- data/build/ext/u/data/case-folding.rb +39 -0
- data/build/ext/u/data/cased.rb +19 -0
- data/build/ext/u/data/compose.rb +304 -0
- data/build/ext/u/data/constants.rb +31 -0
- data/build/ext/u/data/decompose.rb +85 -0
- data/build/ext/u/data/general-category.rb +61 -0
- data/build/ext/u/data/grapheme-word-break.rb +15 -0
- data/build/ext/u/data/marshalled.rb +5 -0
- data/build/ext/u/data/script.rb +91 -0
- data/build/ext/u/data/soft-dotted.rb +17 -0
- data/build/ext/u/data/title-table.rb +30 -0
- data/build/ext/u/data/wide.rb +17 -0
- data/build/lib/u/build.rb +8 -0
- data/build/lib/u/build/data.rb +16 -0
- data/build/lib/u/build/data/bidimirroring.rb +26 -0
- data/build/lib/u/build/data/break.rb +14 -0
- data/build/lib/u/build/data/casefolding.rb +77 -0
- data/build/lib/u/build/data/compositionexclusions.rb +14 -0
- data/build/lib/u/build/data/derivedeastasianwidth.rb +15 -0
- data/build/lib/u/build/data/file.rb +88 -0
- data/build/lib/u/build/data/linebreak.rb +14 -0
- data/build/lib/u/build/data/proplist.rb +18 -0
- data/build/lib/u/build/data/scripts.rb +22 -0
- data/build/lib/u/build/data/specialcasing.rb +106 -0
- data/build/lib/u/build/data/unicode.rb +41 -0
- data/build/lib/u/build/data/unicode/entry.rb +27 -0
- data/build/lib/u/build/data/unicode/entry/decomposition.rb +29 -0
- data/build/lib/u/build/data/unicode/points.rb +32 -0
- data/build/lib/u/build/header.rb +11 -0
- data/build/lib/u/build/header/table.rb +19 -0
- data/build/lib/u/build/header/table/row.rb +64 -0
- data/build/lib/u/build/header/tables.rb +6 -0
- data/build/lib/u/build/header/tables/intervals.rb +50 -0
- data/build/lib/u/build/header/tables/split.rb +20 -0
- data/build/lib/u/build/header/tables/split/data.rb +29 -0
- data/build/lib/u/build/header/tables/split/part1.rb +28 -0
- data/build/lib/u/build/header/tables/split/part2.rb +13 -0
- data/build/lib/u/build/header/tables/split/row.rb +34 -0
- data/build/lib/u/build/header/tables/split/rows.rb +22 -0
- data/build/test/unit/break.rb +45 -0
- data/build/test/unit/case.rb +178 -0
- data/build/test/unit/foldcase.rb +44 -0
- data/build/test/unit/normalize.rb +81 -0
- data/ext/u/attributes.c +62 -0
- data/ext/u/attributes.h +5 -0
- data/ext/u/case.h +41 -0
- data/ext/u/data/attributes.h +3070 -0
- data/ext/u/data/bidi-mirroring.h +373 -0
- data/ext/u/data/canonical-combining-class.h +2157 -0
- data/ext/u/data/case-folding.h +171 -0
- data/ext/u/data/cased.h +42 -0
- data/ext/u/data/compose.h +1714 -0
- data/ext/u/data/constants.h +17 -0
- data/ext/u/data/decompose.h +9356 -0
- data/ext/u/data/general-category.h +28959 -0
- data/ext/u/data/grapheme-break.h +13201 -0
- data/ext/u/data/line-break.h +26501 -0
- data/ext/u/data/normalization-quick-check.h +3002 -0
- data/ext/u/data/script.h +2928 -0
- data/ext/u/data/soft-dotted.h +55 -0
- data/ext/u/data/title-table.h +41 -0
- data/ext/u/data/types.h +11117 -0
- data/ext/u/data/wide-cjk.h +197 -0
- data/ext/u/data/wide.h +59 -0
- data/ext/u/data/word-break.h +10001 -0
- data/ext/u/depend +281 -0
- data/ext/u/extconf.rb +158 -0
- data/ext/u/output.h +51 -0
- data/ext/{encoding/character/utf-8 → u}/private.c +11 -15
- data/ext/u/private.h +58 -0
- data/ext/u/rb_includes.h +10 -0
- data/ext/u/rb_private.c +98 -0
- data/ext/u/rb_private.h +67 -0
- data/ext/u/rb_u.c +251 -0
- data/ext/u/rb_u_buffer.c +443 -0
- data/ext/u/rb_u_buffer.h +24 -0
- data/ext/u/rb_u_re.c +43 -0
- data/ext/u/rb_u_re.h +15 -0
- data/ext/u/rb_u_string.c +478 -0
- data/ext/u/rb_u_string.h +173 -0
- data/ext/u/rb_u_string_alnum.c +10 -0
- data/ext/u/rb_u_string_alpha.c +10 -0
- data/ext/u/rb_u_string_aref.c +142 -0
- data/ext/u/rb_u_string_ascii_only.c +13 -0
- data/ext/u/rb_u_string_assigned.c +10 -0
- data/ext/u/rb_u_string_b.c +18 -0
- data/ext/u/rb_u_string_bytesize.c +10 -0
- data/ext/u/rb_u_string_byteslice.c +103 -0
- data/ext/u/rb_u_string_canonical_combining_class.c +33 -0
- data/ext/u/rb_u_string_case_ignorable.c +25 -0
- data/ext/u/rb_u_string_casecmp.c +61 -0
- data/ext/u/rb_u_string_cased.c +17 -0
- data/ext/u/rb_u_string_chomp.c +107 -0
- data/ext/u/rb_u_string_chop.c +33 -0
- data/ext/u/rb_u_string_chr.c +9 -0
- data/ext/u/rb_u_string_cntrl.c +10 -0
- data/ext/u/rb_u_string_collate.c +46 -0
- data/ext/u/rb_u_string_collation_key.c +18 -0
- data/ext/u/rb_u_string_count.c +38 -0
- data/ext/u/rb_u_string_defined.c +10 -0
- data/ext/u/rb_u_string_delete.c +62 -0
- data/ext/u/rb_u_string_digit.c +10 -0
- data/ext/u/rb_u_string_downcase.c +13 -0
- data/ext/u/rb_u_string_dump.c +153 -0
- data/ext/u/rb_u_string_each_byte.c +46 -0
- data/ext/u/rb_u_string_each_char.c +49 -0
- data/ext/u/rb_u_string_each_codepoint.c +45 -0
- data/ext/u/rb_u_string_each_grapheme_cluster.c +36 -0
- data/ext/u/rb_u_string_each_line.c +142 -0
- data/ext/u/rb_u_string_each_word.c +34 -0
- data/ext/u/rb_u_string_empty.c +11 -0
- data/ext/u/rb_u_string_end_with.c +31 -0
- data/ext/u/rb_u_string_eql.c +30 -0
- data/ext/u/rb_u_string_equal.c +33 -0
- data/ext/u/rb_u_string_foldcase.c +12 -0
- data/ext/u/rb_u_string_folded.c +13 -0
- data/ext/u/rb_u_string_format.c +1745 -0
- data/ext/u/rb_u_string_general_category.c +109 -0
- data/ext/u/rb_u_string_getbyte.c +21 -0
- data/ext/u/rb_u_string_graph.c +21 -0
- data/ext/u/rb_u_string_grapheme_break.c +61 -0
- data/ext/u/rb_u_string_gsub.c +164 -0
- data/ext/u/rb_u_string_hash.c +10 -0
- data/ext/u/rb_u_string_hex.c +9 -0
- data/ext/u/rb_u_string_include.c +10 -0
- data/ext/u/rb_u_string_index.c +110 -0
- data/ext/u/rb_u_string_inspect.c +189 -0
- data/ext/u/rb_u_string_internal_tr.c +148 -0
- data/ext/u/rb_u_string_internal_tr.h +29 -0
- data/ext/u/rb_u_string_justify.c +169 -0
- data/ext/u/rb_u_string_length.c +10 -0
- data/ext/u/rb_u_string_line_break.c +115 -0
- data/ext/u/rb_u_string_lower.c +13 -0
- data/ext/u/rb_u_string_lstrip.c +24 -0
- data/ext/u/rb_u_string_match.c +65 -0
- data/ext/u/rb_u_string_mirror.c +16 -0
- data/ext/u/rb_u_string_newline.c +21 -0
- data/ext/u/rb_u_string_normalize.c +70 -0
- data/ext/u/rb_u_string_normalized.c +28 -0
- data/ext/u/rb_u_string_oct.c +11 -0
- data/ext/u/rb_u_string_ord.c +14 -0
- data/ext/u/rb_u_string_partition.c +80 -0
- data/ext/u/rb_u_string_plus.c +33 -0
- data/ext/u/rb_u_string_print.c +10 -0
- data/ext/u/rb_u_string_punct.c +10 -0
- data/ext/u/rb_u_string_reverse.c +13 -0
- data/ext/u/rb_u_string_rindex.c +104 -0
- data/ext/u/rb_u_string_rpartition.c +81 -0
- data/ext/u/rb_u_string_rstrip.c +29 -0
- data/ext/u/rb_u_string_scan.c +109 -0
- data/ext/u/rb_u_string_script.c +253 -0
- data/ext/u/rb_u_string_soft_dotted.c +13 -0
- data/ext/u/rb_u_string_space.c +24 -0
- data/ext/u/rb_u_string_split.c +245 -0
- data/ext/u/rb_u_string_squeeze.c +75 -0
- data/ext/u/rb_u_string_start_with.c +31 -0
- data/ext/u/rb_u_string_strip.c +36 -0
- data/ext/u/rb_u_string_sub.c +147 -0
- data/ext/u/rb_u_string_times.c +35 -0
- data/ext/u/rb_u_string_title.c +10 -0
- data/ext/u/rb_u_string_titlecase.c +13 -0
- data/ext/u/rb_u_string_to_i.c +45 -0
- data/ext/u/rb_u_string_to_inum.c +364 -0
- data/ext/u/rb_u_string_to_inum.h +1 -0
- data/ext/u/rb_u_string_to_str.c +17 -0
- data/ext/u/rb_u_string_to_sym.c +12 -0
- data/ext/u/rb_u_string_tr.c +290 -0
- data/ext/u/rb_u_string_upcase.c +12 -0
- data/ext/u/rb_u_string_upper.c +13 -0
- data/ext/u/rb_u_string_valid.c +10 -0
- data/ext/u/rb_u_string_valid_encoding.c +12 -0
- data/ext/u/rb_u_string_wide.c +21 -0
- data/ext/u/rb_u_string_wide_cjk.c +21 -0
- data/ext/u/rb_u_string_width.c +19 -0
- data/ext/u/rb_u_string_word_break.c +63 -0
- data/ext/u/rb_u_string_xdigit.c +22 -0
- data/ext/u/rb_u_string_zero_width.c +16 -0
- data/ext/u/titled.c +55 -0
- data/ext/u/titled.h +1 -0
- data/ext/u/u.c +23 -0
- data/ext/u/u.h +458 -0
- data/ext/u/u_char_canonical_combining_class.c +31 -0
- data/ext/u/u_char_digit_value.c +21 -0
- data/ext/u/u_char_downcase.c +27 -0
- data/ext/u/u_char_general_category.c +31 -0
- data/ext/u/u_char_grapheme_break.c +28 -0
- data/ext/u/u_char_isalnum.c +24 -0
- data/ext/u/u_char_isalpha.c +21 -0
- data/ext/u/u_char_isassigned.c +16 -0
- data/ext/u/u_char_iscased.c +22 -0
- data/ext/u/u_char_iscaseignorable.c +29 -0
- data/ext/u/u_char_iscntrl.c +17 -0
- data/ext/u/u_char_isdefined.c +15 -0
- data/ext/u/u_char_isdigit.c +16 -0
- data/ext/u/u_char_isgraph.c +22 -0
- data/ext/u/u_char_islower.c +16 -0
- data/ext/u/u_char_isnewline.c +24 -0
- data/ext/u/u_char_isprint.c +21 -0
- data/ext/u/u_char_ispunct.c +27 -0
- data/ext/u/u_char_issoftdotted.c +18 -0
- data/ext/u/u_char_isspace.c +28 -0
- data/ext/u/u_char_isupper.c +16 -0
- data/ext/u/u_char_isvalid.c +18 -0
- data/ext/u/u_char_iswide.c +18 -0
- data/ext/u/u_char_iswide_cjk.c +22 -0
- data/ext/u/u_char_isxdigit.c +27 -0
- data/ext/u/u_char_iszerowidth.c +29 -0
- data/ext/u/u_char_line_break.c +29 -0
- data/ext/u/u_char_mirror.c +16 -0
- data/ext/u/u_char_normalized.c +23 -0
- data/ext/u/u_char_script.c +41 -0
- data/ext/u/u_char_to_u.c +48 -0
- data/ext/u/u_char_upcase.c +24 -0
- data/ext/u/u_char_width.c +12 -0
- data/ext/u/u_char_word_break.c +28 -0
- data/ext/u/u_char_xdigit_value.c +31 -0
- data/ext/u/u_collate.c +83 -0
- data/ext/u/u_collation_key.c +132 -0
- data/ext/u/u_decode.c +156 -0
- data/ext/u/u_downcase.c +201 -0
- data/ext/u/u_foldcase.c +68 -0
- data/ext/u/u_grapheme_clusters.c +57 -0
- data/ext/u/u_has_prefix.c +27 -0
- data/ext/u/u_index.c +93 -0
- data/ext/u/u_is_ascii_only.c +33 -0
- data/ext/u/u_locale.c +40 -0
- data/ext/u/u_locale.h +14 -0
- data/ext/u/u_mirror.c +20 -0
- data/ext/u/u_n_bytes.c +16 -0
- data/ext/u/u_n_chars.c +43 -0
- data/ext/u/u_normalize.c +232 -0
- data/ext/u/u_normalized.c +28 -0
- data/ext/u/u_offset_to_pointer.c +62 -0
- data/ext/u/u_pointer_to_offset.c +23 -0
- data/ext/u/u_recode.c +73 -0
- data/ext/u/u_reverse.c +21 -0
- data/ext/u/u_rindex.c +132 -0
- data/ext/u/u_titlecase.c +68 -0
- data/ext/u/u_upcase.c +89 -0
- data/ext/u/u_width.c +35 -0
- data/ext/u/u_words.c +82 -0
- data/ext/u/yield.h +27 -0
- data/lib/u-1.0.rb +20 -0
- data/lib/u-1.0/buffer.rb +10 -0
- data/lib/u-1.0/string.rb +9 -0
- data/lib/u-1.0/version.rb +287 -0
- data/test/unit/case.rb +2080 -0
- data/test/unit/foldcase.rb +1136 -0
- data/test/unit/graphemebreak.rb +407 -0
- data/test/unit/normalize.rb +367545 -0
- data/test/unit/u-1.0.rb +10 -0
- data/test/unit/u-1.0/buffer.rb +52 -0
- data/test/unit/u-1.0/string.rb +1439 -0
- data/test/unit/{u.rb → u-1.0/version.rb} +0 -1
- data/test/unit/wordbreak.rb +1083 -0
- metadata +603 -148
- data/README +0 -38
- data/Rakefile +0 -64
- data/ext/encoding/character/utf-8/break.c +0 -25
- data/ext/encoding/character/utf-8/data/break.h +0 -22931
- data/ext/encoding/character/utf-8/data/character-tables.h +0 -14358
- data/ext/encoding/character/utf-8/data/compose.h +0 -1607
- data/ext/encoding/character/utf-8/data/decompose.h +0 -10926
- data/ext/encoding/character/utf-8/data/generate-unicode-data.rb +0 -1070
- data/ext/encoding/character/utf-8/decompose.c +0 -444
- data/ext/encoding/character/utf-8/depend +0 -65
- data/ext/encoding/character/utf-8/extconf.rb +0 -67
- data/ext/encoding/character/utf-8/private.h +0 -51
- data/ext/encoding/character/utf-8/properties.c +0 -1056
- data/ext/encoding/character/utf-8/rb_includes.h +0 -19
- data/ext/encoding/character/utf-8/rb_methods.h +0 -49
- data/ext/encoding/character/utf-8/rb_private.h +0 -52
- data/ext/encoding/character/utf-8/rb_utf_aref.c +0 -111
- data/ext/encoding/character/utf-8/rb_utf_aset.c +0 -105
- data/ext/encoding/character/utf-8/rb_utf_casecmp.c +0 -24
- data/ext/encoding/character/utf-8/rb_utf_chomp.c +0 -114
- data/ext/encoding/character/utf-8/rb_utf_chop.c +0 -44
- data/ext/encoding/character/utf-8/rb_utf_collate.c +0 -13
- data/ext/encoding/character/utf-8/rb_utf_count.c +0 -30
- data/ext/encoding/character/utf-8/rb_utf_delete.c +0 -60
- data/ext/encoding/character/utf-8/rb_utf_downcase.c +0 -13
- data/ext/encoding/character/utf-8/rb_utf_each_char.c +0 -27
- data/ext/encoding/character/utf-8/rb_utf_foldcase.c +0 -13
- data/ext/encoding/character/utf-8/rb_utf_hex.c +0 -14
- data/ext/encoding/character/utf-8/rb_utf_index.c +0 -50
- data/ext/encoding/character/utf-8/rb_utf_insert.c +0 -48
- data/ext/encoding/character/utf-8/rb_utf_internal_bignum.c +0 -332
- data/ext/encoding/character/utf-8/rb_utf_internal_bignum.h +0 -12
- data/ext/encoding/character/utf-8/rb_utf_internal_tr.c +0 -142
- data/ext/encoding/character/utf-8/rb_utf_internal_tr.h +0 -41
- data/ext/encoding/character/utf-8/rb_utf_justify.c +0 -96
- data/ext/encoding/character/utf-8/rb_utf_length.c +0 -14
- data/ext/encoding/character/utf-8/rb_utf_lstrip.c +0 -41
- data/ext/encoding/character/utf-8/rb_utf_normalize.c +0 -51
- data/ext/encoding/character/utf-8/rb_utf_oct.c +0 -14
- data/ext/encoding/character/utf-8/rb_utf_reverse.c +0 -13
- data/ext/encoding/character/utf-8/rb_utf_rindex.c +0 -88
- data/ext/encoding/character/utf-8/rb_utf_rstrip.c +0 -51
- data/ext/encoding/character/utf-8/rb_utf_squeeze.c +0 -70
- data/ext/encoding/character/utf-8/rb_utf_strip.c +0 -27
- data/ext/encoding/character/utf-8/rb_utf_to_i.c +0 -25
- data/ext/encoding/character/utf-8/rb_utf_tr.c +0 -250
- data/ext/encoding/character/utf-8/rb_utf_upcase.c +0 -13
- data/ext/encoding/character/utf-8/tables.h +0 -38
- data/ext/encoding/character/utf-8/unicode.c +0 -319
- data/ext/encoding/character/utf-8/unicode.h +0 -216
- data/ext/encoding/character/utf-8/utf.c +0 -1334
- data/lib/encoding/character/utf-8.rb +0 -201
- data/lib/u.rb +0 -16
- data/lib/u/string.rb +0 -185
- data/lib/u/version.rb +0 -5
- data/test/unit/u/string.rb +0 -91
data/test/unit/u-1.0.rb
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
untrust = Object.respond_to?(:untrust)
|
|
4
|
+
|
|
5
|
+
Expectations do
|
|
6
|
+
expect U::String do ''.u end
|
|
7
|
+
expect U::String.new('abc') do 'abc'.u end
|
|
8
|
+
expect result.tainted? do ''.taint.u end
|
|
9
|
+
expect result.untrusted? do ''.untrust.u end if untrust
|
|
10
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
untrust = Object.respond_to?(:untrust)
|
|
4
|
+
|
|
5
|
+
Expectations do
|
|
6
|
+
expect U::Buffer do U::Buffer.new end
|
|
7
|
+
expect U::Buffer do U::Buffer.new(128) end
|
|
8
|
+
expect U::Buffer do U::Buffer.new(nil) end
|
|
9
|
+
expect TypeError do U::Buffer.new('abc') end
|
|
10
|
+
|
|
11
|
+
expect U::Buffer.new(5).append('abc') do |buffer| buffer.dup end
|
|
12
|
+
expect false do
|
|
13
|
+
original = U::Buffer.new(5).append('abc')
|
|
14
|
+
original.dup.object_id == original.object_id
|
|
15
|
+
end
|
|
16
|
+
expect false do
|
|
17
|
+
original = U::Buffer.new(5).append('abc')
|
|
18
|
+
original.dup.append('de').object_id == original.object_id
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
expect ArgumentError.new('wrong number of arguments (0 for at least 1)') do U::Buffer.new.append end
|
|
22
|
+
expect 'abcde'.u do U::Buffer.new.append('abc', 'de').to_u end
|
|
23
|
+
expect 'abcde'.u do (U::Buffer.new << 'abc' << 'de').to_u end
|
|
24
|
+
expect "abc\0def".u do U::Buffer.new.append('abc', 0, 'def'.u).to_u end
|
|
25
|
+
expect result.tainted? do U::Buffer.new.taint.to_u end
|
|
26
|
+
expect result.tainted? do U::Buffer.new.append(U::Buffer.new.taint).to_u end
|
|
27
|
+
expect result.tainted? do U::Buffer.new.append(''.taint).to_u end
|
|
28
|
+
expect result.untrusted? do U::Buffer.new.untrust.to_u end if untrust
|
|
29
|
+
expect result.untrusted? do U::Buffer.new.append(U::Buffer.new.untrust).to_u end if untrust
|
|
30
|
+
expect result.untrusted? do U::Buffer.new.append(''.untrust).to_u end if untrust
|
|
31
|
+
|
|
32
|
+
expect 'äbc'.u do U::Buffer.new.append_format('%cbc'.u, 'ä').to_u end
|
|
33
|
+
expect result.tainted? do U::Buffer.new.append_format('abc'.taint).to_u end
|
|
34
|
+
expect result.tainted? do U::Buffer.new.append_format('%s', 'abc'.taint).to_u end
|
|
35
|
+
expect result.tainted? do U::Buffer.new.append_format('%p', 'abc'.taint).to_u end
|
|
36
|
+
|
|
37
|
+
expect ''.u do U::Buffer.new.to_u! end
|
|
38
|
+
expect 'äbc'.u do U::Buffer.new.append('äbc').to_u! end
|
|
39
|
+
expect ''.u do U::Buffer.new.append('äbc').tap(&:to_u!).to_u! end
|
|
40
|
+
|
|
41
|
+
expect '#<U::Buffer äbc>' do U::Buffer.new.append('äbc'.u).inspect end
|
|
42
|
+
expect '#<U::Buffer äbcdëwvxÿz>' do U::Buffer.new.append('äbcdëwvxÿz'.u).inspect end
|
|
43
|
+
expect '#<U::Buffer äbcdëfwvxÿz>' do U::Buffer.new.append('äbcdëfwvxÿz'.u).inspect end
|
|
44
|
+
expect '#<U::Buffer äbcdë…wvxÿz>' do U::Buffer.new.append('äbcdëfgwvxÿz'.u).inspect end
|
|
45
|
+
|
|
46
|
+
expect 3 do U::Buffer.new.append('äbc'.u).length end
|
|
47
|
+
expect 3 do U::Buffer.new.append('äbc'.u).size end
|
|
48
|
+
expect 4 do U::Buffer.new.append('äbc'.u).bytesize end
|
|
49
|
+
expect 4 do U::Buffer.new.append('あbc'.u).width end
|
|
50
|
+
|
|
51
|
+
expect result.tainted? do U::Buffer.new.taint.to_s end
|
|
52
|
+
end
|
|
@@ -0,0 +1,1439 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
untrust = Object.respond_to?(:untrust)
|
|
4
|
+
word_regex = /\w/u =~ 'ä' ? /\w+/u : Regexp.new('[[:word:]]+')
|
|
5
|
+
|
|
6
|
+
Expectations do
|
|
7
|
+
expect ''.u do U::String.new end
|
|
8
|
+
expect ''.u do U::String.new(nil) end
|
|
9
|
+
expect '' do U::String.new(nil).to_str end
|
|
10
|
+
expect 'äbc' do U::String.new('äbc').to_str end
|
|
11
|
+
if defined? Encoding
|
|
12
|
+
expect 'äbc' do U::String.new('äbc'.encode(Encoding::ISO8859_1)).to_str end
|
|
13
|
+
expect Encoding::UndefinedConversionError do U::String.new('äbc'.encode(Encoding::ASCII_8BIT)) end
|
|
14
|
+
end
|
|
15
|
+
expect result.tainted? do 'u'.taint.u end
|
|
16
|
+
expect result.untrusted? do 'u'.untrust.u end if untrust
|
|
17
|
+
|
|
18
|
+
expect ''.u do ''.u.dup end
|
|
19
|
+
expect false do a = ''.u; a.dup.object_id == a.object_id end
|
|
20
|
+
expect result.tainted? do 'u'.u.taint.dup end
|
|
21
|
+
expect result.untrusted? do 'u'.u.untrust.dup end if untrust
|
|
22
|
+
|
|
23
|
+
expect true do 'äbc'.u.valid_encoding? end
|
|
24
|
+
expect true do "äbc\0def".u.valid_encoding? end
|
|
25
|
+
expect false do "\xc3bc".u.valid_encoding? end
|
|
26
|
+
|
|
27
|
+
expect true do ''.u.alnum? end
|
|
28
|
+
expect true do 'a'.u.alnum? end
|
|
29
|
+
expect true do 'ab'.u.alnum? end
|
|
30
|
+
expect false do '/'.u.alnum? end
|
|
31
|
+
|
|
32
|
+
expect true do ''.u.alpha? end
|
|
33
|
+
expect true do 'a'.u.alpha? end
|
|
34
|
+
expect true do 'ab'.u.alpha? end
|
|
35
|
+
expect false do 'a0'.u.alpha? end
|
|
36
|
+
|
|
37
|
+
expect true do 'abc'.u.ascii_only? end
|
|
38
|
+
expect false do 'äbc'.u.ascii_only? end
|
|
39
|
+
|
|
40
|
+
expect true do ''.u.assigned? end
|
|
41
|
+
expect true do 'a'.u.assigned? end
|
|
42
|
+
expect true do 'ab'.u.assigned? end
|
|
43
|
+
expect false do [0x0588].pack('U').u.assigned? end
|
|
44
|
+
|
|
45
|
+
expect true do ''.u.case_ignorable? end
|
|
46
|
+
expect true do "'".u.case_ignorable? end
|
|
47
|
+
expect true do "'’".u.case_ignorable? end
|
|
48
|
+
expect true do [0x0307].pack('U').u.case_ignorable? end
|
|
49
|
+
expect false do 'a'.u.case_ignorable? end
|
|
50
|
+
|
|
51
|
+
expect true do ''.u.cased? end
|
|
52
|
+
expect true do 'a'.u.cased? end
|
|
53
|
+
expect true do 'ab'.u.cased? end
|
|
54
|
+
expect false do '0'.u.cased? end
|
|
55
|
+
|
|
56
|
+
expect true do ''.u.cntrl? end
|
|
57
|
+
expect true do "\0".u.cntrl? end
|
|
58
|
+
expect true do "\0\1".u.cntrl? end
|
|
59
|
+
expect false do "a".u.cntrl? end
|
|
60
|
+
|
|
61
|
+
expect true do ''.u.defined? end
|
|
62
|
+
expect true do 'a'.u.defined? end
|
|
63
|
+
expect true do 'ab'.u.defined? end
|
|
64
|
+
expect false do [0x0588].pack('U').u.defined? end
|
|
65
|
+
# TODO: This raises an error, as we’re using u_aref_char_validated_n for
|
|
66
|
+
# these functions. Perhaps use u_aref_char_n and don’t raise errors on
|
|
67
|
+
# invalid input.
|
|
68
|
+
# expect false do [0xD800].pack('U').u.defined? end
|
|
69
|
+
|
|
70
|
+
expect true do ''.u.digit? end
|
|
71
|
+
expect true do '0'.u.digit? end
|
|
72
|
+
expect true do '01'.u.digit? end
|
|
73
|
+
expect false do '0a'.u.digit? end
|
|
74
|
+
|
|
75
|
+
expect true do 'ss'.u.folded? end
|
|
76
|
+
expect false do 'ß'.u.folded? end
|
|
77
|
+
expect true do 'abc\0ß'.u.foldcase.folded? end
|
|
78
|
+
|
|
79
|
+
expect true do ''.u.graph? end
|
|
80
|
+
expect true do '0'.u.graph? end
|
|
81
|
+
expect true do '01'.u.graph? end
|
|
82
|
+
expect false do "\0".u.graph? end
|
|
83
|
+
|
|
84
|
+
expect true do 'i'.u.lower? end
|
|
85
|
+
expect true do 'i'.u.lower?('lt') end
|
|
86
|
+
expect false do 'I'.u.lower? end
|
|
87
|
+
expect false do 'I'.u.lower?('lt') end
|
|
88
|
+
|
|
89
|
+
expect true do ''.u.newline? end
|
|
90
|
+
expect true do [0x2028].pack('U').u.newline? end
|
|
91
|
+
expect true do "\r\n".u.newline? end
|
|
92
|
+
expect false do 'a'.u.newline? end
|
|
93
|
+
|
|
94
|
+
expect true do ''.u.print? end
|
|
95
|
+
expect true do 'a'.u.print? end
|
|
96
|
+
expect true do 'ab'.u.print? end
|
|
97
|
+
expect false do "\n".u.print? end
|
|
98
|
+
|
|
99
|
+
expect true do ''.u.punct? end
|
|
100
|
+
expect true do '.'.u.punct? end
|
|
101
|
+
expect true do '()'.u.punct? end
|
|
102
|
+
expect false do 'a'.u.punct? end
|
|
103
|
+
|
|
104
|
+
expect true do ''.u.soft_dotted? end
|
|
105
|
+
expect true do 'i'.u.soft_dotted? end
|
|
106
|
+
expect true do 'ij'.u.soft_dotted? end
|
|
107
|
+
expect false do 'a'.u.soft_dotted? end
|
|
108
|
+
|
|
109
|
+
expect true do ''.u.space? end
|
|
110
|
+
expect true do ' '.u.space? end
|
|
111
|
+
expect true do " \t\n".u.space? end
|
|
112
|
+
expect false do 'a'.u.space? end
|
|
113
|
+
|
|
114
|
+
expect false do 'i'.u.title? end
|
|
115
|
+
expect false do 'I'.u.title? end
|
|
116
|
+
expect false do 'DZ'.u.title? end
|
|
117
|
+
expect true do 'Dz'.u.title? end
|
|
118
|
+
|
|
119
|
+
expect false do 'i'.u.upper? end
|
|
120
|
+
expect false do 'i'.u.upper?('lt') end
|
|
121
|
+
expect false do 'i'.u.upper?('tr') end
|
|
122
|
+
expect true do 'I'.u.upper? end
|
|
123
|
+
expect true do 'I'.u.upper?('lt') end
|
|
124
|
+
expect true do 'I'.u.upper?('tr') end
|
|
125
|
+
|
|
126
|
+
expect true do ''.u.valid? end
|
|
127
|
+
|
|
128
|
+
expect true do ''.u.wide? end
|
|
129
|
+
expect true do '豈'.u.wide? end
|
|
130
|
+
expect true do '豈豈'.u.wide? end
|
|
131
|
+
expect false do 'a'.u.wide? end
|
|
132
|
+
|
|
133
|
+
expect true do ''.u.wide_cjk? end
|
|
134
|
+
expect true do '豈'.u.wide_cjk? end
|
|
135
|
+
expect true do '豈豈'.u.wide_cjk? end
|
|
136
|
+
expect true do '豈♣'.u.wide_cjk? end
|
|
137
|
+
expect false do 'a'.u.wide_cjk? end
|
|
138
|
+
|
|
139
|
+
expect true do ''.u.xdigit? end
|
|
140
|
+
expect true do '0'.u.xdigit? end
|
|
141
|
+
expect true do '0a'.u.xdigit? end
|
|
142
|
+
expect false do 'g'.u.xdigit? end
|
|
143
|
+
|
|
144
|
+
expect true do ''.u.zero_width? end
|
|
145
|
+
expect true do [0x200b].pack('U').u.zero_width? end
|
|
146
|
+
expect true do [0x200b, 0x1160].pack('U*').u.zero_width? end
|
|
147
|
+
expect false do 'a'.u.zero_width? end
|
|
148
|
+
|
|
149
|
+
expect result.normalized?(:nfc) do 'äbc'.u end
|
|
150
|
+
expect result.normalized?(:nfd) do 'äbc'.u.normalize(:nfd) end
|
|
151
|
+
expect result.normalized? do 'äbc'.u.normalize(:nfd) end
|
|
152
|
+
|
|
153
|
+
expect result.not.eql?('abc') do 'abc'.u end
|
|
154
|
+
expect result.not.eql?('äbc'.u) do 'äbc'.u.normalize(:nfd) end
|
|
155
|
+
expect result.eql?('äbc'.u) do 'äbc'.u.normalize(:nfd).normalize(:nfc) end
|
|
156
|
+
|
|
157
|
+
expect TypeError do 'abc'.u =~ 'abc' end
|
|
158
|
+
expect TypeError do 'abc'.u =~ 'abc'.u end
|
|
159
|
+
expect 10 do 'FëëFiëFöö-Fum'.u =~ /Fum$/u end
|
|
160
|
+
expect nil do 'FëëFiëFöö-Fum'.u =~ /FUM$/u end
|
|
161
|
+
expect 'fööbar' do 'föö'.u =~ stub(:=~ => proc{ |t| t + 'bar'.u }) end
|
|
162
|
+
|
|
163
|
+
expect 'a' do 'abc'.u.match(/a/)[0] end
|
|
164
|
+
expect nil do 'abc'.u.match(/d/) end
|
|
165
|
+
expect 'a' do 'abc'.u.match('a')[0] end
|
|
166
|
+
expect nil do 'abc'.u.match('d') end
|
|
167
|
+
expect result.tainted? do 'abc'.u.taint.match(/a/) end
|
|
168
|
+
expect result.untrusted? do 'abc'.u.untrust.match(/a/) end if untrust
|
|
169
|
+
expect result.tainted? do 'abc'.u.taint.match('a') end
|
|
170
|
+
expect result.untrusted? do 'abc'.u.untrust.match('a') end if untrust
|
|
171
|
+
expect result.tainted? do 'abc'.u.match(/a/.taint) end
|
|
172
|
+
expect result.untrusted? do 'abc'.u.match(/a/.untrust) end if untrust
|
|
173
|
+
expect result.tainted? do 'abc'.u.match('a'.taint) end if 'abc'.match('a'.taint).tainted?
|
|
174
|
+
expect result.untrusted? do 'abc'.u.match('a'.untrust) end if untrust
|
|
175
|
+
|
|
176
|
+
expect result.to.be.empty? do ''.u end
|
|
177
|
+
expect result.not.to.be.empty? do 'not'.u end
|
|
178
|
+
|
|
179
|
+
expect result.to.end_with?('c') do 'abc'.u end
|
|
180
|
+
expect result.not.to.end_with?('d') do 'abc'.u end
|
|
181
|
+
expect result.to.end_with?('ä') do 'cbä'.u end
|
|
182
|
+
expect result.not.to.end_with?('äb') do 'cbä'.u end
|
|
183
|
+
expect result.to.end_with?('a', 'ä') do 'cbä'.u end
|
|
184
|
+
expect result.not.to.end_with? do 'cbä'.u end
|
|
185
|
+
|
|
186
|
+
expect result.to.include?('f'.u) do 'fööbär'.u end
|
|
187
|
+
expect result.to.include?('föö'.u) do 'fööbär'.u end
|
|
188
|
+
expect result.to.include?('bär'.u) do 'fööbär'.u end
|
|
189
|
+
expect result.not.to.include?('bäz'.u) do 'fööbär'.u end
|
|
190
|
+
expect result.not.to.include?('z'.u) do 'fööbär'.u end
|
|
191
|
+
|
|
192
|
+
expect 0 do 'hëllö'.u.index('') end
|
|
193
|
+
expect 0 do 'hëllö'.u.index('h') end
|
|
194
|
+
expect 4 do 'hëllö'.u.index('ö') end
|
|
195
|
+
expect 1 do 'hëllö'.u.index('ëll') end
|
|
196
|
+
expect 2 do 'hëllö'.u.index(/ll/u) end
|
|
197
|
+
expect nil do 'hëllö'.u.index('hëllö!') end
|
|
198
|
+
expect nil do 'hëllö'.u.index('z') end
|
|
199
|
+
expect nil do 'hëllö'.u.index(/z./u) end
|
|
200
|
+
expect 3 do 'hëllö'.u.index('l', 3) end
|
|
201
|
+
expect 3 do 'hëllö'.u.index(/l./u, 3) end
|
|
202
|
+
expect nil do 'hëllö'.u.index('hëllö!', 3) end
|
|
203
|
+
expect nil do 'hëllö'.u.index('z', 3) end
|
|
204
|
+
expect nil do 'hëllö'.u.index(/z./u, 3) end
|
|
205
|
+
expect 2 do 'hëllö'.u.index(stub(:to_str => 'llö')) end
|
|
206
|
+
expect TypeError do 'hëllö'.u.index(Object.new) end
|
|
207
|
+
expect nil do 'föö'.u.index(//, -100) end
|
|
208
|
+
expect nil do 'föö'.u.index(//, -100); $~ end
|
|
209
|
+
|
|
210
|
+
expect 5 do 'hëllö'.u.rindex('') end
|
|
211
|
+
expect 3 do 'hëllö'.u.rindex('l') end
|
|
212
|
+
expect 6 do 'ëll, hëllö'.u.rindex('ëll') end
|
|
213
|
+
expect 7 do 'ëll, hëllö'.u.rindex(/ll./u) end
|
|
214
|
+
expect nil do 'hëllö'.u.rindex('hëllö!') end
|
|
215
|
+
expect nil do 'hëllö'.u.rindex('z') end
|
|
216
|
+
expect nil do 'hëllö'.u.rindex(/z./u) end
|
|
217
|
+
expect 3 do 'hëllö,lö'.u.rindex('l', 3) end
|
|
218
|
+
expect 3 do 'hëllö,lö'.u.rindex(/l./u, 3) end
|
|
219
|
+
expect nil do 'hëllö,lö'.u.rindex('hëllö!', 3) end
|
|
220
|
+
expect nil do 'hëllö,lö'.u.rindex('z', 3) end
|
|
221
|
+
expect nil do 'hëllö,lö'.u.rindex(/z./u, 3) end
|
|
222
|
+
expect 6 do 'fööbarbarbaz'.u.rindex(stub(:to_str => 'bar')) end
|
|
223
|
+
expect TypeError do 'hëllö'.u.rindex(Object.new) end
|
|
224
|
+
expect nil do 'föö'.u.rindex(//, -100) end
|
|
225
|
+
expect nil do 'föö'.u.rindex(//, -100); $~ end
|
|
226
|
+
|
|
227
|
+
expect result.to.start_with?('a') do 'abc'.u end
|
|
228
|
+
expect result.not.to.start_with?('b') do 'abc'.u end
|
|
229
|
+
expect result.to.start_with?('ä') do 'äbc'.u end
|
|
230
|
+
expect result.not.to.start_with?('bc') do 'äbc'.u end
|
|
231
|
+
expect result.to.start_with?('a', 'ä') do 'äbc'.u end
|
|
232
|
+
expect result.not.to.start_with? do 'äbc'.u end
|
|
233
|
+
|
|
234
|
+
expect result.>(0) do 'あB'.u.casecmp('あa', 'en_US.UTF-8') end
|
|
235
|
+
expect result.>(0) do 'あB'.u.casecmp('あa'.u, 'en_US.UTF-8') end
|
|
236
|
+
|
|
237
|
+
expect "\0".u do "\0".u.collation_key('en_US.UTF-8') end
|
|
238
|
+
expect U::String do 'äbcdëf'.u.collation_key('en_US.UTF-8') end
|
|
239
|
+
expect U::String do "äbc\0dëf".u.collation_key('en_US.UTF-8') end
|
|
240
|
+
expect result.tainted? do ''.u.taint.collation_key('en_US.UTF-8') end
|
|
241
|
+
expect result.untrusted? do ''.u.untrust.collation_key('en_US.UTF-8') end if untrust
|
|
242
|
+
|
|
243
|
+
expect 0 do 'a'.u.canonical_combining_class end
|
|
244
|
+
expect 230 do [0x0307].pack('U').u.canonical_combining_class end
|
|
245
|
+
|
|
246
|
+
expect :letter_uppercase do 'A'.u.general_category end
|
|
247
|
+
expect :punctuation_other do '.'.u.general_category end
|
|
248
|
+
expect :symbol_currency do '$'.u.general_category end
|
|
249
|
+
expect :separator_space do ' '.u.general_category end
|
|
250
|
+
|
|
251
|
+
expect :cr do "\r".u.grapheme_break end
|
|
252
|
+
expect :other do 'a'.u.grapheme_break end
|
|
253
|
+
|
|
254
|
+
expect :open_punctuation do '('.u.line_break end
|
|
255
|
+
expect :close_parenthesis do ')'.u.line_break end
|
|
256
|
+
|
|
257
|
+
expect ArgumentError do [0x002A, 0x1CED].pack('U*').u.script end
|
|
258
|
+
expect :common do [0x002A].pack('U').u.script end
|
|
259
|
+
expect :inherited do [0x1CED].pack('U').u.script end
|
|
260
|
+
expect :inherited do [0x0670].pack('U').u.script end
|
|
261
|
+
expect :arabic do [0x060D].pack('U').u.script end
|
|
262
|
+
expect :armenian do [0x0559].pack('U').u.script end
|
|
263
|
+
expect :bengali do [0x09CD].pack('U').u.script end
|
|
264
|
+
expect :bopomofo do [0x31B6].pack('U').u.script end
|
|
265
|
+
expect :cherokee do [0x13A2].pack('U').u.script end
|
|
266
|
+
expect :coptic do [0x2CFD].pack('U').u.script end
|
|
267
|
+
expect :cyrillic do [0x0482].pack('U').u.script end
|
|
268
|
+
expect :deseret do [0x10401].pack('U').u.script end
|
|
269
|
+
expect :devanagari do [0x094D].pack('U').u.script end
|
|
270
|
+
expect :ethiopic do [0x1258].pack('U').u.script end
|
|
271
|
+
expect :georgian do [0x10FC].pack('U').u.script end
|
|
272
|
+
expect :gothic do [0x10341].pack('U').u.script end
|
|
273
|
+
expect :greek do [0x0375].pack('U').u.script end
|
|
274
|
+
expect :gujarati do [0x0A83].pack('U').u.script end
|
|
275
|
+
expect :gurmukhi do [0x0A3C].pack('U').u.script end
|
|
276
|
+
expect :han do [0x3005].pack('U').u.script end
|
|
277
|
+
expect :hangul do [0x1100].pack('U').u.script end
|
|
278
|
+
expect :hebrew do [0x05BF].pack('U').u.script end
|
|
279
|
+
expect :hiragana do [0x309F].pack('U').u.script end
|
|
280
|
+
expect :kannada do [0x0CBC].pack('U').u.script end
|
|
281
|
+
expect :katakana do [0x30FF].pack('U').u.script end
|
|
282
|
+
expect :khmer do [0x17DD].pack('U').u.script end
|
|
283
|
+
expect :lao do [0x0EDD].pack('U').u.script end
|
|
284
|
+
expect :latin do [0x0061].pack('U').u.script end
|
|
285
|
+
expect :malayalam do [0x0D3D].pack('U').u.script end
|
|
286
|
+
expect :mongolian do [0x1843].pack('U').u.script end
|
|
287
|
+
expect :myanmar do [0x1031].pack('U').u.script end
|
|
288
|
+
expect :ogham do [0x169C].pack('U').u.script end
|
|
289
|
+
expect :old_italic do [0x10322].pack('U').u.script end
|
|
290
|
+
expect :oriya do [0x0B3C].pack('U').u.script end
|
|
291
|
+
expect :runic do [0x16EF].pack('U').u.script end
|
|
292
|
+
expect :sinhala do [0x0DBD].pack('U').u.script end
|
|
293
|
+
expect :syriac do [0x0711].pack('U').u.script end
|
|
294
|
+
expect :tamil do [0x0B82].pack('U').u.script end
|
|
295
|
+
expect :telugu do [0x0C03].pack('U').u.script end
|
|
296
|
+
expect :thaana do [0x07B1].pack('U').u.script end
|
|
297
|
+
expect :thai do [0x0E31].pack('U').u.script end
|
|
298
|
+
expect :tibetan do [0x0FD4].pack('U').u.script end
|
|
299
|
+
expect :canadian_aboriginal do [0x1400].pack('U').u.script end
|
|
300
|
+
expect :canadian_aboriginal do [0x1401].pack('U').u.script end
|
|
301
|
+
expect :yi do [0xA015].pack('U').u.script end
|
|
302
|
+
expect :tagalog do [0x1700].pack('U').u.script end
|
|
303
|
+
expect :hanunoo do [0x1720].pack('U').u.script end
|
|
304
|
+
expect :buhid do [0x1740].pack('U').u.script end
|
|
305
|
+
expect :tagbanwa do [0x1760].pack('U').u.script end
|
|
306
|
+
expect :braille do [0x2800].pack('U').u.script end
|
|
307
|
+
expect :cypriot do [0x10808].pack('U').u.script end
|
|
308
|
+
expect :limbu do [0x1932].pack('U').u.script end
|
|
309
|
+
expect :osmanya do [0x10480].pack('U').u.script end
|
|
310
|
+
expect :shavian do [0x10450].pack('U').u.script end
|
|
311
|
+
expect :linear_b do [0x10000].pack('U').u.script end
|
|
312
|
+
expect :tai_le do [0x1950].pack('U').u.script end
|
|
313
|
+
expect :ugaritic do [0x1039F].pack('U').u.script end
|
|
314
|
+
expect :new_tai_lue do [0x1980].pack('U').u.script end
|
|
315
|
+
expect :buginese do [0x1A1F].pack('U').u.script end
|
|
316
|
+
expect :glagolitic do [0x2C00].pack('U').u.script end
|
|
317
|
+
expect :tifinagh do [0x2D6F].pack('U').u.script end
|
|
318
|
+
expect :syloti_nagri do [0xA800].pack('U').u.script end
|
|
319
|
+
expect :old_persian do [0x103D0].pack('U').u.script end
|
|
320
|
+
expect :kharoshthi do [0x10A3F].pack('U').u.script end
|
|
321
|
+
expect :unknown do ''.u.script end
|
|
322
|
+
expect :balinese do [0x1B04].pack('U').u.script end
|
|
323
|
+
expect :cuneiform do [0x12000].pack('U').u.script end
|
|
324
|
+
expect :phoenician do [0x10900].pack('U').u.script end
|
|
325
|
+
expect :phags_pa do [0xA840].pack('U').u.script end
|
|
326
|
+
expect :nko do [0x07C0].pack('U').u.script end
|
|
327
|
+
expect :kayah_li do [0xA900].pack('U').u.script end
|
|
328
|
+
expect :lepcha do [0x1C00].pack('U').u.script end
|
|
329
|
+
expect :rejang do [0xA930].pack('U').u.script end
|
|
330
|
+
expect :sundanese do [0x1B80].pack('U').u.script end
|
|
331
|
+
expect :saurashtra do [0xA880].pack('U').u.script end
|
|
332
|
+
expect :cham do [0xAA00].pack('U').u.script end
|
|
333
|
+
expect :ol_chiki do [0x1C50].pack('U').u.script end
|
|
334
|
+
expect :vai do [0xA500].pack('U').u.script end
|
|
335
|
+
expect :carian do [0x102A0].pack('U').u.script end
|
|
336
|
+
expect :lycian do [0x10280].pack('U').u.script end
|
|
337
|
+
expect :lydian do [0x1093F].pack('U').u.script end
|
|
338
|
+
expect :avestan do [0x10B00].pack('U').u.script end
|
|
339
|
+
expect :bamum do [0xA6A0].pack('U').u.script end
|
|
340
|
+
expect :egyptian_hieroglyphs do [0x13000].pack('U').u.script end
|
|
341
|
+
expect :imperial_aramaic do [0x10840].pack('U').u.script end
|
|
342
|
+
expect :inscriptional_pahlavi do [0x10B60].pack('U').u.script end
|
|
343
|
+
expect :inscriptional_parthian do [0x10B40].pack('U').u.script end
|
|
344
|
+
expect :javanese do [0xA980].pack('U').u.script end
|
|
345
|
+
expect :kaithi do [0x11082].pack('U').u.script end
|
|
346
|
+
expect :lisu do [0xA4D0].pack('U').u.script end
|
|
347
|
+
expect :meetei_mayek do [0xABE5].pack('U').u.script end
|
|
348
|
+
expect :old_south_arabian do [0x10A60].pack('U').u.script end
|
|
349
|
+
expect :old_turkic do [0x10C00].pack('U').u.script end
|
|
350
|
+
expect :samaritan do [0x0800].pack('U').u.script end
|
|
351
|
+
expect :tai_tham do [0x1A20].pack('U').u.script end
|
|
352
|
+
expect :tai_viet do [0xAA80].pack('U').u.script end
|
|
353
|
+
expect :batak do [0x1BC0].pack('U').u.script end
|
|
354
|
+
expect :brahmi do [0x11000].pack('U').u.script end
|
|
355
|
+
expect :mandaic do [0x0840].pack('U').u.script end
|
|
356
|
+
|
|
357
|
+
expect :aletter do 'a'.u.word_break end
|
|
358
|
+
|
|
359
|
+
expect 4 do 'äbc'.u.bytesize end
|
|
360
|
+
expect 9 do "äbc\0dëf".u.bytesize end
|
|
361
|
+
|
|
362
|
+
expect 0 do ''.u.length end
|
|
363
|
+
expect 4 do '1234'.u.length end
|
|
364
|
+
expect 6 do "1234\r\n".u.length end
|
|
365
|
+
expect 7 do "\0011234\r\n".u.length end
|
|
366
|
+
expect 5 do 'hëllö'.u.length end
|
|
367
|
+
expect 6 do "\0hëllö".u.length end
|
|
368
|
+
expect 12 do "hëllö\0agäin\303".u.length end
|
|
369
|
+
|
|
370
|
+
expect 0 do ''.u.size end
|
|
371
|
+
expect 4 do '1234'.u.size end
|
|
372
|
+
expect 6 do "1234\r\n".u.size end
|
|
373
|
+
expect 7 do "\0011234\r\n".u.size end
|
|
374
|
+
expect 5 do 'hëllö'.u.size end
|
|
375
|
+
expect 6 do "\0hëllö".u.size end
|
|
376
|
+
expect 12 do "hëllö\0agäin\303".u.size end
|
|
377
|
+
|
|
378
|
+
expect 0 do ''.u.width end
|
|
379
|
+
expect 1 do 'a'.u.width end
|
|
380
|
+
expect 1 do "a\xcc\x87".u.width end
|
|
381
|
+
expect 2 do '豈'.u.width end
|
|
382
|
+
expect 3 do 'a豈'.u.width end
|
|
383
|
+
|
|
384
|
+
expect [0x61, 0x62, 0x63, 0x00, 0x64, 0xc3, 0xab, 0x66] do "abc\0dëf".u.each_byte.to_a end
|
|
385
|
+
expect 8 do "abc\0dëf".u.each_byte.size end if ''.u.each_byte.respond_to? :size
|
|
386
|
+
|
|
387
|
+
expect [0x61, 0x62, 0x63, 0x00, 0x64, 0xc3, 0xab, 0x66] do "abc\0dëf".u.bytes end
|
|
388
|
+
|
|
389
|
+
expect ['h'.u, 'ë'.u, 'l'.u, 'l'.u, 'ö'.u] do 'hëllö'.u.each_char.to_a end
|
|
390
|
+
expect 5 do 'hëllö'.u.each_char.size end if ''.u.each_byte.respond_to? :size
|
|
391
|
+
expect result.tainted? do 'a'.u.taint.each_char.first end
|
|
392
|
+
expect result.untrusted? do 'a'.u.untrust.each_char.first end if untrust
|
|
393
|
+
|
|
394
|
+
expect ['h'.u, 'ë'.u, 'l'.u, 'l'.u, 'ö'.u] do 'hëllö'.u.chars end
|
|
395
|
+
expect result.tainted? do 'a'.u.taint.chars.first end
|
|
396
|
+
expect result.untrusted? do 'a'.u.untrust.chars.first end if untrust
|
|
397
|
+
|
|
398
|
+
expect [0x0068, 0x00eb, 0x006c, 0x006c, 0x00f6] do 'hëllö'.u.each_codepoint.to_a end
|
|
399
|
+
expect 5 do 'hëllö'.u.each_codepoint.size end if ''.u.each_byte.respond_to? :size
|
|
400
|
+
|
|
401
|
+
expect [0x0068, 0x00eb, 0x006c, 0x006c, 0x00f6] do 'hëllö'.u.codepoints end
|
|
402
|
+
|
|
403
|
+
expect ['h'.u, 'ë'.u.normalize(:nfd), 'l'.u, 'l'.u, 'ö'.u.normalize(:nfd)] do 'hëllö'.u.normalize(:nfd).grapheme_clusters.to_a end
|
|
404
|
+
|
|
405
|
+
expect ["hello\n".u, 'world'.u] do with_global(:$/, "\n"){ "hello\nworld".u.each_line.to_a } end
|
|
406
|
+
expect ["hello\n\n\n".u, 'world'.u] do "hello\n\n\nworld".u.each_line('').to_a end
|
|
407
|
+
expect ['hello!'.u, 'world'.u] do with_global(:$/, '!'){ 'hello!world'.u.each_line.to_a } end
|
|
408
|
+
expect ["hello\nworld".u] do with_global(:$/, nil){ "hello\nworld".u.each_line.to_a } end
|
|
409
|
+
expect ['hëll hëllö'.u, ' world'.u] do 'hëll hëllö world'.u.each_line('llö').to_a end
|
|
410
|
+
expect ["hello\0".u, 'world'.u] do "hello\0world".u.each_line("\0").to_a end
|
|
411
|
+
expect result.tainted? do 'a'.u.taint.each_line.first end
|
|
412
|
+
expect result.untrusted? do 'a'.u.untrust.each_line.first end if untrust
|
|
413
|
+
|
|
414
|
+
expect ["hello\n".u, 'world'.u] do with_global(:$/, "\n"){ "hello\nworld".u.lines } end
|
|
415
|
+
expect ["hello\n\n\n".u, 'world'.u] do "hello\n\n\nworld".u.lines('') end
|
|
416
|
+
expect ['hello!'.u, 'world'.u] do with_global(:$/, '!'){ 'hello!world'.u.lines } end
|
|
417
|
+
expect ["hello\nworld".u] do with_global(:$/, nil){ "hello\nworld".u.lines } end
|
|
418
|
+
expect ['hëll hëllö'.u, ' world'.u] do 'hëll hëllö world'.u.lines('llö') end
|
|
419
|
+
expect ["hello\0".u, 'world'.u] do "hello\0world".u.lines("\0") end
|
|
420
|
+
expect result.tainted? do 'a'.u.taint.lines.first end
|
|
421
|
+
expect result.untrusted? do 'a'.u.untrust.lines.first end if untrust
|
|
422
|
+
|
|
423
|
+
expect ['hello'.u, ' '.u, 'world'.u] do 'hello world'.u.words.to_a end
|
|
424
|
+
|
|
425
|
+
expect nil do ''.u[0, -2] end
|
|
426
|
+
expect nil do ''.u[0, -1] end
|
|
427
|
+
expect ''.u do ''.u[0, 0] end
|
|
428
|
+
expect ''.u do ''.u[0, 1] end
|
|
429
|
+
expect ''.u do ''.u[0, 2] end
|
|
430
|
+
expect nil do ''.u[-1, -2] end
|
|
431
|
+
expect nil do ''.u[-1, -1] end
|
|
432
|
+
expect nil do ''.u[-1, 0] end
|
|
433
|
+
expect nil do ''.u[-1, 1] end
|
|
434
|
+
expect nil do ''.u[-1, 2] end
|
|
435
|
+
expect nil do ''.u[1, -2] end
|
|
436
|
+
expect nil do ''.u[1, -1] end
|
|
437
|
+
expect nil do ''.u[1, 0] end
|
|
438
|
+
expect nil do ''.u[1, 1] end
|
|
439
|
+
expect nil do ''.u[1, 2] end
|
|
440
|
+
expect nil do ''.u[0] end
|
|
441
|
+
expect 'h'.u do 'hëllö'.u[0] end
|
|
442
|
+
expect 'ö'.u do 'hëllö'.u[-1] end
|
|
443
|
+
expect nil do 'hëllö'.u[5] end
|
|
444
|
+
expect nil do 'hëllö'.u[-6] end
|
|
445
|
+
expect 'hë'.u do 'hëllö'.u[0, 2] end
|
|
446
|
+
expect 'lö'.u do 'hëllö'.u[-2, 2] end
|
|
447
|
+
expect 'lö'.u do 'hëllö'.u[3, 2] end
|
|
448
|
+
expect 'hël'.u do 'hëllö'.u[0..2] end
|
|
449
|
+
expect 'hël'.u do 'hëllö'.u[0...3] end
|
|
450
|
+
expect 'lö'.u do 'hëllö'.u[-2..-1] end
|
|
451
|
+
expect 'hë'.u do 'hëllö'.u[/\Ah./u] end
|
|
452
|
+
expect 'lö'.u do 'hëllö'.u[/.ö\z/u] end
|
|
453
|
+
expect nil do 'hëllö'.u[/other/u] end
|
|
454
|
+
expect 'hë'.u do 'hëllö'.u['hë'.u] end
|
|
455
|
+
expect 'lö'.u do 'hëllö'.u['lö'.u] end
|
|
456
|
+
expect 'hë'.u do 'hëllö'.u['hë'] end
|
|
457
|
+
expect 'lö'.u do 'hëllö'.u['lö'] end
|
|
458
|
+
expect nil do 'hëllö'.u['other'.u] end
|
|
459
|
+
expect nil do 'hëllö'.u['other'] end
|
|
460
|
+
expect 'hë'.u do 'hëllö'.u[/(..)(..)/u, 1] end
|
|
461
|
+
expect 'll'.u do 'hëllö'.u[/(..)(..)/u, 2] end
|
|
462
|
+
expect nil do 'hëllö'.u[/(..)(..)/u, 3] end
|
|
463
|
+
expect 'll'.u do 'hëllö'.u[/(..)(..)/u, -1] end
|
|
464
|
+
expect 'hë'.u do 'hëllö'.u[/(..)(..)/u, -2] end
|
|
465
|
+
expect nil do 'hëllö'.u[/(..)(..)/u, -3] end
|
|
466
|
+
expect 'l'.u do 'hëllö'.u[stub(:to_int => 2)] end
|
|
467
|
+
expect ArgumentError do 'hëllö'.u[1, 2, 3] end
|
|
468
|
+
expect ArgumentError do 'hëllö'.u[] end
|
|
469
|
+
expect result.tainted? do 'a'.u.taint[0] end
|
|
470
|
+
expect result.untrusted? do 'a'.u.untrust[0] end if untrust
|
|
471
|
+
expect result.tainted? do 'a'.u.taint[0, 1] end
|
|
472
|
+
expect result.untrusted? do 'a'.u.untrust[0, 1] end if untrust
|
|
473
|
+
expect result.tainted? do 'a'.u.taint[0...1] end
|
|
474
|
+
expect result.untrusted? do 'a'.u.untrust[0...1] end if untrust
|
|
475
|
+
expect result.tainted? do 'a'.u.taint[/a/] end
|
|
476
|
+
expect result.untrusted? do 'a'.u.untrust[/a/] end if untrust
|
|
477
|
+
expect result.tainted? do 'a'.u[/a/.taint] end
|
|
478
|
+
expect result.untrusted? do 'a'.u[/a/.untrust] end if untrust
|
|
479
|
+
expect result.tainted? do 'a'.u[/(a)/.taint, 1] end
|
|
480
|
+
expect result.untrusted? do 'a'.u[/(a)/.untrust, 1] end if untrust
|
|
481
|
+
expect result.not.tainted? do 'a'.u.taint['a'.u] end
|
|
482
|
+
expect result.not.untrusted? do 'a'.u.untrust['a'.u] end if untrust
|
|
483
|
+
expect result.not.tainted? do 'a'.u.taint['a'] end
|
|
484
|
+
expect result.not.untrusted? do 'a'.u.untrust['a'] end if untrust
|
|
485
|
+
expect result.tainted? do 'a'.u['a'.u.taint] end
|
|
486
|
+
expect result.untrusted? do 'a'.u['a'.u.untrust] end if untrust
|
|
487
|
+
expect result.tainted? do 'a'.u['a'.taint] end
|
|
488
|
+
expect result.untrusted? do 'a'.u['a'.untrust] end if untrust
|
|
489
|
+
|
|
490
|
+
expect nil do ''.u.byteslice(0, -2) end
|
|
491
|
+
expect nil do ''.u.byteslice(0, -1) end
|
|
492
|
+
expect ''.u do ''.u.byteslice(0, 0) end
|
|
493
|
+
expect ''.u do ''.u.byteslice(0, 1) end
|
|
494
|
+
expect ''.u do ''.u.byteslice(0, 2) end
|
|
495
|
+
expect nil do ''.u.byteslice(-1, -2) end
|
|
496
|
+
expect nil do ''.u.byteslice(-1, -1) end
|
|
497
|
+
expect nil do ''.u.byteslice(-1, 0) end
|
|
498
|
+
expect nil do ''.u.byteslice(-1, 1) end
|
|
499
|
+
expect nil do ''.u.byteslice(-1, 2) end
|
|
500
|
+
expect nil do ''.u.byteslice(1, -2) end
|
|
501
|
+
expect nil do ''.u.byteslice(1, -1) end
|
|
502
|
+
expect nil do ''.u.byteslice(1, 0) end
|
|
503
|
+
expect nil do ''.u.byteslice(1, 1) end
|
|
504
|
+
expect nil do ''.u.byteslice(1, 2) end
|
|
505
|
+
expect nil do ''.u.byteslice(0) end
|
|
506
|
+
expect 'h'.u do 'hëllö'.u.byteslice(0) end
|
|
507
|
+
expect "\xb6".u do 'hëllö'.u.byteslice(-1) end
|
|
508
|
+
expect nil do 'hëllö'.u.byteslice(7) end
|
|
509
|
+
expect nil do 'hëllö'.u.byteslice(-8) end
|
|
510
|
+
expect "h\xc3".u do 'hëllö'.u.byteslice(0, 2) end
|
|
511
|
+
expect 'ö'.u do 'hëllö'.u.byteslice(-2, 2) end
|
|
512
|
+
expect 'll'.u do 'hëllö'.u.byteslice(3, 2) end
|
|
513
|
+
expect 'hë'.u do 'hëllö'.u.byteslice(0..2) end
|
|
514
|
+
expect 'hë'.u do 'hëllö'.u.byteslice(0...3) end
|
|
515
|
+
expect 'ö'.u do 'hëllö'.u.byteslice(-2..-1) end
|
|
516
|
+
expect 'l'.u do 'hëllö'.u.byteslice(stub(:to_int => 3)) end
|
|
517
|
+
expect ArgumentError do 'hëllö'.u.byteslice(1, 2, 3) end
|
|
518
|
+
expect ArgumentError do 'hëllö'.u.byteslice() end
|
|
519
|
+
expect result.tainted? do 'a'.u.taint.byteslice(0) end
|
|
520
|
+
expect result.untrusted? do 'a'.u.untrust.byteslice(0) end if untrust
|
|
521
|
+
expect result.tainted? do 'a'.u.taint.byteslice(0, 1) end
|
|
522
|
+
expect result.untrusted? do 'a'.u.untrust.byteslice(0, 1) end if untrust
|
|
523
|
+
expect result.tainted? do 'a'.u.taint.byteslice(0...1) end
|
|
524
|
+
expect result.untrusted? do 'a'.u.untrust.byteslice(0...1) end if untrust
|
|
525
|
+
|
|
526
|
+
expect 'hello'.u do 'hello'.u.chomp("\n") end
|
|
527
|
+
expect 'hello'.u do "hello\n".u.chomp("\n") end
|
|
528
|
+
expect 'hello'.u do with_global(:$/, "\n"){ 'hello'.u.chomp } end
|
|
529
|
+
expect 'hello'.u do with_global(:$/, "\n"){ "hello\n".u.chomp } end
|
|
530
|
+
expect 'hello'.u do with_global(:$/, '!'){ 'hello'.u.chomp } end
|
|
531
|
+
expect 'hello'.u do with_global(:$/, '!'){ 'hello!'.u.chomp } end
|
|
532
|
+
expect 'hello!!'.u do 'hello!!!'.u.chomp('!') end
|
|
533
|
+
expect "hello\r\n".u do "hello\r\n\r\n".u.chomp("\n") end
|
|
534
|
+
expect 'hello'.u do "hello\r".u.chomp("\n") end
|
|
535
|
+
expect 'hello'.u do "hello\r\n".u.chomp('') end
|
|
536
|
+
expect "hello".u do "hello\r\n\r\n".u.chomp('') end
|
|
537
|
+
# NOTE This differs from Ruby because U treats \r as a newline character and
|
|
538
|
+
# thus removes it.
|
|
539
|
+
expect 'hello'.u do "hello\r".u.chomp('') end
|
|
540
|
+
expect 'a'.u do 'a'.u.chomp("\xC3") end
|
|
541
|
+
expect 'a'.u do 'aā'.u.chomp('ā') end
|
|
542
|
+
expect result.tainted? do 'hello'.u.taint.chomp end
|
|
543
|
+
expect result.untrusted? do 'hello'.u.untrust.chomp end if untrust
|
|
544
|
+
|
|
545
|
+
expect 'hell'.u do 'hellö'.u.chop end
|
|
546
|
+
expect 'hellö'.u do "hellö\r\n".u.chop end
|
|
547
|
+
expect "hellö\n".u do "hellö\n\r".u.chop end
|
|
548
|
+
expect ''.u do ''.u.chop end
|
|
549
|
+
expect ''.u do "\r\n".u.chop end
|
|
550
|
+
expect result.tainted? do 'hello'.u.taint.chop end
|
|
551
|
+
expect result.untrusted? do 'hello'.u.untrust.chop end if untrust
|
|
552
|
+
|
|
553
|
+
expect ''.u do ''.u.chr end
|
|
554
|
+
expect 'ä'.u do 'ä'.u.chr end
|
|
555
|
+
expect 'ä'.u do 'äbc'.u.chr end
|
|
556
|
+
expect result.tainted? do ''.u.taint.chr end
|
|
557
|
+
expect result.untrusted? do ''.u.untrust.chr end if untrust
|
|
558
|
+
|
|
559
|
+
expect 0x00c3 do 'äbc'.u.getbyte(0) end
|
|
560
|
+
expect 0x00a4 do 'äbc'.u.getbyte(1) end
|
|
561
|
+
expect nil do 'äbc'.u.getbyte(4) end
|
|
562
|
+
expect 0x00a4 do 'äbc'.u.getbyte(-3) end
|
|
563
|
+
expect 0x00c3 do 'äbc'.u.getbyte(-4) end
|
|
564
|
+
expect nil do 'äbc'.u.getbyte(-5) end
|
|
565
|
+
|
|
566
|
+
# TODO Add tests for Unicode whitespace characters
|
|
567
|
+
expect 'あ'.u do 'あ'.u.lstrip end
|
|
568
|
+
expect 'あ'.u do ' あ'.u.lstrip end
|
|
569
|
+
expect 'あ '.u do 'あ '.u.lstrip end
|
|
570
|
+
expect result.tainted? do 'あ'.u.taint.lstrip end
|
|
571
|
+
expect result.untrusted? do 'あ'.u.untrust.lstrip end if untrust
|
|
572
|
+
|
|
573
|
+
expect ArgumentError.new('empty string') do ''.u.ord end
|
|
574
|
+
expect 0x00e4 do 'ä'.u.ord end
|
|
575
|
+
expect 0x00e4 do 'äbc'.u.ord end
|
|
576
|
+
|
|
577
|
+
# TODO Add tests for Unicode whitespace characters
|
|
578
|
+
expect 'あ'.u do 'あ'.u.rstrip end
|
|
579
|
+
expect ' あ'.u do ' あ'.u.rstrip end
|
|
580
|
+
expect 'あ'.u do 'あ '.u.rstrip end
|
|
581
|
+
expect result.tainted? do 'あ'.u.taint.rstrip end
|
|
582
|
+
expect result.untrusted? do 'あ'.u.untrust.rstrip end if untrust
|
|
583
|
+
|
|
584
|
+
# TODO Add tests for Unicode whitespace characters
|
|
585
|
+
expect 'あ'.u do 'あ'.u.strip end
|
|
586
|
+
expect 'あ'.u do ' あ'.u.strip end
|
|
587
|
+
expect 'あ'.u do 'あ '.u.strip end
|
|
588
|
+
expect 'あ'.u do ' あ '.u.strip end
|
|
589
|
+
expect result.tainted? do 'あ'.u.taint.strip end
|
|
590
|
+
expect result.untrusted? do 'あ'.u.untrust.strip end if untrust
|
|
591
|
+
|
|
592
|
+
expect 'hëllö'.u do 'hëlLÖ'.u.downcase end
|
|
593
|
+
expect 'hëllö'.u do 'hëllö'.u.downcase end
|
|
594
|
+
expect 'hëllö'.u do 'HËLLÖ'.u.downcase end
|
|
595
|
+
expect "abc\0dëf".u do "ABC\0DËF".u.downcase end
|
|
596
|
+
expect 'σ'.u do 'Σ'.u.downcase end
|
|
597
|
+
expect 'ας'.u do 'ΑΣ'.u.downcase end
|
|
598
|
+
expect 'ασβ'.u do 'ΑΣΒ'.u.downcase end
|
|
599
|
+
expect 'ας '.u do 'ΑΣ '.u.downcase end
|
|
600
|
+
expect 'ας’'.u do 'ΑΣ’'.u.downcase end
|
|
601
|
+
expect '’σ'.u do '’Σ'.u.downcase end
|
|
602
|
+
expect 'i'.u do 'I'.u.downcase('lt') end
|
|
603
|
+
expect "i\xcc\x87\xcc\x80\xcc\x87".u do "I\xcc\x80\xcc\x87".u.downcase('lt') end
|
|
604
|
+
expect "i\xcc\x87\xcc\x87".u do "I\xcc\x87".u.downcase('lt') end
|
|
605
|
+
expect "i\xcc\x87\xcc\x80".u do "I\xcc\x80".u.downcase('lt') end
|
|
606
|
+
expect "j\xcc\x87\xcc\x80".u do "J\xcc\x80".u.downcase('lt') end
|
|
607
|
+
expect "į\xcc\x87\xcc\x80".u do "Į\xcc\x80".u.downcase('lt') end
|
|
608
|
+
expect "i\xcc\x87\xcc\x80".u do 'Ì'.u.downcase('lt') end
|
|
609
|
+
expect "i\xcc\x87\xcc\x81".u do 'Í'.u.downcase('lt') end
|
|
610
|
+
expect "i\xcc\x87\xcc\x83".u do 'Ĩ'.u.downcase('lt') end
|
|
611
|
+
expect 'i'.u do 'İ'.u.downcase('tr') end
|
|
612
|
+
expect 'i'.u do 'İ'.u.downcase('az') end
|
|
613
|
+
expect 'i'.u do 'İ'.u.downcase('tr') end
|
|
614
|
+
expect 'i'.u do 'İ'.u.downcase('az') end
|
|
615
|
+
expect 'ı'.u do 'I'.u.downcase('tr') end
|
|
616
|
+
expect 'ı'.u do 'I'.u.downcase('az') end
|
|
617
|
+
expect result.tainted? do 'A'.u.taint.downcase end
|
|
618
|
+
expect result.untrusted? do 'A'.u.untrust.downcase end if untrust
|
|
619
|
+
|
|
620
|
+
expect "abc\0ss".u do "abc\0ß".u.foldcase end
|
|
621
|
+
expect result.tainted? do 'a'.u.taint.foldcase end
|
|
622
|
+
expect result.untrusted? do 'a'.u.untrust.foldcase end if untrust
|
|
623
|
+
|
|
624
|
+
expect 'Ab Iς Ssσ/Ffi'.u do 'aB iς ßσ/ffi'.u.titlecase end
|
|
625
|
+
expect 'Ijssel Igloo Ijssel'.u do 'ijssEl iglOo IJSSEL'.u.titlecase end
|
|
626
|
+
expect 'IJssel Igloo IJssel'.u do 'ijssEl iglOo IJSSEL'.u.titlecase('nl') end
|
|
627
|
+
|
|
628
|
+
expect 'HËLLÖ'.u do 'hëlLÖ'.u.upcase end
|
|
629
|
+
expect 'HËLLÖ'.u do 'hëllö'.u.upcase end
|
|
630
|
+
expect 'HËLLÖ'.u do 'HËLLÖ'.u.upcase end
|
|
631
|
+
expect "ABC\0DËF".u do "abc\0dëF".u.upcase end
|
|
632
|
+
expect "I\xcc\x87".u do "i\xcc\x87".u.upcase end
|
|
633
|
+
expect 'I'.u do "i\xcc\x87".u.upcase('lt') end
|
|
634
|
+
expect "K\xcc\x87".u do "k\xcc\x87".u.upcase('lt') end
|
|
635
|
+
expect "A\xcc\x81Ι".u do "a\xcd\x85\xcc\x81".u.upcase end
|
|
636
|
+
expect 'I'.u do 'i'.u.upcase end
|
|
637
|
+
expect 'İ'.u do 'i'.u.upcase('tr') end
|
|
638
|
+
expect result.tainted? do 'a'.u.taint.upcase end
|
|
639
|
+
expect result.untrusted? do 'a'.u.untrust.upcase end if untrust
|
|
640
|
+
|
|
641
|
+
expect ''.u do ''.u.mirror end
|
|
642
|
+
expect ')'.u do '('.u.mirror end
|
|
643
|
+
expect ')('.u do '()'.u.mirror end
|
|
644
|
+
expect result.tainted? do ''.u.taint.mirror end
|
|
645
|
+
expect result.untrusted? do ''.u.untrust.mirror end if untrust
|
|
646
|
+
|
|
647
|
+
expect TypeError.new('not a symbol: 1') do ''.u.normalize(1) end
|
|
648
|
+
expect ArgumentError.new('unknown normalization form: :ufc') do ''.u.normalize(:ufc) end
|
|
649
|
+
expect 'Ḋ'.u do "D\xcc\x87".u.normalize(:nfc) end
|
|
650
|
+
expect result.tainted? do ''.u.taint.normalize end
|
|
651
|
+
expect result.untrusted? do ''.u.untrust.normalize end if untrust
|
|
652
|
+
|
|
653
|
+
expect ''.u do ''.u.reverse end
|
|
654
|
+
expect 'a'.u do 'a'.u.reverse end
|
|
655
|
+
expect 'ateb'.u do 'beta'.u.reverse end
|
|
656
|
+
expect 'madamImadam'.u do 'madamImadam'.u.reverse end
|
|
657
|
+
expect "alpha\0beta".u do "ateb\0ahpla".u.reverse end
|
|
658
|
+
expect result.tainted? do 'a'.u.taint.reverse end
|
|
659
|
+
expect result.untrusted? do 'a'.u.untrust.reverse end if untrust
|
|
660
|
+
|
|
661
|
+
expect 'hëllö'.u do 'hëllö'.u.center(4) end
|
|
662
|
+
expect ' hëllö '.u do 'hëllö'.u.center(11) end
|
|
663
|
+
expect 'ababaababa'.u do ''.u.center(10, 'ab') end
|
|
664
|
+
expect 'ababaababab'.u do ''.u.center(11, 'ab') end
|
|
665
|
+
expect 'あ3あ'.u do '3'.u.center(5, 'あ') end
|
|
666
|
+
expect ArgumentError.new('zero-width padding') do '3'.u.center(2, '') end
|
|
667
|
+
expect 'あ3あ'.u do '3'.u.center(5, 'あ ') end
|
|
668
|
+
expect 'あ3あ '.u do '3'.u.center(6, 'あ ') end
|
|
669
|
+
expect 'あ 3あ '.u do '3'.u.center(7, 'あ ') end
|
|
670
|
+
expect ArgumentError.new('padding is too wide to complete rounding (2 > 1)') do '3'.u.center(4, 'あ') end
|
|
671
|
+
# TODO Adjust this to LONG_MAX in Ruby
|
|
672
|
+
# expect ArgumentError do ''.u.center(9223372036854775807) end
|
|
673
|
+
expect result.tainted? do 'a'.u.taint.center(1) end
|
|
674
|
+
expect result.untrusted? do 'a'.u.untrust.center(1) end if untrust
|
|
675
|
+
expect result.tainted? do 'a'.u.taint.center(3) end
|
|
676
|
+
expect result.untrusted? do 'a'.u.untrust.center(3) end if untrust
|
|
677
|
+
expect result.not.tainted? do 'a'.u.center(1, ' '.taint) end
|
|
678
|
+
expect result.not.untrusted? do 'a'.u.center(1, ' '.untrust) end if untrust
|
|
679
|
+
expect result.tainted? do 'a'.u.taint.center(3, ' '.taint) end
|
|
680
|
+
expect result.untrusted? do 'a'.u.untrust.center(3, ' '.untrust) end if untrust
|
|
681
|
+
|
|
682
|
+
expect 'hëllö'.u do 'hëllö'.u.ljust(4) end
|
|
683
|
+
expect 'hëllö '.u do 'hëllö'.u.ljust(11) end
|
|
684
|
+
expect 'ababababab'.u do ''.u.ljust(10, 'ab') end
|
|
685
|
+
expect 'abababababa'.u do ''.u.ljust(11, 'ab') end
|
|
686
|
+
expect '3ああ'.u do '3'.u.ljust(5, 'あ') end
|
|
687
|
+
expect ArgumentError.new('zero-width padding') do '3'.u.ljust(2, '') end
|
|
688
|
+
expect ArgumentError.new('padding is too wide to complete rounding (2 > 1)') do '3'.u.ljust(5, 'あ ') end
|
|
689
|
+
expect '3あ あ'.u do '3'.u.ljust(6, 'あ ') end
|
|
690
|
+
expect '3あ あ '.u do '3'.u.ljust(7, 'あ ') end
|
|
691
|
+
expect ArgumentError.new('padding is too wide to complete rounding (2 > 1)') do '3'.u.ljust(4, 'あ') end
|
|
692
|
+
expect result.tainted? do 'a'.u.taint.ljust(1) end
|
|
693
|
+
expect result.untrusted? do 'a'.u.untrust.ljust(1) end if untrust
|
|
694
|
+
expect result.tainted? do 'a'.u.taint.ljust(3) end
|
|
695
|
+
expect result.untrusted? do 'a'.u.untrust.ljust(3) end if untrust
|
|
696
|
+
expect result.not.tainted? do 'a'.u.ljust(1, ' '.taint) end
|
|
697
|
+
expect result.not.untrusted? do 'a'.u.ljust(1, ' '.untrust) end if untrust
|
|
698
|
+
expect result.tainted? do 'a'.u.taint.ljust(3, ' '.taint) end
|
|
699
|
+
expect result.untrusted? do 'a'.u.untrust.ljust(3, ' '.untrust) end if untrust
|
|
700
|
+
|
|
701
|
+
expect 'hëllö'.u do 'hëllö'.u.rjust(4) end
|
|
702
|
+
expect ' hëllö'.u do 'hëllö'.u.rjust(11) end
|
|
703
|
+
expect 'ababababab'.u do ''.u.rjust(10, 'ab') end
|
|
704
|
+
expect 'abababababa'.u do ''.u.rjust(11, 'ab') end
|
|
705
|
+
expect 'ああ3'.u do '3'.u.rjust(5, 'あ') end
|
|
706
|
+
expect ArgumentError.new('zero-width padding') do '3'.u.rjust(2, '') end
|
|
707
|
+
expect ArgumentError.new('padding is too wide to complete rounding (2 > 1)') do '3'.u.rjust(5, 'あ ') end
|
|
708
|
+
expect 'あ あ3'.u do '3'.u.rjust(6, 'あ ') end
|
|
709
|
+
expect 'あ あ 3'.u do '3'.u.rjust(7, 'あ ') end
|
|
710
|
+
expect ArgumentError.new('padding is too wide to complete rounding (2 > 1)') do '3'.u.rjust(4, 'あ') end
|
|
711
|
+
expect result.tainted? do 'a'.u.taint.rjust(1) end
|
|
712
|
+
expect result.untrusted? do 'a'.u.untrust.rjust(1) end if untrust
|
|
713
|
+
expect result.tainted? do 'a'.u.taint.rjust(3) end
|
|
714
|
+
expect result.untrusted? do 'a'.u.untrust.rjust(3) end if untrust
|
|
715
|
+
expect result.not.tainted? do 'a'.u.rjust(1, ' '.taint) end
|
|
716
|
+
expect result.not.untrusted? do 'a'.u.rjust(1, ' '.untrust) end if untrust
|
|
717
|
+
expect result.tainted? do 'a'.u.taint.rjust(3, ' '.taint) end
|
|
718
|
+
expect result.untrusted? do 'a'.u.untrust.rjust(3, ' '.untrust) end if untrust
|
|
719
|
+
|
|
720
|
+
expect 5 do 'hëllö wörld'.u.count('lö') end
|
|
721
|
+
expect 3 do 'hëllö wörld'.u.count('l', 'lö') end
|
|
722
|
+
expect 2 do 'hëllö wörld'.u.count('lö', 'ö') end
|
|
723
|
+
expect 4 do 'hëllö wörld'.u.count('hëllö', '^l') end
|
|
724
|
+
expect 3 do 'hëllö wörld'.u.count('ej-m') end
|
|
725
|
+
expect 0 do 'y'.u.count('a\\-z') end
|
|
726
|
+
expect 5 do 'abcあいう'.u.count('^a') end
|
|
727
|
+
expect 5 do 'abcあいう'.u.count('^あ') end
|
|
728
|
+
expect 2 do 'abcあいう'.u.count('a-z', '^a') end
|
|
729
|
+
expect ArgumentError.new('wrong number of arguments (0 for at least 1)') do 'föö'.u.count end
|
|
730
|
+
|
|
731
|
+
expect 'hë wrd'.u do 'hëllö wörld'.u.delete('lö') end
|
|
732
|
+
expect 'hëö wörd'.u do 'hëllö wörld'.u.delete('l', 'lö') end
|
|
733
|
+
expect 'hëll wrld'.u do 'hëllö wörld'.u.delete('lö', 'ö') end
|
|
734
|
+
expect 'hëll wrld'.u do 'hëllö wörld'.u.delete('aëiöu', '^ë') end
|
|
735
|
+
expect 'hö wörd'.u do 'hëllö wörld'.u.delete('ëj-m') end
|
|
736
|
+
expect 'a'.u do 'aā'.u.delete('ā') end
|
|
737
|
+
expect 'a'.u do 'abcあいう'.u.delete('^a') end
|
|
738
|
+
expect 'bcあいう'.u do 'abcあいう'.u.delete('a') end
|
|
739
|
+
expect 'あ'.u do 'abcあいう'.u.delete('^あ') end
|
|
740
|
+
expect ArgumentError.new('wrong number of arguments (0 for at least 1)') do 'föö'.u.delete end
|
|
741
|
+
expect result.tainted? do 'a'.u.taint.delete('a') end
|
|
742
|
+
expect result.untrusted? do 'a'.u.untrust.delete('a') end if untrust
|
|
743
|
+
|
|
744
|
+
expect 'äbc'.u do 'äääbbbbccc'.u.squeeze end
|
|
745
|
+
expect 'ää bb cc'.u do 'ää bb cc'.u.squeeze(' ') end
|
|
746
|
+
expect 'BxTÿWz'.u do 'BxTÿÿÿWzzz'.u.squeeze('a-zä-ÿ') end
|
|
747
|
+
expect result.tainted? do 'abc'.u.taint.squeeze end
|
|
748
|
+
expect result.untrusted? do 'abc'.u.untrust.squeeze end if untrust
|
|
749
|
+
expect result.not.tainted? do 'abc'.u.squeeze('b'.taint) end
|
|
750
|
+
expect result.not.untrusted? do 'abc'.u.squeeze('b'.untrust) end if untrust
|
|
751
|
+
|
|
752
|
+
expect 'hïppö' do 'hëllö'.u.tr('ël', 'ïp') end
|
|
753
|
+
expect '*ë**ö' do 'hëllö'.u.tr('^aëiöu', '*') end
|
|
754
|
+
expect 'hal' do 'ibm'.u.tr('b-z', 'a-z') end
|
|
755
|
+
expect 'hal' do 'hal'.u.tr('a-z', 'a-z') end
|
|
756
|
+
expect true do a = 'hal'.u; a.tr('a-z', 'a-z').object_id == a.object_id end
|
|
757
|
+
expect result.tainted? do 'abc'.u.taint.tr('a', 'b') end
|
|
758
|
+
expect result.untrusted? do 'abc'.u.untrust.tr('a', 'b') end if untrust
|
|
759
|
+
expect result.not.tainted? do 'abc'.u.tr('a'.taint, 'b') end
|
|
760
|
+
expect result.not.untrusted? do 'abc'.u.tr('a'.untrust, 'b') end if untrust
|
|
761
|
+
expect result.not.tainted? do 'abc'.u.tr('a', 'b'.taint) end
|
|
762
|
+
expect result.not.untrusted? do 'abc'.u.tr('a', 'b'.untrust) end if untrust
|
|
763
|
+
|
|
764
|
+
expect 'hïpö' do 'hëllö'.u.tr_s('ël', 'ïp') end
|
|
765
|
+
expect '*ë*ö' do 'hëllö'.u.tr_s('^aëiöu', '*') end
|
|
766
|
+
expect 'hal' do 'ibm'.u.tr_s('b-z', 'a-z') end
|
|
767
|
+
expect 'hal' do 'hal'.u.tr_s('a-z', 'a-z') end
|
|
768
|
+
expect true do a = 'hal'.u; a.tr_s('a-z', 'a-z').object_id == a.object_id end
|
|
769
|
+
expect result.tainted? do 'abc'.u.taint.tr_s('a', 'b') end
|
|
770
|
+
expect result.untrusted? do 'abc'.u.untrust.tr_s('a', 'b') end if untrust
|
|
771
|
+
expect result.not.tainted? do 'abc'.u.tr_s('a'.taint, 'b') end
|
|
772
|
+
expect result.not.untrusted? do 'abc'.u.tr_s('a'.untrust, 'b') end if untrust
|
|
773
|
+
expect result.not.tainted? do 'abc'.u.tr_s('a', 'b'.taint) end
|
|
774
|
+
expect result.not.untrusted? do 'abc'.u.tr_s('a', 'b'.untrust) end if untrust
|
|
775
|
+
|
|
776
|
+
expect ['hë'.u, 'l'.u, 'lö'.u] do 'hëllö'.u.partition(/l/u) end
|
|
777
|
+
expect ['hë'.u, 'l'.u, 'lö'.u] do 'hëllö'.u.partition('l'.u) end
|
|
778
|
+
expect ['hë'.u, 'l'.u, 'lö'.u] do 'hëllö'.u.partition('l') end
|
|
779
|
+
expect TypeError do 'hëllö'.u.partition(0) end
|
|
780
|
+
expect ['föö'.u, '-'.u, 'bär'.u] do 'föö-bär'.u.partition(stub(:to_str => '-')) end
|
|
781
|
+
expect [true, true, true] do 'abc'.u.taint.partition(/b/).map(&:tainted?) end
|
|
782
|
+
expect [true, true, true] do 'abc'.u.untrust.partition(/b/).map(&:untrusted?) end if untrust
|
|
783
|
+
expect [false, true, false] do 'abc'.u.partition(/b/.taint).map(&:tainted?) end
|
|
784
|
+
expect [false, true, false] do 'abc'.u.partition(/b/.untrust).map(&:untrusted?) end if untrust
|
|
785
|
+
expect [true, true, true] do 'abc'.u.taint.partition(/b/.taint).map(&:tainted?) end
|
|
786
|
+
expect [true, true, true] do 'abc'.u.untrust.partition(/b/.untrust).map(&:untrusted?) end if untrust
|
|
787
|
+
expect [true, false, true] do 'abc'.u.taint.partition('b').map(&:tainted?) end
|
|
788
|
+
expect [true, false, true] do 'abc'.u.untrust.partition('b').map(&:untrusted?) end if untrust
|
|
789
|
+
expect [false, true, false] do 'abc'.u.partition('b'.taint).map(&:tainted?) end
|
|
790
|
+
expect [false, true, false] do 'abc'.u.partition('b'.untrust).map(&:untrusted?) end if untrust
|
|
791
|
+
expect [true, true, true] do 'abc'.u.taint.partition('b'.taint).map(&:tainted?) end
|
|
792
|
+
expect [true, true, true] do 'abc'.u.untrust.partition('b'.untrust).map(&:untrusted?) end if untrust
|
|
793
|
+
|
|
794
|
+
expect ['hël'.u, 'l'.u, 'ö'.u] do 'hëllö'.u.rpartition(/l/u) end
|
|
795
|
+
expect ['hël'.u, 'l'.u, 'ö'.u] do 'hëllö'.u.rpartition('l'.u) end
|
|
796
|
+
expect ['hël'.u, 'l'.u, 'ö'.u] do 'hëllö'.u.rpartition('l') end
|
|
797
|
+
expect TypeError do 'hëllö'.u.rpartition(0) end
|
|
798
|
+
expect ['föö'.u, '-'.u, 'bär'.u] do 'föö-bär'.u.rpartition(stub(:to_str => '-')) end
|
|
799
|
+
expect [true, true, true] do 'abc'.u.taint.rpartition(/b/).map(&:tainted?) end
|
|
800
|
+
expect [true, true, true] do 'abc'.u.untrust.rpartition(/b/).map(&:untrusted?) end if untrust
|
|
801
|
+
expect [false, true, false] do 'abc'.u.rpartition(/b/.taint).map(&:tainted?) end
|
|
802
|
+
expect [false, true, false] do 'abc'.u.rpartition(/b/.untrust).map(&:untrusted?) end if untrust
|
|
803
|
+
expect [true, true, true] do 'abc'.u.taint.rpartition(/b/.taint).map(&:tainted?) end
|
|
804
|
+
expect [true, true, true] do 'abc'.u.untrust.rpartition(/b/.untrust).map(&:untrusted?) end if untrust
|
|
805
|
+
expect [true, false, true] do 'abc'.u.taint.rpartition('b').map(&:tainted?) end
|
|
806
|
+
expect [true, false, true] do 'abc'.u.untrust.rpartition('b').map(&:untrusted?) end if untrust
|
|
807
|
+
expect [false, true, false] do 'abc'.u.rpartition('b'.taint).map(&:tainted?) end
|
|
808
|
+
expect [false, true, false] do 'abc'.u.rpartition('b'.untrust).map(&:untrusted?) end if untrust
|
|
809
|
+
expect [true, true, true] do 'abc'.u.taint.rpartition('b'.taint).map(&:tainted?) end
|
|
810
|
+
expect [true, true, true] do 'abc'.u.untrust.rpartition('b'.untrust).map(&:untrusted?) end if untrust
|
|
811
|
+
|
|
812
|
+
expect ['crüel'.u, 'wörld'.u] do 'crüel wörld'.u.scan(word_regex) end
|
|
813
|
+
expect ['crü'.u, 'el '.u, 'wör'.u] do 'crüel wörld'.u.scan(/.../u) end
|
|
814
|
+
expect [['crü'.u], ['el '.u], ['wör'.u]] do 'crüel wörld'.u.scan(/(...)/u) end
|
|
815
|
+
expect ['crüel'.u, 'wörld'.u] do 'crüel wörld'.u.to_enum(:scan, word_regex).to_a end
|
|
816
|
+
expect ['crü'.u, 'el '.u, 'wör'.u] do 'crüel wörld'.u.to_enum(:scan, /.../u).to_a end
|
|
817
|
+
expect [['crü'.u], ['el '.u], ['wör'.u]] do 'crüel wörld'.u.to_enum(:scan, /(...)/u).to_a end
|
|
818
|
+
expect [''.u, ''.u, ''.u, ''.u, ''.u, ''.u, ''.u, ''.u, ''.u, ''.u, ''.u, ''.u] do 'crüel wörld'.u.scan(//u) end
|
|
819
|
+
expect [true, true] do 'crüel wörld'.u.taint.scan(word_regex).map(&:tainted?) end
|
|
820
|
+
expect [true, true] do 'crüel wörld'.u.untrust.scan(word_regex).map(&:untrusted?) end if untrust
|
|
821
|
+
expect [true, true] do 'crüel wörld'.u.scan(word_regex.dup.taint).map(&:tainted?) end
|
|
822
|
+
expect [true, true] do 'crüel wörld'.u.scan(word_regex.dup.untrust).map(&:untrusted?) end if untrust
|
|
823
|
+
expect [true] do 'crüel wörld'.u.taint.scan(' ').map(&:tainted?) end
|
|
824
|
+
expect [true] do 'crüel wörld'.u.untrust.scan(' ').map(&:untrusted?) end if untrust
|
|
825
|
+
expect [false] do 'crüel wörld'.u.scan(' '.taint).map(&:tainted?) end
|
|
826
|
+
expect [false] do 'crüel wörld'.u.scan(' '.untrust).map(&:untrusted?) end if untrust
|
|
827
|
+
expect [] do ''.u.split(''.u, 1) end
|
|
828
|
+
expect ['abc'.u] do 'abc'.u.split(''.u, 1) end
|
|
829
|
+
expect [true, true] do 'abc'.u.taint.split(/b/).map(&:tainted?) end
|
|
830
|
+
expect [true, true] do 'abc'.u.untrust.split(/b/).map(&:untrusted?) end if untrust
|
|
831
|
+
expect [false, false] do 'abc'.u.split(/b/.taint).map(&:tainted?) end
|
|
832
|
+
expect [false, false] do 'abc'.u.split(/b/.untrust).map(&:untrusted?) end if untrust
|
|
833
|
+
expect [true, true] do 'abc'.u.taint.split('b').map(&:tainted?) end
|
|
834
|
+
expect [true, true] do 'abc'.u.untrust.split('b').map(&:untrusted?) end if untrust
|
|
835
|
+
expect [false, false] do 'abc'.u.split('b'.taint).map(&:tainted?) end
|
|
836
|
+
expect [false, false] do 'abc'.u.split('b'.untrust).map(&:untrusted?) end if untrust
|
|
837
|
+
expect [' ä '.u, ' b '.u, ' c '.u] do ' ä | b | c '.u.split('|'.u) end
|
|
838
|
+
expect ['ä|b|c'.u] do 'ä|b|c'.u.split('|'.u, 1) end
|
|
839
|
+
expect ['ä'.u, 'b|c'.u] do 'ä|b|c'.u.split('|'.u, 2) end
|
|
840
|
+
expect ['ä'.u, 'b'.u, 'c'.u] do 'ä|b|c'.u.split('|'.u, 3) end
|
|
841
|
+
expect ['ä'.u, 'b'.u, 'c'.u, ''.u] do 'ä|b|c|'.u.split('|'.u, -1) end
|
|
842
|
+
expect ['ä'.u, 'b'.u, 'c'.u, ''.u, ''.u] do 'ä|b|c||'.u.split('|'.u, -1) end
|
|
843
|
+
expect ['ä'.u, ''.u, 'b'.u, 'c'.u] do 'ä||b|c|'.u.split('|'.u) end
|
|
844
|
+
expect ['ä'.u, ''.u, 'b'.u, 'c'.u, ''.u] do 'ä||b|c|'.u.split('|'.u, -1) end
|
|
845
|
+
expect [] do with_global(:$;, nil){ ' '.u.split } end
|
|
846
|
+
expect [''.u] do with_global(:$;, nil){ ' '.u.split(nil, -1) } end
|
|
847
|
+
expect ['ä'.u, 'b c'.u] do with_global(:$;, nil){ 'ä b c'.u.split(nil, 2) } end
|
|
848
|
+
expect ['ä'.u, 'b'.u, 'c'.u] do with_global(:$;, nil){ " ä b\t c ".u.split } end
|
|
849
|
+
expect ['ä'.u, "b\t c ".u] do with_global(:$;, nil){ " ä b\t c ".u.split(nil, 2) } end
|
|
850
|
+
expect ['ä'.u, 'b'.u, 'c'.u] do with_global(:$;, nil){ " ä b\t c".split } end
|
|
851
|
+
expect ['ä'.u, 'b'.u, 'c'.u] do with_global(:$;, nil){ " ä b\t c".u.split(' ') } end
|
|
852
|
+
expect [] do ''.split(//u, 1) end
|
|
853
|
+
expect ['ä'.u, 'b'.u, 'c'.u] do 'äXXbXXcXX'.u.split(/X./u) end
|
|
854
|
+
expect ['ä'.u, 'b'.u, 'c'.u] do 'äbc'.u.split(//u) end
|
|
855
|
+
expect ['b'.u, 'c'.u] do 'bäc'.u.split(/ä?/u) end
|
|
856
|
+
|
|
857
|
+
expect 'bbc'.u do 'abc'.u.gsub('a', 'b') end
|
|
858
|
+
expect 'h*ll*'.u do 'hello'.u.gsub(/[aeiou]/u, '*'.u) end
|
|
859
|
+
expect 'h*ll*'.u do 'hëllö'.u.gsub(/[äëïöü]/u, '*'.u) end
|
|
860
|
+
expect 'h<ë>ll<ö>'.u do 'hëllö'.u.gsub(/([äëïöü])/u, '<\\1>'.u) end
|
|
861
|
+
expect 'h<ë>ll<ö>'.u do 'hëllö'.u.gsub(/([ëö])/u, 'ë'.u => '<ë>'.u, 'ö'.u => '<ö>'.u) end
|
|
862
|
+
expect 'h ë l l ö '.u do 'hëllö'.u.gsub(/./u){ |s| s[0].to_s + ' ' } end
|
|
863
|
+
expect 'HËLL-ö'.u do 'hëllö'.u.gsub(/(hëll)(.)/u){ |s| $1.u.upcase + '-'.u + $2.u } end
|
|
864
|
+
expect ArgumentError do 'hëllö'.gsub end
|
|
865
|
+
expect result.tainted? do 'a'.u.taint.gsub(/a/, 'b') end
|
|
866
|
+
expect result.untrusted? do 'a'.u.untrust.gsub(/a/, 'b') end if untrust
|
|
867
|
+
expect result.not.tainted? do 'a'.u.gsub(/a/.taint, 'b') end
|
|
868
|
+
expect result.not.untrusted? do 'a'.u.gsub(/a/.untrust, 'b') end if untrust
|
|
869
|
+
expect result.tainted? do 'a'.u.gsub(/a/, 'b'.taint) end
|
|
870
|
+
expect result.untrusted? do 'a'.u.gsub(/a/, 'b'.untrust) end if untrust
|
|
871
|
+
expect result.tainted? do 'a'.u.gsub(/a/, {'a'.u => 'b'}.taint) end
|
|
872
|
+
expect result.not.untrusted? do 'a'.u.gsub(/a/, {'a'.u => 'b'}.untrust) end if untrust
|
|
873
|
+
expect result.tainted? do 'a'.u.gsub(/a/, {'a'.u => 'b'.taint}) end
|
|
874
|
+
expect result.untrusted? do 'a'.u.gsub(/a/, {'a'.u => 'b'.untrust}) end if untrust
|
|
875
|
+
expect result.tainted? do 'a'.u.gsub(/a/, Hash.new{ 'b'.taint }) end
|
|
876
|
+
expect result.untrusted? do 'a'.u.gsub(/a/, Hash.new{ 'b'.untrust }) end if untrust
|
|
877
|
+
expect result.tainted? do 'a'.u.gsub(/a/){ 'b'.taint } end
|
|
878
|
+
expect result.untrusted? do 'a'.u.gsub(/a/){ 'b'.untrust } end if untrust
|
|
879
|
+
|
|
880
|
+
expect 'bbc'.u do 'abc'.u.sub('a', 'b') end
|
|
881
|
+
expect 'h*llo'.u do 'hello'.u.sub(/[aeiou]/u, '*'.u) end
|
|
882
|
+
expect 'h*llö'.u do 'hëllö'.u.sub(/[äëïöü]/u, '*'.u) end
|
|
883
|
+
expect 'h<ë>llö'.u do 'hëllö'.u.sub(/([äëïöü])/u, '<\\1>'.u) end
|
|
884
|
+
expect 'h<ë>llö'.u do 'hëllö'.u.sub(/([ëö])/u, 'ë'.u => '<ë>'.u, 'ö'.u => '<ö>'.u) end
|
|
885
|
+
expect 'h ëllö'.u do 'hëllö'.u.sub(/./u){ |s| s[0].to_s + ' ' } end
|
|
886
|
+
expect 'HËLL-ö'.u do 'hëllö'.u.sub(/(hëll)(.)/u){ |s| $1.u.upcase + '-'.u + $2.u } end
|
|
887
|
+
expect ArgumentError do 'hëllö'.sub end
|
|
888
|
+
expect result.tainted? do 'a'.u.taint.sub(/a/, 'b') end
|
|
889
|
+
expect result.untrusted? do 'a'.u.untrust.sub(/a/, 'b') end if untrust
|
|
890
|
+
expect result.not.tainted? do 'a'.u.sub(/a/.taint, 'b') end
|
|
891
|
+
expect result.not.untrusted? do 'a'.u.sub(/a/.untrust, 'b') end if untrust
|
|
892
|
+
expect result.tainted? do 'a'.u.sub(/a/, 'b'.taint) end
|
|
893
|
+
expect result.untrusted? do 'a'.u.sub(/a/, 'b'.untrust) end if untrust
|
|
894
|
+
expect result.tainted? do 'a'.u.sub(/a/, {'a'.u => 'b'}.taint) end
|
|
895
|
+
expect result.untrusted? do 'a'.u.sub(/a/, {'a'.u => 'b'}.untrust) end if untrust
|
|
896
|
+
expect result.tainted? do 'a'.u.sub(/a/, {'a'.u => 'b'.taint}) end
|
|
897
|
+
expect result.untrusted? do 'a'.u.sub(/a/, {'a'.u => 'b'.untrust}) end if untrust
|
|
898
|
+
expect result.tainted? do 'a'.u.sub(/a/, Hash.new{ 'b'.taint }) end
|
|
899
|
+
expect result.untrusted? do 'a'.u.sub(/a/, Hash.new{ 'b'.untrust }) end if untrust
|
|
900
|
+
expect result.tainted? do 'a'.u.sub(/a/){ 'b'.taint } end
|
|
901
|
+
expect result.untrusted? do 'a'.u.sub(/a/){ 'b'.untrust } end if untrust
|
|
902
|
+
|
|
903
|
+
expect 'hëll'.u do 'hëll'.u + ''.u end
|
|
904
|
+
expect 'ö'.u do ''.u + 'ö'.u end
|
|
905
|
+
expect 'hëllö'.u do 'hëll'.u + 'ö'.u end
|
|
906
|
+
expect result.tainted? do ''.u.taint + ''.u end
|
|
907
|
+
expect result.tainted? do ''.u + ''.u.taint end
|
|
908
|
+
expect result.not.untrusted? do ''.u.untrust + ''.u end if untrust
|
|
909
|
+
expect result.not.untrusted? do ''.u + ''.u.untrust end if untrust
|
|
910
|
+
|
|
911
|
+
expect ArgumentError do '*'.u * -1 end
|
|
912
|
+
expect ''.u do ''.u * 10 end
|
|
913
|
+
expect '**********'.u do '*'.u * 10 end
|
|
914
|
+
# TODO Test LONG_MAX.
|
|
915
|
+
expect result.tainted? do ''.u.taint * 10 end
|
|
916
|
+
expect result.untrusted? do ''.u.untrust * 10 end if untrust
|
|
917
|
+
|
|
918
|
+
expect 'äbc'.u do 'äbc'.u % [] end
|
|
919
|
+
|
|
920
|
+
expect ArgumentError.new('invalid flag ‘ ’ given to directive ‘%’') do '% %'.u % [] end
|
|
921
|
+
expect ArgumentError.new('invalid flags “ #” given to directive ‘%’') do '% #%'.u % [] end
|
|
922
|
+
expect ArgumentError.new('invalid flags “ #+-0” given to directive ‘%’') do '% #+-0%'.u % [] end
|
|
923
|
+
expect ArgumentError.new('directive does not take an argument: %') do '%1$%'.u % [1] end
|
|
924
|
+
expect '%'.u do '%%'.u % [] end
|
|
925
|
+
expect 'ä%c'.u do 'ä%%c'.u % [] end
|
|
926
|
+
|
|
927
|
+
expect "%\nb".u do "%\nb".u % [] end
|
|
928
|
+
expect "%\0b".u do "%\0b".u % [] end
|
|
929
|
+
expect "%\0%".u do "%\0%".u % [] end
|
|
930
|
+
expect ArgumentError.new('directive does not allow specifying a width: %') do "%12\nb".u % [] end
|
|
931
|
+
expect 'b%'.u do "b%".u % [] end
|
|
932
|
+
expect ArgumentError.new('directive missing after absolute argument number') do "b%12".u % [] end
|
|
933
|
+
expect ArgumentError.new('directive missing after flags') do "b%#".u % [] end
|
|
934
|
+
expect ArgumentError.new('directive missing after absolute argument number') do "b%1$".u % [] end
|
|
935
|
+
expect ArgumentError.new('directive missing after argument name') do "b%<a>".u % [] end
|
|
936
|
+
|
|
937
|
+
expect ArgumentError.new('invalid flag ‘ ’ given to directive ‘c’') do '% c'.u % 0x00e4 end
|
|
938
|
+
expect ArgumentError.new('directive does not allow specifying a precision: c') do '%.1c'.u % [0x00e4] end
|
|
939
|
+
expect ArgumentError.new('wrong number of arguments (0 for at least 1)') do '%cbc'.u % [] end
|
|
940
|
+
expect 'äbc'.u do '%cbc'.u % 0x00e4 end
|
|
941
|
+
expect ' äbc'.u do '%2cbc'.u % 0x00e4 end
|
|
942
|
+
expect 'ä bc'.u do '%-2cbc'.u % 0x00e4 end
|
|
943
|
+
expect ArgumentError.new('wrong number of arguments (1 for at least 2)') do '%*cbc'.u % 0x00e4 end
|
|
944
|
+
expect ' äbc'.u do '%*cbc'.u % [2, 0x00e4] end
|
|
945
|
+
expect ArgumentError.new('cannot use positional argument numbers after absolute argument numbers') do '%*1$cbc'.u % [2, 0x00e4] end
|
|
946
|
+
expect ' äbc'.u do '%2$*1$cbc'.u % [2, 0x00e4] end
|
|
947
|
+
expect 'äbc'.u do '%<a>cbc'.u % { :a => 0x00e4 } end
|
|
948
|
+
expect ' äbc'.u do '%<a>2cbc'.u % { :a => 0x00e4 } end
|
|
949
|
+
expect 'あ'.u do '%c'.u % 0x3042 end
|
|
950
|
+
expect 'あ'.u do '%2c'.u % 0x3042 end
|
|
951
|
+
expect ' あ'.u do '%3c'.u % 0x3042 end
|
|
952
|
+
expect ' '.u do '%3c'.u % 0x200b end
|
|
953
|
+
expect ArgumentError.new('%c requires a character') do '%c'.u % "" end
|
|
954
|
+
expect 'ä'.u do '%c'.u % "ä" end
|
|
955
|
+
expect 'ä'.u do '%c'.u % "äbc" end
|
|
956
|
+
expect ArgumentError.new('cannot use absolute argument number 1: relative argument number already used') do '%c%1$c'.u % [0x00e4] end
|
|
957
|
+
expect ArgumentError.new('cannot use absolute argument number 1: named argument already used') do '%<a>c%1$c'.u % { :a => 0x00e4 } end
|
|
958
|
+
expect ArgumentError.new('absolute argument number beyond end of argument list: 1 > 0') do '%1$%'.u % [] end
|
|
959
|
+
expect ArgumentError.new('cannot use named argument “a”: relative argument number already used') do '%c%<a>c'.u % [0x00e4] end
|
|
960
|
+
expect ArgumentError.new('cannot use named argument “a”: absolute argument number already used') do '%1$c%<a>c'.u % [0x00e4] end
|
|
961
|
+
expect ArgumentError.new('one Hash argument required when using named arguments in format') do '%<a>cbc'.u % 0x00e4 end
|
|
962
|
+
expect((defined?(KeyError) ? KeyError : ArgumentError).new('named argument not found: a')){ '%<a>cbc'.u % { :b => 0x00e4 } }
|
|
963
|
+
expect ArgumentError.new('cannot use positional argument numbers after absolute argument numbers') do '%1$c%c'.u % [0x00e4] end
|
|
964
|
+
expect ArgumentError.new('cannot use positional argument numbers after named arguments') do '%<a>c%c'.u % { :a => 0x00e4 } end
|
|
965
|
+
expect ArgumentError.new('wrong number of arguments (0 for at least 1)') do '%c'.u % [] end
|
|
966
|
+
|
|
967
|
+
# TODO Add flag checks?
|
|
968
|
+
expect 'äbc'.u do '%sc'.u % ['äb'.u] end
|
|
969
|
+
expect 'äc'.u do '%.1sc'.u % ['äb'.u] end
|
|
970
|
+
expect ' äbc'.u do '%3sc'.u % ['äb'.u] end
|
|
971
|
+
expect 'äb c'.u do '%-3sc'.u % ['äb'.u] end
|
|
972
|
+
expect ' äc'.u do '%3.1sc'.u % ['äb'.u] end
|
|
973
|
+
expect 'ä c'.u do '%-3.1sc'.u % ['äb'.u] end
|
|
974
|
+
expect 'äbc'.u do '%{a}c'.u % { :a => 'äb'.u } end
|
|
975
|
+
expect 'äb3.3c'.u do '%{a}3.3c'.u % { :a => 'äb'.u } end
|
|
976
|
+
expect 'あ'.u do '%.1s'.u % ['あbc'.u] end
|
|
977
|
+
expect 'あ'.u do '%.2s'.u % ['あbc'.u] end
|
|
978
|
+
expect 'あb'.u do '%.3s'.u % ['あbc'.u] end
|
|
979
|
+
expect 'あbc'.u do '%.4s'.u % ['あbc'.u] end
|
|
980
|
+
expect ' あbc'.u do '%5s'.u % ['あbc'.u] end
|
|
981
|
+
|
|
982
|
+
# TODO Add flag checks?
|
|
983
|
+
expect '"äbc".u'.u do '%p'.u % ['äbc'.u] end
|
|
984
|
+
|
|
985
|
+
expect '123'.u do '%d'.u % 123 end
|
|
986
|
+
expect '123'.u do '%d'.u % 123.to_f end
|
|
987
|
+
expect '123'.u do '%d'.u % '123' end
|
|
988
|
+
expect '123'.u do '%d'.u % '123'.u end
|
|
989
|
+
expect '123'.u do '%d'.u % [stub(:to_int => 123)] end
|
|
990
|
+
expect ArgumentError do '%d'.u % '123.0' end
|
|
991
|
+
expect ArgumentError do '%d'.u % '123.0'.u end
|
|
992
|
+
|
|
993
|
+
expect ' 123'.u do '% d'.u % 123 end
|
|
994
|
+
expect '+123'.u do '%+d'.u % 123 end
|
|
995
|
+
expect '-123'.u do '%d'.u % -123 end
|
|
996
|
+
|
|
997
|
+
expect ' 123'.u do '%6d'.u % 123 end
|
|
998
|
+
expect ' 123'.u do '% 6d'.u % 123 end
|
|
999
|
+
expect ' +123'.u do '%+6d'.u % 123 end
|
|
1000
|
+
expect ' -123'.u do '%6d'.u % -123 end
|
|
1001
|
+
|
|
1002
|
+
expect '000123'.u do '%06d'.u % 123 end
|
|
1003
|
+
expect ' 00123'.u do '% 06d'.u % 123 end
|
|
1004
|
+
expect '+00123'.u do '%+06d'.u % 123 end
|
|
1005
|
+
expect '-00123'.u do '%06d'.u % -123 end
|
|
1006
|
+
|
|
1007
|
+
expect '123 '.u do '%-6d'.u % 123 end
|
|
1008
|
+
expect ' 123 '.u do '%- 6d'.u % 123 end
|
|
1009
|
+
expect '+123 '.u do '%-+6d'.u % 123 end
|
|
1010
|
+
expect '-123 '.u do '%-6d'.u % -123 end
|
|
1011
|
+
|
|
1012
|
+
expect '123 '.u do with_verbose(nil){ '%-06d'.u % 123 } end
|
|
1013
|
+
|
|
1014
|
+
expect '000123'.u do '%.6d'.u % 123 end
|
|
1015
|
+
expect ' 000123'.u do '% .6d'.u % 123 end
|
|
1016
|
+
expect '+000123'.u do '%+.6d'.u % 123 end
|
|
1017
|
+
expect '-000123'.u do '%.6d'.u % -123 end
|
|
1018
|
+
|
|
1019
|
+
expect ' 000123'.u do with_verbose(nil){ '%09.6d'.u % 123 } end
|
|
1020
|
+
expect ' 000123'.u do '%9.6d'.u % 123 end
|
|
1021
|
+
expect ' 000123'.u do '% 9.6d'.u % 123 end
|
|
1022
|
+
expect ' +000123'.u do '%+9.6d'.u % 123 end
|
|
1023
|
+
expect ' -000123'.u do '%9.6d'.u % -123 end
|
|
1024
|
+
|
|
1025
|
+
expect '000123 '.u do '%-9.6d'.u % 123 end
|
|
1026
|
+
expect ' 000123 '.u do '%- 9.6d'.u % 123 end
|
|
1027
|
+
expect '+000123 '.u do '%-+9.6d'.u % 123 end
|
|
1028
|
+
expect '-000123 '.u do '%-9.6d'.u % -123 end
|
|
1029
|
+
|
|
1030
|
+
# TODO Need a lot more tests for Bignum code-paths.
|
|
1031
|
+
expect Bignum do 12345678901234567890 end
|
|
1032
|
+
expect '12345678901234567890'.u do '%d'.u % 12345678901234567890 end
|
|
1033
|
+
|
|
1034
|
+
expect '173'.u do '%o'.u % 123 end
|
|
1035
|
+
|
|
1036
|
+
expect ' 173'.u do '% o'.u % 123 end
|
|
1037
|
+
expect '+173'.u do '%+o'.u % 123 end
|
|
1038
|
+
expect '-173'.u do '%+o'.u % -123 end
|
|
1039
|
+
|
|
1040
|
+
expect ' 173'.u do '%6o'.u % 123 end
|
|
1041
|
+
expect ' 173'.u do '% 6o'.u % 123 end
|
|
1042
|
+
expect ' +173'.u do '%+6o'.u % 123 end
|
|
1043
|
+
expect ' -173'.u do '%+6o'.u % -123 end
|
|
1044
|
+
|
|
1045
|
+
expect '000173'.u do '%06o'.u % 123 end
|
|
1046
|
+
expect ' 00173'.u do '% 06o'.u % 123 end
|
|
1047
|
+
expect '+00173'.u do '%+06o'.u % 123 end
|
|
1048
|
+
expect '-00173'.u do '%+06o'.u % -123 end
|
|
1049
|
+
|
|
1050
|
+
expect '173 '.u do '%-6o'.u % 123 end
|
|
1051
|
+
expect ' 173 '.u do '%- 6o'.u % 123 end
|
|
1052
|
+
expect '+173 '.u do '%-+6o'.u % 123 end
|
|
1053
|
+
expect '-173 '.u do '%-+6o'.u % -123 end
|
|
1054
|
+
|
|
1055
|
+
expect '000173'.u do '%.6o'.u % 123 end
|
|
1056
|
+
expect ' 000173'.u do '% .6o'.u % 123 end
|
|
1057
|
+
expect '+000173'.u do '%+.6o'.u % 123 end
|
|
1058
|
+
expect '-000173'.u do '%+.6o'.u % -123 end
|
|
1059
|
+
|
|
1060
|
+
expect ' 000173'.u do '%9.6o'.u % 123 end
|
|
1061
|
+
expect ' 000173'.u do '% 9.6o'.u % 123 end
|
|
1062
|
+
expect ' +000173'.u do '%+9.6o'.u % 123 end
|
|
1063
|
+
expect ' -000173'.u do '%+9.6o'.u % -123 end
|
|
1064
|
+
|
|
1065
|
+
expect '+173'.u do with_verbose(nil){ '%+ o'.u % 123 } end
|
|
1066
|
+
expect warning('‘o’ directive ignores ‘ ’ flag when ‘+’ flag has been specified') do '%+ o'.u % 123 end
|
|
1067
|
+
expect '-173'.u do with_verbose(nil){ '%+ o'.u % -123 } end
|
|
1068
|
+
expect '0173'.u do '%#o'.u % 123 end
|
|
1069
|
+
expect '..7605'.u do '%o'.u % -123 end
|
|
1070
|
+
expect '..7605'.u do with_verbose(nil){ '%#o'.u % -123 } end
|
|
1071
|
+
expect warning('‘o’ directive ignores ‘#’ flag when given a negative argument') do '%#o'.u % -123 end
|
|
1072
|
+
|
|
1073
|
+
expect ' ..7777605'.u do '%12.9o'.u % -123 end
|
|
1074
|
+
expect ' 000000173'.u do '%#12.9o'.u % 123 end
|
|
1075
|
+
expect ' ..7777605'.u do with_verbose(nil){ '%#12.9o'.u % -123 } end
|
|
1076
|
+
|
|
1077
|
+
expect '0' do '%o'.u % 0 end
|
|
1078
|
+
expect '0' do '%#o'.u % 0 end
|
|
1079
|
+
expect ' 0' do '%3o'.u % 0 end
|
|
1080
|
+
expect ' 0' do '%#3o'.u % 0 end
|
|
1081
|
+
expect '000' do '%03o'.u % 0 end
|
|
1082
|
+
expect '000' do '%#03o'.u % 0 end
|
|
1083
|
+
expect ' 0' do '%6o'.u % 0 end
|
|
1084
|
+
expect ' 0' do '%#6o'.u % 0 end
|
|
1085
|
+
expect ' 000' do '%6.3o'.u % 0 end
|
|
1086
|
+
expect ' 000' do '%#6.3o'.u % 0 end
|
|
1087
|
+
expect ' 000' do with_verbose(nil){ '%06.3o'.u % 0 } end
|
|
1088
|
+
expect ' 000' do with_verbose(nil){ '%#06.3o'.u % 0 } end
|
|
1089
|
+
|
|
1090
|
+
# TODO Need a lot more Bignum tests.
|
|
1091
|
+
expect Bignum do 01255245230635307605322 end
|
|
1092
|
+
expect '1255245230635307605322'.u do '%o'.u % 01255245230635307605322 end
|
|
1093
|
+
|
|
1094
|
+
expect '10e'.u do '%x'.u % 0x10e end
|
|
1095
|
+
|
|
1096
|
+
expect '0x10e'.u do '%#x'.u % 0x10e end
|
|
1097
|
+
|
|
1098
|
+
expect '0'.u do '%#x'.u % 0x0 end
|
|
1099
|
+
|
|
1100
|
+
expect ' 10e'.u do '% x'.u % +0x10e end
|
|
1101
|
+
expect '+10e'.u do '%+x'.u % +0x10e end
|
|
1102
|
+
expect '-10e'.u do '%+x'.u % -0x10e end
|
|
1103
|
+
|
|
1104
|
+
expect ' 0x10e'.u do '%# x'.u % +0x10e end
|
|
1105
|
+
expect '+0x10e'.u do '%#+x'.u % +0x10e end
|
|
1106
|
+
expect '-0x10e'.u do '%#+x'.u % -0x10e end
|
|
1107
|
+
|
|
1108
|
+
expect ' 10e'.u do '%6x'.u % 0x10e end
|
|
1109
|
+
expect ' 10e'.u do '% 6x'.u % 0x10e end
|
|
1110
|
+
expect ' +10e'.u do '%+6x'.u % 0x10e end
|
|
1111
|
+
expect ' -10e'.u do '%+6x'.u % -0x10e end
|
|
1112
|
+
|
|
1113
|
+
expect ' 0x10e'.u do '%#6x'.u % 0x10e end
|
|
1114
|
+
expect ' 0x10e'.u do '%# 6x'.u % 0x10e end
|
|
1115
|
+
expect '+0x10e'.u do '%#+6x'.u % 0x10e end
|
|
1116
|
+
expect '-0x10e'.u do '%#+6x'.u % -0x10e end
|
|
1117
|
+
|
|
1118
|
+
expect '00010e'.u do '%06x'.u % 0x10e end
|
|
1119
|
+
expect ' 0010e'.u do '% 06x'.u % 0x10e end
|
|
1120
|
+
expect '+0010e'.u do '%+06x'.u % 0x10e end
|
|
1121
|
+
expect '-0010e'.u do '%+06x'.u % -0x10e end
|
|
1122
|
+
|
|
1123
|
+
expect '0x010e'.u do '%#06x'.u % 0x10e end
|
|
1124
|
+
expect ' 0x10e'.u do '%# 06x'.u % 0x10e end
|
|
1125
|
+
expect '+0x10e'.u do '%#+06x'.u % 0x10e end
|
|
1126
|
+
expect '-0x10e'.u do '%#+06x'.u % -0x10e end
|
|
1127
|
+
|
|
1128
|
+
expect '10e '.u do '%-6x'.u % 0x10e end
|
|
1129
|
+
expect ' 10e '.u do '%- 6x'.u % 0x10e end
|
|
1130
|
+
expect '+10e '.u do '%-+6x'.u % 0x10e end
|
|
1131
|
+
expect '-10e '.u do '%-+6x'.u % -0x10e end
|
|
1132
|
+
|
|
1133
|
+
expect '0x10e '.u do '%#-6x'.u % 0x10e end
|
|
1134
|
+
expect ' 0x10e'.u do '%#- 6x'.u % 0x10e end
|
|
1135
|
+
expect '+0x10e'.u do '%#-+6x'.u % 0x10e end
|
|
1136
|
+
expect '-0x10e'.u do '%#-+6x'.u % -0x10e end
|
|
1137
|
+
|
|
1138
|
+
expect '00010e'.u do '%.6x'.u % 0x10e end
|
|
1139
|
+
expect ' 00010e'.u do '% .6x'.u % 0x10e end
|
|
1140
|
+
expect '+00010e'.u do '%+.6x'.u % 0x10e end
|
|
1141
|
+
expect '-00010e'.u do '%+.6x'.u % -0x10e end
|
|
1142
|
+
|
|
1143
|
+
expect '0x00010e'.u do '%#.6x'.u % 0x10e end
|
|
1144
|
+
expect ' 0x00010e'.u do '%# .6x'.u % 0x10e end
|
|
1145
|
+
expect '+0x00010e'.u do '%#+.6x'.u % 0x10e end
|
|
1146
|
+
expect '-0x00010e'.u do '%#+.6x'.u % -0x10e end
|
|
1147
|
+
|
|
1148
|
+
expect ' 00010e'.u do '%9.6x'.u % 0x10e end
|
|
1149
|
+
expect ' 00010e'.u do '% 9.6x'.u % 0x10e end
|
|
1150
|
+
expect ' +00010e'.u do '%+9.6x'.u % 0x10e end
|
|
1151
|
+
expect ' -00010e'.u do '%+9.6x'.u % -0x10e end
|
|
1152
|
+
|
|
1153
|
+
expect ' 0x00010e'.u do '%#9.6x'.u % 0x10e end
|
|
1154
|
+
expect ' 0x00010e'.u do '%# 9.6x'.u % 0x10e end
|
|
1155
|
+
expect '+0x00010e'.u do '%#+9.6x'.u % 0x10e end
|
|
1156
|
+
expect '-0x00010e'.u do '%#+9.6x'.u % -0x10e end
|
|
1157
|
+
|
|
1158
|
+
expect '+10e'.u do with_verbose(nil){ '%+ x'.u % 0x10e } end
|
|
1159
|
+
expect warning('‘x’ directive ignores ‘ ’ flag when ‘+’ flag has been specified') do '%+ x'.u % 0x10e end
|
|
1160
|
+
expect '-10e'.u do with_verbose(nil){ '%+ x'.u % -0x10e } end
|
|
1161
|
+
expect '..fef2'.u do '%x'.u % -0x10e end
|
|
1162
|
+
expect '0x..fef2'.u do '%#x'.u % -0x10e end
|
|
1163
|
+
expect ' ..ffffef2'.u do '%12.9x'.u % -0x10e end
|
|
1164
|
+
expect ' 0x00000010e'.u do '%#12.9x'.u % 0x10e end
|
|
1165
|
+
expect ' 0x..ffffef2'.u do '%#12.9x'.u % -0x10e end
|
|
1166
|
+
|
|
1167
|
+
expect '10E'.u do '%X'.u % 0x10e end
|
|
1168
|
+
expect '0X10E'.u do '%#X'.u % 0x10e end
|
|
1169
|
+
expect '-10E'.u do '%+X'.u % -0x10e end
|
|
1170
|
+
expect '-0X10E'.u do '%#+X'.u % -0x10e end
|
|
1171
|
+
expect '..FEF2'.u do '%-X'.u % -0x10e end
|
|
1172
|
+
expect '0X..FEF2'.u do '%#-X'.u % -0x10e end
|
|
1173
|
+
|
|
1174
|
+
expect '101'.u do '%b'.u % 0b101 end
|
|
1175
|
+
|
|
1176
|
+
expect '0b101'.u do '%#b'.u % 0b101 end
|
|
1177
|
+
|
|
1178
|
+
expect '0'.u do '%#b'.u % 0b0 end
|
|
1179
|
+
|
|
1180
|
+
expect ' 101'.u do '% b'.u % +0b101 end
|
|
1181
|
+
expect '+101'.u do '%+b'.u % +0b101 end
|
|
1182
|
+
expect '-101'.u do '%+b'.u % -0b101 end
|
|
1183
|
+
|
|
1184
|
+
expect ' 0b101'.u do '%# b'.u % +0b101 end
|
|
1185
|
+
expect '+0b101'.u do '%#+b'.u % +0b101 end
|
|
1186
|
+
expect '-0b101'.u do '%#+b'.u % -0b101 end
|
|
1187
|
+
|
|
1188
|
+
expect ' 101'.u do '%6b'.u % 0b101 end
|
|
1189
|
+
expect ' 101'.u do '% 6b'.u % 0b101 end
|
|
1190
|
+
expect ' +101'.u do '%+6b'.u % 0b101 end
|
|
1191
|
+
expect ' -101'.u do '%+6b'.u % -0b101 end
|
|
1192
|
+
|
|
1193
|
+
expect ' 0b101'.u do '%#6b'.u % 0b101 end
|
|
1194
|
+
expect ' 0b101'.u do '%# 6b'.u % 0b101 end
|
|
1195
|
+
expect '+0b101'.u do '%#+6b'.u % 0b101 end
|
|
1196
|
+
expect '-0b101'.u do '%#+6b'.u % -0b101 end
|
|
1197
|
+
|
|
1198
|
+
expect '000101'.u do '%06b'.u % 0b101 end
|
|
1199
|
+
expect ' 00101'.u do '% 06b'.u % 0b101 end
|
|
1200
|
+
expect '+00101'.u do '%+06b'.u % 0b101 end
|
|
1201
|
+
expect '-00101'.u do '%+06b'.u % -0b101 end
|
|
1202
|
+
|
|
1203
|
+
expect '0b0101'.u do '%#06b'.u % 0b101 end
|
|
1204
|
+
expect ' 0b101'.u do '%# 06b'.u % 0b101 end
|
|
1205
|
+
expect '+0b101'.u do '%#+06b'.u % 0b101 end
|
|
1206
|
+
expect '-0b101'.u do '%#+06b'.u % -0b101 end
|
|
1207
|
+
|
|
1208
|
+
expect '101 '.u do '%-6b'.u % 0b101 end
|
|
1209
|
+
expect ' 101 '.u do '%- 6b'.u % 0b101 end
|
|
1210
|
+
expect '+101 '.u do '%-+6b'.u % 0b101 end
|
|
1211
|
+
expect '-101 '.u do '%-+6b'.u % -0b101 end
|
|
1212
|
+
|
|
1213
|
+
expect '0b101 '.u do '%#-6b'.u % 0b101 end
|
|
1214
|
+
expect ' 0b101'.u do '%#- 6b'.u % 0b101 end
|
|
1215
|
+
expect '+0b101'.u do '%#-+6b'.u % 0b101 end
|
|
1216
|
+
expect '-0b101'.u do '%#-+6b'.u % -0b101 end
|
|
1217
|
+
|
|
1218
|
+
expect '000101'.u do '%.6b'.u % 0b101 end
|
|
1219
|
+
expect ' 000101'.u do '% .6b'.u % 0b101 end
|
|
1220
|
+
expect '+000101'.u do '%+.6b'.u % 0b101 end
|
|
1221
|
+
expect '-000101'.u do '%+.6b'.u % -0b101 end
|
|
1222
|
+
|
|
1223
|
+
expect '0b000101'.u do '%#.6b'.u % 0b101 end
|
|
1224
|
+
expect ' 0b000101'.u do '%# .6b'.u % 0b101 end
|
|
1225
|
+
expect '+0b000101'.u do '%#+.6b'.u % 0b101 end
|
|
1226
|
+
expect '-0b000101'.u do '%#+.6b'.u % -0b101 end
|
|
1227
|
+
|
|
1228
|
+
expect ' 000101'.u do '%9.6b'.u % 0b101 end
|
|
1229
|
+
expect ' 000101'.u do '% 9.6b'.u % 0b101 end
|
|
1230
|
+
expect ' +000101'.u do '%+9.6b'.u % 0b101 end
|
|
1231
|
+
expect ' -000101'.u do '%+9.6b'.u % -0b101 end
|
|
1232
|
+
|
|
1233
|
+
expect ' 0b000101'.u do '%#9.6b'.u % 0b101 end
|
|
1234
|
+
expect ' 0b000101'.u do '%# 9.6b'.u % 0b101 end
|
|
1235
|
+
expect '+0b000101'.u do '%#+9.6b'.u % 0b101 end
|
|
1236
|
+
expect '-0b000101'.u do '%#+9.6b'.u % -0b101 end
|
|
1237
|
+
|
|
1238
|
+
expect '+101'.u do with_verbose(nil){ '%+ b'.u % 0b101 } end
|
|
1239
|
+
expect warning('‘b’ directive ignores ‘ ’ flag when ‘+’ flag has been specified') do '%+ b'.u % 0b101 end
|
|
1240
|
+
expect '-101'.u do with_verbose(nil){ '%+ b'.u % -0b101 } end
|
|
1241
|
+
expect '..1011'.u do '%b'.u % -0b101 end
|
|
1242
|
+
expect '0b..1011'.u do '%#b'.u % -0b101 end
|
|
1243
|
+
expect ' ..1111011'.u do '%12.9b'.u % -0b101 end
|
|
1244
|
+
expect ' 0b000000101'.u do '%#12.9b'.u % 0b101 end
|
|
1245
|
+
expect ' 0b..1111011'.u do '%#12.9b'.u % -0b101 end
|
|
1246
|
+
|
|
1247
|
+
expect '0B101'.u do '%#B'.u % 0b101 end
|
|
1248
|
+
|
|
1249
|
+
expect 'NaN'.u do '%f'.u % (0.0/0.0) end
|
|
1250
|
+
expect 'NaN'.u do '%-f'.u % (0.0/0.0) end
|
|
1251
|
+
expect '+NaN'.u do '%+f'.u % (0.0/0.0) end
|
|
1252
|
+
expect ' NaN'.u do '% f'.u % (0.0/0.0) end
|
|
1253
|
+
|
|
1254
|
+
expect ' NaN'.u do '%6f'.u % (0.0/0.0) end
|
|
1255
|
+
expect ' +NaN'.u do '%+6f'.u % (0.0/0.0) end
|
|
1256
|
+
expect ' NaN'.u do '% 6f'.u % (0.0/0.0) end
|
|
1257
|
+
expect ' +NaN'.u do with_verbose(nil){ '%+ 6f'.u % (0.0/0.0) } end
|
|
1258
|
+
|
|
1259
|
+
expect ' NaN'.u do '%06f'.u % (0.0/0.0) end
|
|
1260
|
+
expect ' +NaN'.u do '%+06f'.u % (0.0/0.0) end
|
|
1261
|
+
expect ' NaN'.u do '% 06f'.u % (0.0/0.0) end
|
|
1262
|
+
expect ' +NaN'.u do with_verbose(nil){ '%+ 06f'.u % (0.0/0.0) } end
|
|
1263
|
+
|
|
1264
|
+
expect 'NaN '.u do '%-6f'.u % (0.0/0.0) end
|
|
1265
|
+
expect 'NaN '.u do '%-06f'.u % (0.0/0.0) end
|
|
1266
|
+
expect '+NaN '.u do '%-+6f'.u % (0.0/0.0) end
|
|
1267
|
+
expect '+NaN '.u do '%-+06f'.u % (0.0/0.0) end
|
|
1268
|
+
expect ' NaN '.u do '%- 6f'.u % (0.0/0.0) end
|
|
1269
|
+
expect ' NaN '.u do '%- 06f'.u % (0.0/0.0) end
|
|
1270
|
+
|
|
1271
|
+
expect 'Inf'.u do '%f'.u % (1.0/0.0) end
|
|
1272
|
+
expect 'Inf'.u do '%-f'.u % (1.0/0.0) end
|
|
1273
|
+
expect '+Inf'.u do '%+f'.u % (1.0/0.0) end
|
|
1274
|
+
expect '-Inf'.u do '%+f'.u % -(1.0/0.0) end
|
|
1275
|
+
expect ' Inf'.u do '% f'.u % (1.0/0.0) end
|
|
1276
|
+
|
|
1277
|
+
expect ' Inf'.u do '%6f'.u % (1.0/0.0) end
|
|
1278
|
+
expect ' +Inf'.u do '%+6f'.u % (1.0/0.0) end
|
|
1279
|
+
expect ' -Inf'.u do '%+6f'.u % -(1.0/0.0) end
|
|
1280
|
+
expect ' Inf'.u do '% 6f'.u % (1.0/0.0) end
|
|
1281
|
+
expect ' +Inf'.u do with_verbose(nil){ '%+ 6f'.u % (1.0/0.0) } end
|
|
1282
|
+
|
|
1283
|
+
expect ' Inf'.u do '%06f'.u % (1.0/0.0) end
|
|
1284
|
+
expect ' +Inf'.u do '%+06f'.u % (1.0/0.0) end
|
|
1285
|
+
expect ' -Inf'.u do '%+06f'.u % -(1.0/0.0) end
|
|
1286
|
+
expect ' Inf'.u do '% 06f'.u % (1.0/0.0) end
|
|
1287
|
+
expect ' +Inf'.u do with_verbose(nil){ '%+ 06f'.u % (1.0/0.0) } end
|
|
1288
|
+
|
|
1289
|
+
expect 'Inf '.u do '%-6f'.u % (1.0/0.0) end
|
|
1290
|
+
expect 'Inf '.u do '%-06f'.u % (1.0/0.0) end
|
|
1291
|
+
expect '+Inf '.u do '%-+6f'.u % (1.0/0.0) end
|
|
1292
|
+
expect '+Inf '.u do '%-+06f'.u % (1.0/0.0) end
|
|
1293
|
+
expect '-Inf '.u do '%-+6f'.u % -(1.0/0.0) end
|
|
1294
|
+
expect '-Inf '.u do '%-+06f'.u % -(1.0/0.0) end
|
|
1295
|
+
expect ' Inf '.u do '%- 6f'.u % (1.0/0.0) end
|
|
1296
|
+
expect ' Inf '.u do '%- 06f'.u % (1.0/0.0) end
|
|
1297
|
+
|
|
1298
|
+
# TODO Probably sizeof(double)-dependent.
|
|
1299
|
+
expect '179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368'.u do '%.0f'.u % 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368 end
|
|
1300
|
+
|
|
1301
|
+
expect ' -0.'.u do '%#10.0f'.u % -0.5 end
|
|
1302
|
+
|
|
1303
|
+
# NOTE This needs to be fixed.
|
|
1304
|
+
# expect U::String do '%#+-0 .2147483638f'.u % 1 end
|
|
1305
|
+
|
|
1306
|
+
# TODO These two give different results in Ruby 1.8 and Ruby 1.9.
|
|
1307
|
+
# expect '0x2p+1'.u do '%.0a'.u % 3.875 end
|
|
1308
|
+
# expect '-0x2.0p+1'.u do '%.1a'.u % -3.9921875 end
|
|
1309
|
+
expect '0x0p+0'.u do '%a'.u % 0.0 end
|
|
1310
|
+
expect '-0x0p+0'.u do '%a'.u % -0.0 end
|
|
1311
|
+
expect '0x1p+1'.u do '%a'.u % 2.0 end
|
|
1312
|
+
expect '0x1p+0'.u do '%a'.u % 1.0 end
|
|
1313
|
+
expect '0x1p-1'.u do '%a'.u % 0.5 end
|
|
1314
|
+
expect '0x1p+10'.u do '%a'.u % 1024 end
|
|
1315
|
+
# TODO Probably sizeof(double)-dependent.
|
|
1316
|
+
expect '0x1.23456p+789'.u do '%a'.u % 3.704450999893983e+237 end
|
|
1317
|
+
# TODO This is sizeof(double)-dependent.
|
|
1318
|
+
# expect '0x0.0000000000001p-1022'.u do '%a'.u % 4.9e-324 end
|
|
1319
|
+
|
|
1320
|
+
expect ' -0x1p+0'.u do '%10a'.u % -1 end
|
|
1321
|
+
expect ' -0x1.8p+0'.u do '%10a'.u % -1.5 end
|
|
1322
|
+
expect ' -0x1.4p+0'.u do '%10a'.u % -1.25 end
|
|
1323
|
+
expect ' -0x1.2p+0'.u do '%10a'.u % -1.125 end
|
|
1324
|
+
expect ' -0x1.1p+0'.u do '%10a'.u % -1.0625 end
|
|
1325
|
+
expect '-0x1.08p+0'.u do '%10a'.u % -1.03125 end
|
|
1326
|
+
|
|
1327
|
+
expect '-0x0001p+0'.u do '%010a'.u % -1 end
|
|
1328
|
+
expect '-0x01.8p+0'.u do '%010a'.u % -1.5 end
|
|
1329
|
+
expect '-0x01.4p+0'.u do '%010a'.u % -1.25 end
|
|
1330
|
+
expect '-0x01.2p+0'.u do '%010a'.u % -1.125 end
|
|
1331
|
+
expect '-0x01.1p+0'.u do '%010a'.u % -1.0625 end
|
|
1332
|
+
expect '-0x1.08p+0'.u do '%010a'.u % -1.03125 end
|
|
1333
|
+
|
|
1334
|
+
expect '1.000000e+06'.u do '%e' % 1.000000e+06 end
|
|
1335
|
+
expect '1.000000E+06'.u do '%E' % 1.000000E+06 end
|
|
1336
|
+
|
|
1337
|
+
expect '1e+06'.u do '%g' % 1e+06 end
|
|
1338
|
+
expect '1E+06'.u do '%G' % 1E+06 end
|
|
1339
|
+
|
|
1340
|
+
expect result.tainted? do '%s'.u.taint % ['abc'] end
|
|
1341
|
+
expect result.not.untrusted? do '%s'.u.untrust % ['abc'] end if untrust
|
|
1342
|
+
expect result.tainted? do '%s'.u.taint % ['abc'.taint] end
|
|
1343
|
+
expect result.not.untrusted? do '%s'.u.untrust % ['abc'.untrust] end if untrust
|
|
1344
|
+
expect result.not.tainted? do '%c'.u % ['a'.taint] end
|
|
1345
|
+
expect result.not.untrusted? do '%c'.u % ['a'.untrust] end if untrust
|
|
1346
|
+
expect result.tainted? do '%s'.u % ['abc'.taint] end
|
|
1347
|
+
expect result.not.untrusted? do '%s'.u % ['abc'.untrust] end if untrust
|
|
1348
|
+
expect result.tainted? do '%p'.u % ['abc'.taint] end
|
|
1349
|
+
expect result.not.untrusted? do '%p'.u % ['abc'.untrust] end if untrust
|
|
1350
|
+
|
|
1351
|
+
expect '"abc".u'.u do "abc".u.dump end
|
|
1352
|
+
expect '"\u{e4}bc".u'.u do "äbc".u.dump end
|
|
1353
|
+
expect '"\xC3".u'.u do "\xC3".u.dump end
|
|
1354
|
+
expect '"\xF1\x80\x80".u'.u do "\xF1\x80\x80".u.dump end
|
|
1355
|
+
expect '"\"\\\\\n\r\t\f\v\b\a\e".u'.u do "\"\\\n\r\t\f\v\b\a\e".u.dump end
|
|
1356
|
+
expect '"\#$\#@\#{}".u'.u do '#$#@#{}'.u.dump end
|
|
1357
|
+
expect result.tainted? do ''.u.taint.dump end
|
|
1358
|
+
expect result.untrusted? do ''.u.untrust.dump end if untrust
|
|
1359
|
+
|
|
1360
|
+
expect '"abc".u'.u do "abc".u.inspect end
|
|
1361
|
+
expect '"äbc".u'.u do "äbc".u.inspect end
|
|
1362
|
+
expect '"\xC3".u'.u do "\xC3".u.inspect end
|
|
1363
|
+
expect result.not.print? do [0x007F].pack('U').u end
|
|
1364
|
+
expect '"\u007F".u'.u do [0x007F].pack('U').u.inspect end
|
|
1365
|
+
expect result.not.print? do [0x110BD].pack('U').u end
|
|
1366
|
+
expect '"\u{110BD}".u'.u do [0x110BD].pack('U').u.inspect end
|
|
1367
|
+
expect '"\"\\\\\n\r\t\f\v\b\a\e".u'.u do "\"\\\n\r\t\f\v\b\a\e".u.inspect end
|
|
1368
|
+
expect '"#\xC3".u'.u do "#\xC3".u.inspect end
|
|
1369
|
+
expect '"\#$\#@\#{}".u'.u do '#$#@#{}'.u.inspect end
|
|
1370
|
+
expect result.tainted? do ''.u.taint.inspect end
|
|
1371
|
+
expect result.untrusted? do ''.u.untrust.inspect end if untrust
|
|
1372
|
+
|
|
1373
|
+
expect true do 'hëllö'.u.hash == 'hëllö'.u.hash end
|
|
1374
|
+
expect false do 'hëllö'.u.hash == 'hëlLÖ'.u.hash end
|
|
1375
|
+
expect false do 'a'.u.hash == "a\0".u.hash end
|
|
1376
|
+
|
|
1377
|
+
expect 255 do '0xff'.u.hex end
|
|
1378
|
+
expect(-255) do '-0xff'.u.hex end
|
|
1379
|
+
expect 255 do 'ff'.u.hex end
|
|
1380
|
+
expect(-255) do '-ff'.u.hex end
|
|
1381
|
+
expect 0 do '-ralph'.u.hex end
|
|
1382
|
+
expect(-15) do '-fred'.u.hex end
|
|
1383
|
+
expect 15 do 'fred'.u.hex end
|
|
1384
|
+
# TODO Add tests for Unicode digit values.
|
|
1385
|
+
|
|
1386
|
+
# TODO: Add tests for Unicode digit values.
|
|
1387
|
+
expect 255 do '0377'.u.oct end
|
|
1388
|
+
expect 255 do '377'.u.oct end
|
|
1389
|
+
expect(-255) do '-0377'.u.oct end
|
|
1390
|
+
expect(-255) do '-377'.u.oct end
|
|
1391
|
+
expect 0 do '00'.u.oct end
|
|
1392
|
+
expect 24 do '030OO'.u.oct end
|
|
1393
|
+
|
|
1394
|
+
expect 1480 do '1480ft/sec'.u.to_i end
|
|
1395
|
+
expect 0 do 'speed of sound in water @20C = 1480ft/sec'.u.to_i end
|
|
1396
|
+
expect 0 do ' 0'.u.to_i end
|
|
1397
|
+
expect 0 do '+0'.u.to_i end
|
|
1398
|
+
expect 0 do '-0'.u.to_i end
|
|
1399
|
+
expect 0 do '--0'.u.to_i end
|
|
1400
|
+
expect 16 do '0x10'.u.to_i(0) end
|
|
1401
|
+
expect 16 do '0X10'.u.to_i(0) end
|
|
1402
|
+
expect 2 do '0b10'.u.to_i(0) end
|
|
1403
|
+
expect 2 do '0B10'.u.to_i(0) end
|
|
1404
|
+
expect 8 do '0o10'.u.to_i(0) end
|
|
1405
|
+
expect 8 do '0O10'.u.to_i(0) end
|
|
1406
|
+
expect 10 do '0d10'.u.to_i(0) end
|
|
1407
|
+
expect 10 do '0D10'.u.to_i(0) end
|
|
1408
|
+
expect 8 do '010'.u.to_i(0) end
|
|
1409
|
+
expect ArgumentError do '010'.u.to_i(-10) end
|
|
1410
|
+
expect ArgumentError do '0'.u.to_i(1) end
|
|
1411
|
+
expect ArgumentError do '0'.u.to_i(37) end
|
|
1412
|
+
expect 0 do 'z'.u.to_i(10) end
|
|
1413
|
+
expect 35 do 'z'.u.to_i(36) end
|
|
1414
|
+
expect 12 do '1_2'.u.to_i(10) end
|
|
1415
|
+
expect 0x4000_0000 do '1073741824'.u.to_i(10) end
|
|
1416
|
+
expect 0x4000_0000_0000_0000 do '4611686018427387904'.u.to_i(10) end
|
|
1417
|
+
expect 1 do '1__2'.u.to_i(10) end
|
|
1418
|
+
expect 1 do '1_z'.u.to_i(10) end
|
|
1419
|
+
expect 1 do '١'.u.to_i end
|
|
1420
|
+
|
|
1421
|
+
expect String do ''.u.to_str end
|
|
1422
|
+
expect '' do ''.u.to_str end
|
|
1423
|
+
if defined? Encoding
|
|
1424
|
+
expect Encoding::UTF_8 do ''.u.to_str.encoding end
|
|
1425
|
+
expect Encoding::UTF_8 do ''.encode(Encoding::ASCII).u.to_str.encoding end
|
|
1426
|
+
end
|
|
1427
|
+
|
|
1428
|
+
if defined? Encoding
|
|
1429
|
+
expect Encoding::ASCII_8BIT do ''.u.b.encoding end
|
|
1430
|
+
end
|
|
1431
|
+
|
|
1432
|
+
expect :koala do 'koala'.u.to_sym end
|
|
1433
|
+
expect :'köälä' do 'köälä'.u.to_sym end
|
|
1434
|
+
|
|
1435
|
+
expect :koala do 'koala'.u.intern end
|
|
1436
|
+
expect :'köälä' do 'köälä'.u.intern end
|
|
1437
|
+
|
|
1438
|
+
expect ''.u do |o| o.u end
|
|
1439
|
+
end
|