test/test_hanyu_coverage.rb in ting-0.3.0 vs test/test_hanyu_coverage.rb in ting-0.9.0
- old
+ new
@@ -1,37 +1,42 @@
-require 'test/unit'
-require 'ting'
-require 'yaml'
-
-if RUBY_VERSION =~ /^1.8/
- $KCODE='u'
-end
-
-module HanyuCoverage
- grid=YAML.load(IO.read(File.dirname(__FILE__)+'/../lib/ting/data/valid_pinyin.yaml'))
- grid.each do |fname, row|
- row.each do |iname, hanyu|
- eval %[
- class Test_#{hanyu} < Test::Unit::TestCase
- include Ting
- def initialize(s)
- super(s)
- @reader = Ting.reader(:hanyu, :no_tones)
- @writer = Ting.writer(:hanyu, :no_tones)
- end
-
- def test_parse_#{hanyu}
- assert_equal('#{hanyu}', @writer.unparse(Syllable.new(Initial::#{iname}, Final::#{fname}, Tones::NEUTRAL_TONE)), 'Wrong hanyu for Initial::#{iname}+Final::#{fname}, expected `#{hanyu}` ')
- end
-
- def test_unparse_#{hanyu}
- ts=@reader.parse('#{hanyu}').first
- assert_not_nil(ts, 'Reader<:hanyu, :no_tone>#parse("#{hanyu}") returned nil')
- assert_equal(Initial::#{iname}, ts.initial, 'Wrong initial for `#{hanyu}`, expected Initial::#{iname}')
- assert_equal(Final::#{fname}, ts.final, 'Wrong final for `#{hanyu}`, expected Final::#{fname}')
- end
- end
- ]
- end
- end
-
-end
+# -*- coding: utf-8 -*-
+require 'test/unit'
+require 'ting'
+require 'yaml'
+
+module HanyuCoverage
+
+ class Test_ParseUnparse < Test::Unit::TestCase
+ include Ting
+ def initialize(s)
+ super(s)
+ @reader = Ting.reader(:hanyu, :no_tones)
+ @writer = Ting.writer(:hanyu, :no_tones)
+ end
+
+ grid=YAML.load(File.open(File.expand_path('../../lib/ting/data/valid_pinyin.yaml', __FILE__), 'r:UTF-8').read)
+ grid.each do |fname, row|
+ row.each do |iname, hanyu|
+ hanyu=hanyu.force_encoding('UTF-8')
+ safe_hanyu = hanyu.gsub('ü','v').gsub('ê','_e')
+
+ define_method :"test_unparse_#{safe_hanyu}" do
+ assert_equal(
+ hanyu,
+ @writer.unparse(
+ Syllable.new(Initial.const_get(iname), Final.const_get(fname), Tones::NEUTRAL_TONE)
+ ),
+ "Wrong hanyu for Initial::#{iname}+Final::#{fname}, expected `#{hanyu}` "
+ )
+ end
+
+ define_method :"test_parse_#{safe_hanyu}" do
+ ts=@reader.parse(hanyu).first
+ assert_not_nil(ts, "Reader<:hanyu, :no_tone>#parse('#{hanyu}') returned nil")
+ assert_equal(Initial.const_get(iname), ts.initial, "Wrong initial for `#{hanyu}`, expected Initial::#{iname}")
+ assert_equal(Final.const_get(fname), ts.final, "Wrong final for `#{hanyu}`, expected Final::#{fname}")
+ end
+
+ end
+ end
+ end
+end