@@ -42,4 +42,56 @@ def test_safari_animals
42
42
assert_equal 'Lion' , bayes . classify ( 'lion' )
43
43
assert_equal 'Elephant' , bayes . classify ( 'elephant' )
44
44
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
45
97
end
0 commit comments