void () { @NonNls final String longName = "ThisIsAQuiteLongNameWithParentheses().Dots.-Minuses-_UNDERSCORES_digits239:colons:/slashes\\AndOfCourseManyLetters"; final List<MinusculeMatcher> matching = new ArrayList<>(); final List<MinusculeMatcher> nonMatching = new ArrayList<>(); for (String s : ContainerUtil.ar("*", "*i", "*a", "*u", "T", "ti", longName, longName.substring(0, 20))) { matching.add(NameUtil.buildMatcher(s, NameUtil.MatchingCaseSensitivity.NONE)); } for (String s : ContainerUtil.ar("A", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "tag")) { nonMatching.add(NameUtil.buildMatcher(s, NameUtil.MatchingCaseSensitivity.NONE)); } PlatformTestUtil.startPerformanceTest("Matching", 4_000, () -> { for (int i = 0; i < 100_000; i++) { for (MinusculeMatcher matcher : matching) { Assert.assertTrue(matcher.matches(longName)); matcher.matchingDegree(longName); } for (MinusculeMatcher matcher : nonMatching) { Assert.assertFalse(matcher.matches(longName)); } } }).assertTiming(); }