66
77import org .junit .jupiter .api .Test ;
88
9- class NaiveBayesClassifierTest {
9+ class MultinomialNaiveBayesClassifierTest {
1010
1111 @ Test
1212 void predictsCorrectClassOnSeparableToyDataset () {
1313 // Class 0 samples are dominated by feature 0; class 1 samples by feature 1.
14- double [][] features = {
15- {5 , 1 },
16- {6 , 0 },
17- {4 , 1 },
18- {1 , 5 },
19- {0 , 6 },
20- {1 , 4 },
21- };
14+ double [][] features = {{5 , 1 },{6 , 0 },{4 , 1 },{1 , 5 },{0 , 6 },{1 , 4 },};
2215 int [] labels = {0 , 0 , 0 , 1 , 1 , 1 };
2316
24- NaiveBayesClassifier classifier = new NaiveBayesClassifier ();
17+ MultinomialNaiveBayesClassifier classifier = new MultinomialNaiveBayesClassifier ();
2518 classifier .fit (features , labels );
2619
2720 assertEquals (0 , classifier .predict (new double [] {5 , 0 }));
@@ -38,7 +31,7 @@ void predictBatchMatchesIndividualPredictions() {
3831 };
3932 int [] labels = {0 , 0 , 1 , 1 };
4033
41- NaiveBayesClassifier classifier = new NaiveBayesClassifier ();
34+ MultinomialNaiveBayesClassifier classifier = new MultinomialNaiveBayesClassifier ();
4235 classifier .fit (features , labels );
4336
4437 double [][] samples = {{4 , 0 }, {0 , 4 }};
@@ -59,7 +52,7 @@ void laplaceSmoothingKeepsZeroCountFeatureLogProbabilityFinite() {
5952 };
6053 int [] labels = {0 , 0 , 1 , 1 };
6154
62- NaiveBayesClassifier classifier = new NaiveBayesClassifier ();
55+ MultinomialNaiveBayesClassifier classifier = new MultinomialNaiveBayesClassifier ();
6356 classifier .fit (features , labels );
6457
6558 // A sample that hits class 0's zero-count feature should still produce
@@ -70,14 +63,14 @@ void laplaceSmoothingKeepsZeroCountFeatureLogProbabilityFinite() {
7063
7164 @ Test
7265 void predictBeforeFitThrowsIllegalStateException () {
73- NaiveBayesClassifier classifier = new NaiveBayesClassifier ();
66+ MultinomialNaiveBayesClassifier classifier = new MultinomialNaiveBayesClassifier ();
7467 assertThrows (IllegalStateException .class , () -> classifier .predict (new double [] {1 , 2 }));
7568 }
7669
7770 @ Test
7871 void nonPositiveAlphaThrowsIllegalArgumentException () {
79- assertThrows (IllegalArgumentException .class , () -> new NaiveBayesClassifier (0.0 ));
80- assertThrows (IllegalArgumentException .class , () -> new NaiveBayesClassifier (-1.0 ));
72+ assertThrows (IllegalArgumentException .class , () -> new MultinomialNaiveBayesClassifier (0.0 ));
73+ assertThrows (IllegalArgumentException .class , () -> new MultinomialNaiveBayesClassifier (-1.0 ));
8174 }
8275
8376 @ Test
@@ -88,7 +81,7 @@ void mismatchedSampleLengthThrowsIllegalArgumentException() {
8881 };
8982 int [] labels = {0 , 1 };
9083
91- NaiveBayesClassifier classifier = new NaiveBayesClassifier ();
84+ MultinomialNaiveBayesClassifier classifier = new MultinomialNaiveBayesClassifier ();
9285 classifier .fit (features , labels );
9386
9487 assertThrows (IllegalArgumentException .class , () -> classifier .predict (new double [] {1 , 2 , 3 }));
@@ -102,7 +95,7 @@ void mismatchedFeatureAndLabelLengthsThrowsIllegalArgumentException() {
10295 };
10396 int [] labels = {0 };
10497
105- NaiveBayesClassifier classifier = new NaiveBayesClassifier ();
98+ MultinomialNaiveBayesClassifier classifier = new MultinomialNaiveBayesClassifier ();
10699 assertThrows (IllegalArgumentException .class , () -> classifier .fit (features , labels ));
107100 }
108101}
0 commit comments