@@ -42,4 +42,56 @@ def test_safari_animals
4242 assert_equal 'Lion' , bayes . classify ( 'lion' )
4343 assert_equal 'Elephant' , bayes . classify ( 'elephant' )
4444 end
45+
46+ def test_remove_category
47+ @classifier . train_interesting 'This is interesting content'
48+ @classifier . train_uninteresting 'This is uninteresting content'
49+
50+ assert_equal %w[ Interesting Uninteresting ] . sort , @classifier . categories . sort
51+
52+ @classifier . remove_category 'Uninteresting'
53+
54+ assert_equal [ 'Interesting' ] , @classifier . categories
55+ end
56+
57+ def test_remove_nonexistent_category
58+ assert_raises ( StandardError ) do
59+ @classifier . remove_category 'NonexistentCategory'
60+ end
61+ end
62+
63+ def test_remove_category_affects_classification
64+ @classifier . train_interesting 'This is interesting content'
65+ @classifier . train_uninteresting 'This is uninteresting content'
66+
67+ assert_equal 'Uninteresting' , @classifier . classify ( 'This is uninteresting' )
68+
69+ @classifier . remove_category 'Uninteresting'
70+
71+ assert_equal 'Interesting' , @classifier . classify ( 'This is uninteresting' )
72+ end
73+
74+ def test_remove_all_categories
75+ @classifier . remove_category 'Interesting'
76+ @classifier . remove_category 'Uninteresting'
77+
78+ assert_empty @classifier . categories
79+ end
80+
81+ def test_remove_and_add_category
82+ @classifier . remove_category 'Uninteresting'
83+ @classifier . add_category 'Neutral'
84+
85+ assert_equal %w[ Interesting Neutral ] . sort , @classifier . categories . sort
86+ end
87+
88+ def test_remove_category_preserves_other_category_data
89+ @classifier . train_interesting 'This is interesting content'
90+ @classifier . train_uninteresting 'This is uninteresting content'
91+
92+ interesting_classification = @classifier . classify ( 'This is interesting' )
93+ @classifier . remove_category 'Uninteresting'
94+
95+ assert_equal interesting_classification , @classifier . classify ( 'This is interesting' )
96+ end
4597end
0 commit comments