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