From 67be2f5e80035545990a0e5881345e2d730fd10b Mon Sep 17 00:00:00 2001 From: Sawood Alam Date: Wed, 8 Feb 2017 15:23:23 -0500 Subject: [PATCH] Add support to reset trained classifiers to their initial state (#143) * Fixed test failutres if redis is not running * Remove warnings of uninitialized instances of test teardown * Checking right conditiones for the test teardown * Added reset methods in Bayes, LSI, and Bayes backends * Corrected teardown conditionals * Added tests for reset functionality * Corrected typo in documentation * Added tests for reset method in backends * Utilize Redis backend reset method in test teardown --- test/backends/backend_common_tests.rb | 18 +++++++++++++++--- test/backends/backend_redis_test.rb | 2 +- test/bayes/bayesian_integration_test.rb | 2 +- test/bayes/bayesian_redis_benchmark.rb | 2 +- test/bayes/bayesian_redis_test.rb | 4 ++-- 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/test/backends/backend_common_tests.rb b/test/backends/backend_common_tests.rb index 4396bbd..0cc4be3 100644 --- a/test/backends/backend_common_tests.rb +++ b/test/backends/backend_common_tests.rb @@ -2,9 +2,9 @@ module BackendCommonTests def test_initial_values - assert_equal 0, @backend.total_words - assert_equal 0, @backend.total_trainings - assert_equal [], @backend.category_keys + assert @backend.total_words.zero? + assert @backend.total_trainings.zero? + assert @backend.category_keys.empty? end def test_total_words @@ -55,4 +55,16 @@ def test_category_word_frequency @backend.delete_category_word(:Interesting, "foo") refute @backend.word_in_category?(:Interesting, "foo") end + + def test_reset + @backend.update_total_words(10) + @backend.update_total_trainings(10) + @backend.add_category(:Interesting) + @backend.update_category_training_count(:Interesting, 10) + @backend.update_category_word_count(:Interesting, 10) + @backend.reset + assert @backend.total_words.zero? + assert @backend.total_trainings.zero? + assert @backend.category_keys.empty? + end end diff --git a/test/backends/backend_redis_test.rb b/test/backends/backend_redis_test.rb index 48c7015..50616a8 100644 --- a/test/backends/backend_redis_test.rb +++ b/test/backends/backend_redis_test.rb @@ -16,6 +16,6 @@ def setup end def teardown - @backend.instance_variable_get(:@redis).flushdb if defined? @backend + @backend.reset if defined? @backend end end diff --git a/test/bayes/bayesian_integration_test.rb b/test/bayes/bayesian_integration_test.rb index c2aea46..83fcb97 100644 --- a/test/bayes/bayesian_integration_test.rb +++ b/test/bayes/bayesian_integration_test.rb @@ -26,7 +26,7 @@ def setup end def teardown - @redis_backend.instance_variable_get(:@redis).flushdb unless @redis_backend.nil? + @redis_backend.reset unless @redis_backend.nil? end def test_equality_of_backends diff --git a/test/bayes/bayesian_redis_benchmark.rb b/test/bayes/bayesian_redis_benchmark.rb index 42fed5e..c079bf7 100644 --- a/test/bayes/bayesian_redis_benchmark.rb +++ b/test/bayes/bayesian_redis_benchmark.rb @@ -32,7 +32,7 @@ def setup def teardown if defined? @classifiers self.class.bench_range.each do |n| - @classifiers[n].instance_variable_get(:@backend).instance_variable_get(:@redis).flushdb + @classifiers[n].reset end end end diff --git a/test/bayes/bayesian_redis_test.rb b/test/bayes/bayesian_redis_test.rb index 0a23b6f..2b16930 100644 --- a/test/bayes/bayesian_redis_test.rb +++ b/test/bayes/bayesian_redis_test.rb @@ -21,8 +21,8 @@ def setup def teardown Hasher::STOPWORDS['en'] = @old_stopwords if defined? @backend - @backend.instance_variable_get(:@redis).flushdb - @alternate_backend.instance_variable_get(:@redis).flushdb + @backend.reset + @alternate_backend.reset end end end