Files
linguist/test/test_samples.rb
richo 2d7dea2d97 Don't emit the diff if samples db is out of date
There's a warning message emitted with instructions, a 2000 line diff
does nothing to help the user track down the issue.
2013-03-13 17:29:05 +11:00

39 lines
1.1 KiB
Ruby

require 'linguist/samples'
require 'tempfile'
require 'yajl'
require 'test/unit'
class TestSamples < Test::Unit::TestCase
include Linguist
def test_up_to_date
assert serialized = Samples::DATA
assert latest = Samples.data
# Just warn, it shouldn't scare people off by breaking the build.
if serialized['md5'] != latest['md5']
warn "Samples database is out of date. Run `bundle exec rake samples`."
expected = Tempfile.new('expected.json')
expected.write Yajl::Encoder.encode(serialized, :pretty => true)
expected.close
actual = Tempfile.new('actual.json')
actual.write Yajl::Encoder.encode(latest, :pretty => true)
actual.close
expected.unlink
actual.unlink
end
end
def test_verify
assert data = Samples::DATA
assert_equal data['languages_total'], data['languages'].inject(0) { |n, (_, c)| n += c }
assert_equal data['tokens_total'], data['language_tokens'].inject(0) { |n, (_, c)| n += c }
assert_equal data['tokens_total'], data['tokens'].inject(0) { |n, (_, ts)| n += ts.inject(0) { |m, (_, c)| m += c } }
end
end