[前][次][番号順一覧][スレッド一覧]

ruby-changes:43122

From: duerst <ko1@a...>
Date: Sat, 28 May 2016 20:34:24 +0900 (JST)
Subject: [ruby-changes:43122] duerst:r55196 (trunk): * test/test_unicode_normalize.rb: Add test to check for availability of

duerst	2016-05-28 20:34:20 +0900 (Sat, 28 May 2016)

  New Revision: 55196

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=55196

  Log:
    * test/test_unicode_normalize.rb: Add test to check for availability of
      Unicode data file; refactoring; fix an error with tests for destructive
      method (unicode_normalize!).

  Modified files:
    trunk/ChangeLog
    trunk/test/test_unicode_normalize.rb
Index: test/test_unicode_normalize.rb
===================================================================
--- test/test_unicode_normalize.rb	(revision 55195)
+++ test/test_unicode_normalize.rb	(revision 55196)
@@ -9,11 +9,16 @@ require 'unicode_normalize/normalize' https://github.com/ruby/ruby/blob/trunk/test/test_unicode_normalize.rb#L9
 class TestUnicodeNormalize < Test::Unit::TestCase
 
   UNICODE_VERSION = UnicodeNormalize::UNICODE_VERSION
+  UNICODE_DATA_PATH = "../enc/unicode/data/#{UNICODE_VERSION}"
+
+  def expand_filename(basename)
+    File.expand_path("#{UNICODE_DATA_PATH}/#{basename}.txt", __dir__)
+  end
 
   NormTest = Struct.new :source, :NFC, :NFD, :NFKC, :NFKD, :line
 
   def read_tests
-    IO.readlines(File.expand_path("../enc/unicode/data/#{UNICODE_VERSION}/NormalizationTest.txt", __dir__), encoding: 'utf-8')
+    IO.readlines(expand_filename('NormalizationTest'), encoding: 'utf-8')
     .tap { |lines| assert_include(lines[0], "NormalizationTest-#{UNICODE_VERSION}.txt")}
     .collect.with_index { |linedata, linenumber| [linedata, linenumber]}
     .reject { |line| line[0] =~ /^[\#@]/ }
@@ -32,7 +37,6 @@ class TestUnicodeNormalize < Test::Unit: https://github.com/ruby/ruby/blob/trunk/test/test_unicode_normalize.rb#L37
     @@tests ||= read_tests
   rescue Errno::ENOENT => e
     @@tests ||= []
-    skip e.message
   end
 
   def self.generate_test_normalize(target, normalization, source, prechecked)
@@ -133,6 +137,11 @@ class TestUnicodeNormalize < Test::Unit: https://github.com/ruby/ruby/blob/trunk/test/test_unicode_normalize.rb#L137
   generate_test_check_false :NFD, :NFKC, :nfkc
   generate_test_check_false :NFKD, :NFKC, :nfkc
 
+  def test_AAAAA_data_file_available   # AAAAA makes sure this test is run first
+    expanded = expand_filename 'NormalizationTest'
+    assert File.exist?(expanded), "File #{expanded} missing."
+  end
+
   def test_non_UTF_8
     assert_equal "\u1E0A".encode('UTF-16BE'), "D\u0307".encode('UTF-16BE').unicode_normalize(:nfc)
     assert_equal true, "\u1E0A".encode('UTF-16BE').unicode_normalized?(:nfc)
@@ -172,10 +181,10 @@ class TestUnicodeNormalize < Test::Unit: https://github.com/ruby/ruby/blob/trunk/test/test_unicode_normalize.rb#L181
     assert_equal ascii_string, ascii_string.unicode_normalize(:nfkc)
     assert_equal ascii_string, ascii_string.unicode_normalize(:nfkd)
 
-    assert_equal ascii_string, ascii_string.unicode_normalize!
-    assert_equal ascii_string, ascii_string.unicode_normalize!(:nfd)
-    assert_equal ascii_string, ascii_string.unicode_normalize!(:nfkc)
-    assert_equal ascii_string, ascii_string.unicode_normalize!(:nfkd)
+    assert_equal ascii_string, ascii_string.dup.unicode_normalize!
+    assert_equal ascii_string, ascii_string.dup.unicode_normalize!(:nfd)
+    assert_equal ascii_string, ascii_string.dup.unicode_normalize!(:nfkc)
+    assert_equal ascii_string, ascii_string.dup.unicode_normalize!(:nfkd)
 
     assert_equal true, ascii_string.unicode_normalized?
     assert_equal true, ascii_string.unicode_normalized?(:nfd)
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 55195)
+++ ChangeLog	(revision 55196)
@@ -1,3 +1,9 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Sat May 28 20:34:19 2016  Martin Duerst  <duerst@i...>
+
+	* test/test_unicode_normalize.rb: Add test to check for availability of
+	  Unicode data file; refactoring; fix an error with tests for destructive
+	  method (unicode_normalize!).
+
 Sat May 28 19:08:36 2016  Martin Duerst  <duerst@i...>
 
 	* test/ruby/enc/test_case_comprehensive.rb: Add error messages to tests

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]