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

ruby-changes:2875

From: ko1@a...
Date: 20 Dec 2007 19:09:40 +0900
Subject: [ruby-changes:2875] akr - Ruby:r14366 (trunk): add test for succ.

akr	2007-12-20 19:09:32 +0900 (Thu, 20 Dec 2007)

  New Revision: 14366

  Modified files:
    trunk/test/ruby/test_m17n.rb

  Log:
    add test for succ.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_m17n.rb?r1=14366&r2=14365

Index: test/ruby/test_m17n.rb
===================================================================
--- test/ruby/test_m17n.rb	(revision 14365)
+++ test/ruby/test_m17n.rb	(revision 14366)
@@ -1534,6 +1534,11 @@
     }
   end
 
+  def test_squeeze
+    s = "\xa3\xb0\xa3\xb1\xa3\xb1\xa3\xb3\xa3\xb4".force_encoding("euc-jp")
+    assert_equal("\xa3\xb0\xa3\xb1\xa3\xb3\xa3\xb4".force_encoding("euc-jp"), s.squeeze)
+  end
+
   def test_str_strip
     STRINGS.each {|s|
       if !s.valid_encoding?
@@ -1627,16 +1632,57 @@
         encs << s3.encoding if !is_ascii_only?(s3)
         encs.uniq!
         #p e, encs
-        assert(1 < encs.length)
+        assert(1 < encs.length, "#{encdump s1}.tr(#{encdump s2}, #{encdump s3})")
       end
     }
   end
 
-  def test_squeeze
-    s = "\xa3\xb0\xa3\xb1\xa3\xb1\xa3\xb3\xa3\xb4".force_encoding("euc-jp")
-    assert_equal("\xa3\xb0\xa3\xb1\xa3\xb3\xa3\xb4".force_encoding("euc-jp"), s.squeeze)
+  def test_tr_s
+    combination(STRINGS, STRINGS, STRINGS) {|s1, s2, s3|
+      begin
+        #puts "#{encdump s1}.tr_s(#{encdump s2}, #{encdump s3})"
+        t = s1.tr_s(s2, s3)
+      rescue ArgumentError
+        e = $!
+      end
+      if e
+        encs = []
+        encs << s1.encoding if !is_ascii_only?(s1)
+        encs << s2.encoding if !is_ascii_only?(s2)
+        encs << s3.encoding if !is_ascii_only?(s3)
+        encs.uniq!
+        #p e, encs
+        assert(1 < encs.length, "#{encdump s1}.tr_s(#{encdump s2}, #{encdump s3})")
+      end
+    }
   end
 
+  def test_str_upcase
+    STRINGS.each {|s|
+      begin
+        t1 = s.upcase
+      rescue ArgumentError
+        assert(!s.valid_encoding?)
+        next
+      end
+      assert(t1.valid_encoding?) if s.valid_encoding?
+      assert(t1.casecmp(s))
+      t2 = s.dup
+      t2.upcase!
+      assert_equal(t1, t2)
+    }
+  end
+
+  def test_str_succ
+    s0 = e("\xA1\xA1")
+    s = s0.dup
+    n = 1000
+    n.times {
+      s.succ!
+    }
+    assert_operator(s.length, :<, s0.length + Math.log2(n) + 1)
+  end
+
   def test_sub
     s = "abc".sub(/b/, "\xa1\xa1".force_encoding("euc-jp"))
     assert_encoding("EUC-JP", s.encoding)

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

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