1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.codec.language.bm;
19
20 import static org.junit.jupiter.api.Assertions.assertTrue;
21
22 import java.util.stream.Stream;
23
24 import org.junit.jupiter.params.ParameterizedTest;
25 import org.junit.jupiter.params.provider.Arguments;
26 import org.junit.jupiter.params.provider.MethodSource;
27
28
29
30
31 public class LanguageGuessingTest {
32
33 public static Stream<Arguments> data() {
34 return Stream.of(
35 Arguments.of("Renault", "french"),
36 Arguments.of("Mickiewicz", "polish"),
37 Arguments.of("Thompson", "english"),
38 Arguments.of("Nu\u00f1ez", "spanish"),
39 Arguments.of("Carvalho", "portuguese"),
40 Arguments.of("\u010capek", "czech"),
41 Arguments.of("Sjneijder", "dutch"),
42 Arguments.of("Klausewitz", "german"),
43 Arguments.of("K\u00fc\u00e7\u00fck", "turkish"),
44 Arguments.of("Giacometti", "italian"),
45 Arguments.of("Nagy", "hungarian"),
46 Arguments.of("Ceau\u015fescu", "romanian"),
47 Arguments.of("Angelopoulos", "greeklatin"),
48 Arguments.of("\u0391\u03b3\u03b3\u03b5\u03bb\u03cc\u03c0\u03bf\u03c5\u03bb\u03bf\u03c2", "greek"),
49 Arguments.of("\u041f\u0443\u0448\u043a\u0438\u043d", "cyrillic"),
50 Arguments.of("\u05db\u05d4\u05df", "hebrew"),
51 Arguments.of("\u00e1cz", "any"),
52 Arguments.of("\u00e1tz", "any")
53 );
54 }
55
56 private final Lang lang = Lang.instance(NameType.GENERIC);
57
58 @ParameterizedTest
59 @MethodSource("data")
60 public void testLanguageGuessing(final String name, final String language) {
61 final Languages.LanguageSet guesses = this.lang.guessLanguages(name);
62
63 assertTrue(guesses.contains(language),
64 "language predicted for name '" + name + "' is wrong: " + guesses + " should contain '" + language + "'");
65 }
66 }