code: @ArgumentsChecked
  	@Throws(IllegalNullArgumentException.class)
  	public static boolean isInRange(@Nonnull final Number number, @Nonnull final BigInteger min, @Nonnull final BigInteger max) {
  		Check.notNull(number, "number");
  		Check.notNull(min, "min");
  		Check.notNull(max, "max");
  
  		BigInteger bigInteger = null;
  		if (number instanceof Byte || number instanceof Short || number instanceof Integer || number instanceof Long) {
  			bigInteger = BigInteger.valueOf(number.longValue());
  		} else if (number instanceof Float || number instanceof Double) {
  			bigInteger = new BigDecimal(number.doubleValue()).toBigInteger();
  		} else if (number instanceof BigInteger) {
  			bigInteger = (BigInteger) number;
  		} else if (number instanceof BigDecimal) {
  			bigInteger = ((BigDecimal) number).toBigInteger();
  		} else {
  			throw new IllegalNumberArgumentException("Return value is no known subclass of 'java.lang.Number': "
  					+ number.getClass().getName());
  		}
  		return max.compareTo(bigInteger) >= 0 && min.compareTo(bigInteger) <= 0;
  	}
docs: Test if a number is in an arbitrary range.
  
  @param number
  a number
  @param min
  lower boundary of the range
  @param max
  upper boundary of the range
  
  @return true if the given number is within the range