### Question:
ParamChecker { public static boolean isValidIdentifier(String token) { ParamChecker.notEmpty(token, "identifier"); for (int i = 0; i < token.length(); i++) { char c = token.charAt(i); if (!(c >= '0' && c <= '9') && !(c >= 'A' && c <= 'Z') && !(c >= 'a' && c <= 'z') && !(c == '_')) { return false; } if (i == 0 && (c >= '0' && c <= '9')) { return false; } } return true; }  static String notEmpty(String str, String name); static String notEmpty(String str, String name, String info); static List<String> notEmptyElements(List<String> list, String name); static String validateActionName(String actionName); static boolean isValidIdentifier(String token); static int checkGTZero(int value, String name); static int checkGEZero(int value, String name); static int checkLEZero(int value, String name); static int checkInteger(String val, String name); static String checkFrequency(String val); static Date checkDateOozieTZ(String date, String name); static TimeZone checkTimeZone(String tzStr, String name); static boolean isMember(String item, String[] members, String name);  }### Answer:
@Test public void testValidIdentifier() { assertTrue(ParamChecker.isValidIdentifier("a")); assertTrue(ParamChecker.isValidIdentifier("a1")); assertTrue(ParamChecker.isValidIdentifier("a_")); assertTrue(ParamChecker.isValidIdentifier("_")); assertFalse(ParamChecker.isValidIdentifier("!")); assertFalse(ParamChecker.isValidIdentifier("1")); }