diff --git a/lib/linguist/classifier.rb b/lib/linguist/classifier.rb index fe2c5a14..d3731c2d 100644 --- a/lib/linguist/classifier.rb +++ b/lib/linguist/classifier.rb @@ -68,6 +68,15 @@ module Linguist nil end + # Public: Verify internal counts are consistent. + # + # Returns Boolean. + def verify + @languages.inject(0) { |n, (l, c)| n += c } == @languages_total && + @language_tokens.inject(0) { |n, (l, c)| n += c } == @tokens_total && + @tokens.inject(0) { |n, (l, ts)| n += ts.inject(0) { |m, (t, c)| m += c } } == @tokens_total + end + # Public: Prune infrequent tokens. # # Returns receiver Classifier instance. diff --git a/test/test_classifier.rb b/test/test_classifier.rb index c329364d..b39fb20c 100644 --- a/test/test_classifier.rb +++ b/test/test_classifier.rb @@ -55,6 +55,10 @@ class TestClassifier < Test::Unit::TestCase assert results.first[1] < 0.5, results.first.inspect end + def test_verify + assert Classifier.instance.verify + end + def test_gc Classifier.instance.gc end