WordPatternRecognizer extends AbstractPatternRecognizer { static boolean isIdeographic(int codePoint) { return (Character.isIdeographic(codePoint) || ADDITIONAL_IDEOGRAMS.contains(codePoint)) && !REMOVED_IDEOGRAMS.contains(codePoint); }  static WordPatternRecognizer withCase(); static WordPatternRecognizer noCase(); @Override RecognitionResult recognize(String stringToRecognize, DataTypeEnum type); @Override Set<String> getValuePattern(String originalValue);  }
@Test public void checkRangesIdeographic() { List<Integer> issues = new ArrayList<>(); Pattern pattern = Pattern.compile(WordPattern.IDEOGRAM.getCaseSensitive()); for (int codePoint = 0; codePoint < Character.MAX_CODE_POINT; codePoint++) { String string = String.valueOf(Character.toChars(codePoint)); boolean matchPattern = pattern.matcher(string).matches(); boolean recognizeString = WordPatternRecognizer.isIdeographic(codePoint); Assert.assertTrue(matchPattern == recognizeString); if (matchPattern != recognizeString) issues.add(codePoint); } display(issues); }