@Test
public void commonSuffixOfLengthTest() {

    // negative length suffixes are never common
    checkNotCommonSuffix("abc", "abc", -1);
    // null has no suffix
    checkNotCommonSuffix("abc", null, 0);
    checkNotCommonSuffix(null, null, 0);
    // any non-null string has 0-length suffix
    checkCommonSuffix("abc", "xx", 0);
    checkCommonSuffix("abc", "abc", 0);
    checkCommonSuffix("abc", "abc", 1);
    checkCommonSuffix("abc", "abc", 2);
    checkCommonSuffix("abc", "abc", 3);
    checkNotCommonSuffix("abc", "abc", 4);
    checkCommonSuffix("abcd", "cd", 1);
    checkCommonSuffix("abcd", "cd", 2);
    checkNotCommonSuffix("abcd", "cd", 3);
    checkCommonSuffix("abcd", "axcd", 1);
    checkCommonSuffix("abcd", "axcd", 2);
    checkNotCommonSuffix("abcd", "axcd", 3);
    checkNotCommonSuffix("abcx", "abcy", 1);
}