1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/ruby
duerst 3628eae2e7 implement special behavior for Georgian for String#capitalize
The modern Georgian script is special in that it has an 'uppercase'
variant called MTAVRULI which can be used for emphasis of whole words,
for screamy headlines, and so on. However, in contrast to all other
bicameral scripts, there is no usage of capitalizing the first letter
in a word or a sentence. Words with mixed capitalization are not used
at all.

We therefore implement special behavior for String#capitalize. Formally,
we define String#capitalize as first applying String#downcase for the
whole string, then using titlecase on the first letter. Because Georgian
defines titlecase as the identity function both for MTAVRULI ('uppercase')
and Mkhedruli (lowercase), this results in String#capitalize being
equivalent to String#downcase for Georgian. This avoids undesirable
mixed case.

* enc/unicode.c: Actual implementation

* string.c: Add mention of this special case for documentation

* test/ruby/enc/test_case_mapping.rb: Add two tests, a general one
  that uses String#capitalize on some (including nonsensical)
  combinations of MTAVRULI and Mkhedruli, and a canary test to
  detect the potential assignment of characters to the currently
  open slots (holes) at U+1CBB and U+1CBC.

* test/ruby/enc/test_case_comprehensive.rb: Tweak generation of
  expectation data.

Together with r65933, this closes issue #14839.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-09 23:14:29 +00:00
..
enc implement special behavior for Georgian for String#capitalize 2018-12-09 23:14:29 +00:00
allpairs.rb
beginmainend.rb
bug-11928.rb
bug-13526.rb test/ruby/bug-13526.rb: should wait until all threads are stopped 2017-11-21 00:56:09 +00:00
lbtest.rb
marshaltestlib.rb marshaltestlib.rb: use clean object for exception 2018-04-12 03:40:16 +00:00
sentence.rb
test_alias.rb
test_argf.rb Fix error when Encoding.default_external is Encoding::IBM437 2018-08-09 09:36:03 +00:00
test_arithmetic_sequence.rb enumerator.c: Fix ArithmeticSequence for complex step 2018-09-12 07:35:42 +00:00
test_arity.rb
test_array.rb Fix error message 2018-12-04 09:16:49 +00:00
test_assignment.rb Enable the assertions that had been disabled for historical reason 2018-04-17 08:26:20 +00:00
test_ast.rb Refine RubyVM::AbstractSyntaxTree::Node#type 2018-12-03 01:06:34 +00:00
test_autoload.rb try to remove some test skips for MJIT 2018-10-21 15:54:50 +00:00
test_backtrace.rb Revert "Add test for cause on pty" 2018-10-28 17:03:36 +00:00
test_basicinstructions.rb Remove the old disabled assertions for 1.8/1.9 2018-04-17 08:47:56 +00:00
test_beginendblock.rb
test_bignum.rb use Queue for inter-thread synchronization. 2018-04-04 05:00:52 +00:00
test_call.rb
test_case.rb
test_class.rb Add FrozenError as a subclass of RuntimeError 2017-12-12 00:46:34 +00:00
test_clone.rb Don't copy FL_USER* on Kernel#clone. [Bug #14847] 2018-07-09 08:07:26 +00:00
test_comparable.rb
test_complex.rb complex.c: small optimization of Complex#** 2018-10-20 02:49:18 +00:00
test_complex2.rb
test_complexrational.rb
test_condition.rb
test_const.rb
test_continuation.rb Give up support for cross-callcc set_trace_func. 2018-11-26 19:59:08 +00:00
test_default_gems.rb Fixed wrong variable name. 2018-06-02 13:55:54 +00:00
test_defined.rb defined? returns nil for toplevel constant lookup 2018-01-27 06:12:09 +00:00
test_dir.rb Fix r65926 test_dir.rb for windows (tilde) 2018-11-24 00:55:26 +00:00
test_dir_m17n.rb
test_econv.rb
test_encoding.rb
test_enum.rb introduce TransientHeap. [Bug #14858] 2018-10-30 21:53:56 +00:00
test_enumerator.rb Implement Enumerator#+ and Enumerable#chain [Feature #15144] 2018-11-24 08:38:35 +00:00
test_env.rb Removed Windows version condition 2018-10-01 07:50:08 +00:00
test_eval.rb Remove the old disabled assertions for 1.8/1.9 2018-04-17 08:47:56 +00:00
test_exception.rb Warn redefinitions of some methods on Object 2018-12-06 23:06:13 +00:00
test_fiber.rb Avoid GCing dead stack after switching away from a fiber 2018-12-01 03:49:52 +00:00
test_file.rb file.c: realpath on special symlink 2018-02-28 05:43:53 +00:00
test_file_exhaustive.rb Document File.{setuid?,setgid?,sticky?} support for IO objects [Bug #13972] 2018-10-20 11:47:45 +00:00
test_fixnum.rb
test_flip.rb Remove warnings of flip-flop deprecation from tests and specs 2018-06-15 08:53:16 +00:00
test_float.rb object.c: raise on long invalid float string 2018-05-04 06:12:12 +00:00
test_fnmatch.rb Revert "Dir.glob with FNM_EXTGLOB is optimized [Feature #13873]" 2017-10-27 08:40:40 +00:00
test_gc.rb Revert "Revert "Manage AST NODEs out of GC"" 2017-10-27 16:44:57 +00:00
test_hash.rb Adjust reserved hash values 2018-12-07 12:03:16 +00:00
test_ifunless.rb Rename test classes to allow stable test count when running test-all -j 2018-03-13 06:29:02 +00:00
test_integer.rb Warn redefinitions of some methods on Object 2018-12-06 23:06:13 +00:00
test_integer_comb.rb Integer#allbits?, Integer#anybits?, Integer#nobits? [Feature #12753] 2017-12-12 09:12:14 +00:00
test_io.rb test/ruby/test_io.rb (test_recycled_fd_close): remove hacks 2018-11-30 11:44:21 +00:00
test_io_m17n.rb trick ruby-mode.el by heredocs 2018-01-31 04:02:17 +00:00
test_iseq.rb Return same ISeq object for one src. 2018-12-06 10:52:27 +00:00
test_iterator.rb compile.c: try to convert in massign for 2018-01-27 10:41:43 +00:00
test_jit.rb Speed up hash literals by duping 2018-12-06 18:28:21 +00:00
test_key_error.rb error.c: KeyError missing keyword arguments 2018-01-26 06:41:13 +00:00
test_keyword.rb parse.y: fix block passing with empty kwargs 2018-09-20 01:43:35 +00:00
test_lambda.rb
test_lazy_enumerator.rb Bug Fix Enumerator::Lazy#uniq state for multiple call 2018-03-13 01:00:08 +00:00
test_literal.rb Collapse putobject, putobject, newarray 2018-12-03 23:53:11 +00:00
test_m17n.rb string.c: setbyte silently ignores upper bits 2018-11-19 09:52:46 +00:00
test_m17n_comb.rb
test_marshal.rb marshal.c: allow marshalling keyword_init struct 2018-01-05 11:44:31 +00:00
test_math.rb math.c: adjust cbrt 2018-06-06 14:01:43 +00:00
test_metaclass.rb
test_method.rb Proc#<< and Proc#>> 2018-11-22 05:51:43 +00:00
test_mixed_unicode_escapes.rb parse.y (new_regexp): Fix SEGV of /#{"\u3042"}#{'い'}/ in non UTF-8 2018-01-16 01:43:25 +00:00
test_module.rb Fix problem about notimplemented case 2018-08-13 13:48:27 +00:00
test_not.rb Rename test classes to allow stable test count when running test-all -j 2018-03-13 06:29:02 +00:00
test_notimp.rb
test_numeric.rb enumerator.c: Introduce Enumerator::ArithmeticSequence 2018-08-06 09:08:28 +00:00
test_object.rb Warn redefinitions of some methods on Object 2018-12-06 23:06:13 +00:00
test_objectspace.rb
test_optimization.rb compile.c: fix peephole optimization 2018-10-24 10:38:39 +00:00
test_pack.rb pack.c: refine warning 2018-11-16 00:25:54 +00:00
test_parse.rb parse.y: remove "shadowing outer local variable" warning 2018-10-26 03:10:02 +00:00
test_path.rb
test_pipe.rb win32.c: EPIPE for ERROR_NO_DATA 2018-02-01 02:56:28 +00:00
test_primitive.rb
test_proc.rb Proc#<< and Proc#>> 2018-11-22 05:51:43 +00:00
test_process.rb process.c: fix ETXTBUSY from MJIT compiler process 2018-12-03 19:49:54 +00:00
test_rand.rb random.c: endless range random 2018-08-03 06:31:22 +00:00
test_range.rb range.c: Add Range#% 2018-09-28 02:18:58 +00:00
test_rational.rb refine parse_rat 2018-11-08 02:25:44 +00:00
test_rational2.rb
test_readpartial.rb
test_refinement.rb Enable refinements at Object#respond_to? 2018-11-22 08:29:02 +00:00
test_regexp.rb commit miss 2018-12-04 10:51:57 +00:00
test_require.rb $SAFE as a process global state. [Feature #14250] 2017-12-28 20:09:24 +00:00
test_rubyoptions.rb parse.y: remove "shadowing outer local variable" warning 2018-10-26 03:10:02 +00:00
test_rubyvm.rb
test_rubyvm_mjit.rb skip tests if --disable-mjit-support. 2018-10-20 08:06:50 +00:00
test_settracefunc.rb add tests for script_compiled TP event. 2018-12-06 13:53:48 +00:00
test_signal.rb thread_pthread.c: main thread always gets hit by signals 2018-08-25 21:59:30 +00:00
test_sleep.rb
test_sprintf.rb test_sprintf.rb: test for %p 2018-09-15 08:39:07 +00:00
test_sprintf_comb.rb
test_string.rb change diaeresis from above to below for better visibility 2018-12-04 10:49:55 +00:00
test_stringchar.rb
test_struct.rb Enumerable#to_h with block and so on 2018-09-20 15:06:56 +00:00
test_super.rb test/ruby/test_super.rb: Remove unused assertions 2018-04-17 08:52:25 +00:00
test_symbol.rb Revert "Symbol refinements" 2018-12-04 04:22:08 +00:00
test_syntax.rb parser: improve error messages 2018-11-25 08:31:40 +00:00
test_system.rb test/ruby/test_system.rb: suppress prompt and echo on Windows 2018-08-18 02:44:35 +00:00
test_thread.rb thread_sync.c (mutex_ptr): handle mutexes held by parent threads in children 2018-12-05 18:58:45 +00:00
test_thread_cv.rb revisit more MJIT test skips 2018-10-22 15:49:22 +00:00
test_thread_queue.rb appveyor.yml: give up running TestThreadQueue#test_queue_with_trap 2018-10-07 14:05:56 +00:00
test_threadgroup.rb
test_time.rb Normalize month-mday before finding epoch 2018-11-25 16:23:18 +00:00
test_time_tz.rb time.c: rescue find_timezone when loading 2018-11-28 14:08:35 +00:00
test_trace.rb
test_transcode.rb Add FrozenError as a subclass of RuntimeError 2017-12-12 00:46:34 +00:00
test_undef.rb Test for undef'ed method in class hierachy 2018-11-16 04:21:57 +00:00
test_unicode_escape.rb
test_variable.rb Add FrozenError as a subclass of RuntimeError 2017-12-12 00:46:34 +00:00
test_vm_dump.rb test_vm_dump.rb: skip if gcc 2017-12-16 00:36:31 +00:00
test_weakmap.rb test_weakmap.rb: skip unstable assertion 2018-03-16 14:12:39 +00:00
test_whileuntil.rb
test_yield.rb
ut_eof.rb