mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Seperate test file for samples
This commit is contained in:
2
Rakefile
2
Rakefile
@@ -16,7 +16,7 @@ end
|
|||||||
|
|
||||||
CLOBBER.include 'lib/linguist/samples.yml'
|
CLOBBER.include 'lib/linguist/samples.yml'
|
||||||
|
|
||||||
task :classifier => [:clobber, 'lib/linguist/samples.yml']
|
task :samples => [:clobber, 'lib/linguist/samples.yml']
|
||||||
|
|
||||||
namespace :classifier do
|
namespace :classifier do
|
||||||
LIMIT = 1_000
|
LIMIT = 1_000
|
||||||
|
|||||||
@@ -16,13 +16,6 @@ class TestClassifier < Test::Unit::TestCase
|
|||||||
File.read(File.join(samples_path, name))
|
File.read(File.join(samples_path, name))
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_instance_freshness
|
|
||||||
# Just warn, it shouldn't scare people off by breaking the build.
|
|
||||||
if Samples::DATA['md5'] != Samples.data['md5']
|
|
||||||
warn "Classifier database is out of date. Run `bundle exec rake classifier`."
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_classify
|
def test_classify
|
||||||
db = {}
|
db = {}
|
||||||
Classifier.train! db, "Ruby", fixture("ruby/foo.rb")
|
Classifier.train! db, "Ruby", fixture("ruby/foo.rb")
|
||||||
@@ -59,14 +52,6 @@ class TestClassifier < Test::Unit::TestCase
|
|||||||
assert_equal [], Classifier.classify(Samples::DATA, nil)
|
assert_equal [], Classifier.classify(Samples::DATA, nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_verify
|
|
||||||
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
|
|
||||||
|
|
||||||
def test_classify_ambiguous_languages
|
def test_classify_ambiguous_languages
|
||||||
Samples.each do |sample|
|
Samples.each do |sample|
|
||||||
language = Linguist::Language.find_by_alias(sample[:language])
|
language = Linguist::Language.find_by_alias(sample[:language])
|
||||||
|
|||||||
25
test/test_samples.rb
Normal file
25
test/test_samples.rb
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
require 'linguist/samples'
|
||||||
|
|
||||||
|
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`."
|
||||||
|
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
|
||||||
Reference in New Issue
Block a user