17
17
18
18
package opennlp .tools .langdetect ;
19
19
20
+ import java .io .ByteArrayOutputStream ;
21
+ import java .nio .charset .StandardCharsets ;
20
22
import java .util .concurrent .atomic .AtomicInteger ;
21
23
22
24
import org .junit .Assert ;
23
25
import org .junit .Test ;
24
26
27
+ import opennlp .tools .cmdline .langdetect .LanguageDetectorEvaluationErrorListener ;
28
+
25
29
26
30
public class LanguageDetectorEvaluatorTest {
27
31
@@ -33,6 +37,8 @@ public void processSample() throws Exception {
33
37
final AtomicInteger correctCount = new AtomicInteger ();
34
38
final AtomicInteger incorrectCount = new AtomicInteger ();
35
39
40
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream ();
41
+
36
42
LanguageDetectorEvaluator evaluator = new LanguageDetectorEvaluator (langdetector ,
37
43
new LanguageDetectorEvaluationMonitor () {
38
44
@ Override
@@ -46,7 +52,7 @@ public void missclassified(LanguageSample reference,
46
52
LanguageSample prediction ) {
47
53
incorrectCount .incrementAndGet ();
48
54
}
49
- });
55
+ }, new LanguageDetectorEvaluationErrorListener ( outputStream ) );
50
56
51
57
evaluator .evaluateSample (new LanguageSample (new Language ("pob" ),
52
58
"escreve e faz palestras pelo mundo inteiro sobre anjos" ));
@@ -63,6 +69,12 @@ public void missclassified(LanguageSample reference,
63
69
64
70
Assert .assertEquals (3 , evaluator .getDocumentCount ());
65
71
Assert .assertEquals (0.33 , evaluator .getAccuracy (), 0.01 );
72
+
73
+ String report = outputStream .toString (StandardCharsets .UTF_8 .name ());
74
+
75
+ Assert .assertEquals ("Expected\t Predicted\t Context\n " +
76
+ "fra\t pob\t escreve e faz palestras pelo mundo inteiro sobre anjos\n " +
77
+ "fra\t pob\t escreve e faz palestras pelo mundo inteiro sobre anjos\n " , report );
66
78
}
67
79
68
80
}
0 commit comments