I have a program that is generating pseudo random numbers(Only lowercase, uppercase and digits are allowed).
/**
 * 
 * @return - returns a random digit (from 0 to 9)
 * 
 */
int randomDigits() {
    return (int) (Math.random() * 10);
}
/**
 * 
 * @return - returns a random lowercase (from "a" to "z")
 */
char randomLowerCase() {
    return (char) ('a' + Math.random() * 26);
}
/**
 * 
 * @return - returns a random uppercase (from "A" to "Z")
 */
char randomUpperCase() {
    return (char) ('A' + Math.random() * 26);
}
/**
 * 
 * @return - returns a random number between 1 and 3.
 * 
 */
char randomChoice() {
    return (char) ((char) (Math.random() * 3) + 1);
}
/**
 * 
 * @param length
 *            - the length of the random string.
 * @return - returns a combined random string. All elements are builder side
 *         by side.
 * 
 *         We use the randomChoice method to get randomly upper, lower and
 *         digits.
 */
public String stringBuilder(int length) {
    StringBuilder result = new StringBuilder();
    int len = length;
    for (int i = 0; i < len; i++) {
        int ch = randomChoice();
        if (ch == 1) {
            result.append(randomDigits());
        }
        if (ch == 2) {
            result.append(randomLowerCase());
        }
        if (ch == 3) {
            result.append(randomUpperCase());
        }
    }
    return result.toString();
}
How can i make a test for that code. I try to test the range for the digits (form 0 to 9)
    int minRange = 0;
    int maxRange = 0;
    for (int i = 0; i < 100000; i++) {
        int result = item.randomDigits();
        if (result == 52) {
            minRange++;
        } else {
            if (result == 19) {
                maxRange++;
            }
        }
    }
    LOGGER.info("The min range in the digit is 0, and in the test appeared: {}", minRange);
    LOGGER.info("The max range in the digit is 9, and in the test appeared: {}", maxRange);
But i cant find how to test the lower or upper?
 
     
    