1package porterstemmer
2
3
4
5import (
6    "testing"
7)
8
9
10
11func TestStemWithoutLowerCasing(t *testing.T) {
12
13	i := 0
14
15	tests := make([]struct {
16		S []rune
17		Expected []rune
18	}, 3)
19
20
21	tests[i].S        = []rune("controll")
22	tests[i].Expected = []rune("control")
23	i++
24
25	tests[i].S        = []rune("roll")
26	tests[i].Expected = []rune("roll")
27	i++
28
29
30	for _,datum := range tests {
31
32		actual := make([]rune, len(datum.S))
33		copy(actual, datum.S)
34
35		actual = StemWithoutLowerCasing(actual)
36
37		lenActual   := len(actual)
38		lenExpected := len(datum.Expected)
39
40		equal := true
41		if 0 == lenActual && 0 == lenExpected {
42			equal = true
43		} else if lenActual != lenExpected {
44			equal = false
45		} else if actual[0] != datum.Expected[0]  {
46			equal = false
47		} else if actual[lenActual-1] != datum.Expected[lenExpected-1]  {
48			equal = false
49		} else {
50			for j := 0 ; j < lenActual ; j++ {
51
52				if actual[j] != datum.Expected[j]  {
53					equal = false
54				}
55			}
56		}
57
58		if !equal {
59			t.Errorf("Did NOT get what was expected for calling StemWithoutLowerCasing() on [%s]. Expect [%s] but got [%s]", string(datum.S), string(datum.Expected), string(actual))
60		}
61	}
62}
63