Sha256: 9fdaf4bc94b2db696ecef9f288b9ad4a2eeaa3809040bc30c51a2d08bb4cb2fe
Contents?: true
Size: 1.74 KB
Versions: 1
Compression:
Stored size: 1.74 KB
Contents
# encoding: UTF-8 # Copyright 2012 Twitter, Inc # http://www.apache.org/licenses/LICENSE-2.0 require 'spec_helper' include TwitterCldr::Collation describe 'Unicode collation tailoring' do # Test data is taken from http://unicode.org/cldr/trac/browser/tags/release-2-0-1/test/ # Test files format: # - comments, // - pending tests. # it 'passes tailoring test for each supported locale', :slow => true do TwitterCldr.supported_locales.each do |locale| collator = Collator.new(locale) print "#{locale}\t-\t" lines = open(File.join(File.dirname(__FILE__), 'tailoring_tests', "#{locale}.txt")) { |f| f.lines.map(&:strip) } active_tests = lines.count(&method(:tailoring_test?)) pending_tests = lines.count(&method(:pending_tailoring_test?)) print "tests: %-4d active, %5.1f%% %5s pending\t-\t" % [active_tests, (100.0 * pending_tests / (pending_tests + active_tests)), "(#{pending_tests})"] last_number = last = nil failures = lines.each_with_index.inject([]) do |memo, (current, number)| if tailoring_test?(current) memo << [last_number + 1, last, current] if tailoring_test?(last) && collator.compare(last, current) == 1 last = current last_number = number elsif pending_tailoring_test?(current) last_number = last = nil end memo end if failures.empty? puts "OK" else failures_info = "#{failures.size} failures: #{failures.inspect}" puts failures_info failures.should(be_empty, "#{locale} - #{failures_info}") end end end def pending_tailoring_test?(line) !!(line =~ %r{^//}) end def tailoring_test?(line) !!(line && line !~ %r{^(//|#|\s*$)}) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
twitter_cldr-1.6.1 | spec/collation/tailoring_spec.rb |