1 package org.wikimedia.search.extra.analysis.slovak;
2
3 import static org.junit.Assert.assertEquals;
4
5 import junit.framework.TestCase;
6
7 public class SlovakStemmerTest extends TestCase {
8
9 SlovakStemmer stemmer = new SlovakStemmer();
10
11
12
13
14
15
16
17 private String stemAsString(String str) {
18 int len = str.length();
19 char[] s = str.toCharArray();
20 len = stemmer.stem(s, len);
21 return new String(s, 0, len);
22 }
23
24 public void testStemmingCaseRemoval() throws Exception {
25
26 assertEquals(stemAsString("automatoch"), "autom");
27 assertEquals(stemAsString("dieťaťom"), "dieť");
28 assertEquals(stemAsString("stříbrného"), "stříbrn");
29 assertEquals(stemAsString("horthyovskému"), "horthyovsk");
30 assertEquals(stemAsString("dojčaťa"), "dojč");
31 assertEquals(stemAsString("pruskými"), "prusk");
32 assertEquals(stemAsString("ranených"), "ranen");
33 assertEquals(stemAsString("orkovi"), "ork");
34 }
35
36 public void testStemmingPossRemoval() throws Exception {
37
38 assertEquals(stemAsString("draľov"), "draľ");
39 assertEquals(stemAsString("sinigrin"), "sinigr");
40 }
41
42 public void testStemmingPalatalization() throws Exception {
43
44 assertEquals(stemAsString("venujúcich"), "venujúk");
45 assertEquals(stemAsString("turečtiny"), "tureck");
46 assertEquals(stemAsString("političtí"), "politick");
47 assertEquals(stemAsString("dokážete"), "dokáh");
48 assertEquals(stemAsString("zapíšte"), "zapísk");
49 }
50
51 public void testStemmingShortStrings() throws Exception {
52
53
54 assertEquals(stemAsString("očami"), "oča");
55 assertEquals(stemAsString("inému"), "inému");
56 assertEquals(stemAsString("cete"), "cet");
57 assertEquals(stemAsString("noch"), "noch");
58 assertEquals(stemAsString("hrách"), "hrách");
59 assertEquals(stemAsString("maata"), "maat");
60 assertEquals(stemAsString("vami"), "vam");
61 assertEquals(stemAsString("nové"), "nov");
62
63 assertEquals(stemAsString("ozov"), "ozov");
64 assertEquals(stemAsString("špin"), "špin");
65
66 assertEquals(stemAsString("najmä"), "najmä");
67 assertEquals(stemAsString("najml"), "najml");
68 }
69
70 public void testStemmingGeneral() throws Exception {
71
72 assertEquals(stemAsString("najznámejšími"), "známejš");
73 assertEquals(stemAsString("najat"), "naj");
74 assertEquals(stemAsString("bunkových"), "bunk");
75 assertEquals(stemAsString("vysočinami"), "vysok");
76 assertEquals(stemAsString("príčinách"), "prík");
77 assertEquals(stemAsString("najnovšími"), "novš");
78
79
80 assertEquals(stemAsString("najtestciných"), "testk");
81 }
82
83 public void testNonSlovak() throws Exception {
84
85 assertEquals(stemAsString("əliağa"), "əliağ");
86 assertEquals(stemAsString("año"), "año");
87 assertEquals(stemAsString("аблютомания"), "аблютомания");
88 assertEquals(stemAsString("вищій"), "вищій");
89 assertEquals(stemAsString("βικιπαίδεια"), "βικιπαίδεια");
90 assertEquals(stemAsString("ვიკიპედია"), "ვიკიპედია");
91 assertEquals(stemAsString("위키백과"), "위키백과");
92 assertEquals(stemAsString("ውክፔዲያ"), "ውክፔዲያ");
93 assertEquals(stemAsString("ᐅᐃᑭᐱᑎᐊ"), "ᐅᐃᑭᐱᑎᐊ");
94 }
95
96 }