@Test
void testEdgeCaseGlobs() throws Exception {

    assertTrue(SearchPattern.wildcardMatch("", ""));
    assertTrue(SearchPattern.wildcardMatch("a", "a"));
    assertTrue(SearchPattern.wildcardMatch("*a", "a"));
    assertTrue(SearchPattern.wildcardMatch("*a", "ba"));
    assertTrue(SearchPattern.wildcardMatch("a*", "a"));
    assertTrue(SearchPattern.wildcardMatch("a*", "ab"));
    assertTrue(SearchPattern.wildcardMatch("a*a", "aa"));
    assertTrue(SearchPattern.wildcardMatch("a*a", "aba"));
    assertTrue(SearchPattern.wildcardMatch("a*a", "aaa"));
    assertTrue(SearchPattern.wildcardMatch("a*a*", "aa"));
    assertTrue(SearchPattern.wildcardMatch("a*a*", "aba"));
    assertTrue(SearchPattern.wildcardMatch("a*a*", "aaa"));
    assertTrue(SearchPattern.wildcardMatch("a*a*", "aaaaaaaaaaaaaaaaaaaaaaa"));
    assertTrue(SearchPattern.wildcardMatch(
        "a*b*a*b*a*b*a*b*a*",
        "akljd9gsdfbkjhaabajkhbbyiaahkjbjhbuykjakjhabkjhbabjhkaabbabbaaakljdfsjklababkjbsdabab"));
    Assertions.assertFalse(SearchPattern.wildcardMatch("a*na*ha", "anananahahanahana"));
}