snowballword/snowballword.go
func (w *SnowballWord) HasSuffixRunesIn(startPos, endPos int, suffixRunes []rune) bool {
	maxLen := endPos - startPos
	suffixLen := len(suffixRunes)
	if suffixLen > maxLen {
		return false
	}

	numMatching := 0
	for i := 0; i < maxLen && i < suffixLen; i++ {
		if w.RS[endPos-i-1] != suffixRunes[suffixLen-i-1] {
			break
		} else {
			numMatching += 1
		}
	}
	if numMatching == suffixLen {
		return true
	}
	return false
}
func (w *SnowballWord) HasSuffixRunesIn(startPos, endPos int, suffixRunes []rune) bool {
	maxLen := endPos - startPos
	suffixLen := len(suffixRunes)
	if suffixLen > maxLen {
		return false
	}

	numMatching := 0
	for i := 0; i < maxLen && i < suffixLen; i++ {
		if w.RS[endPos-i-1] != suffixRunes[suffixLen-i-1] {
			break
		} else {
			numMatching += 1
		}
	}
	if numMatching == suffixLen {
		return true
	}
	return false
}
// Return true if `w.RS[startPos:endPos]` ends with runes from `suffixRunes`.
// That is, the slice of runes between startPos and endPos have a suffix of
// suffixRunes.
//