@Test
public void testDecodeBigInteger()
    throws ClassNotFoundException, NoSuchMethodException, SecurityException,
    IllegalAccessException, IllegalArgumentException, InvocationTargetException {

  final Object[][] testParameters =
      new Object[][] {{"012", new BigInteger("10")},
          {"-014", new BigInteger("-12")},
          {"16", new BigInteger("16")},
          {"-16", new BigInteger("-16")},
          {"0x18", new BigInteger("24")},
          {"-0X20", new BigInteger("-32")},
          {"#22", new BigInteger("34")},
          {"-#24", new BigInteger("-36")}};
  for (final Object[] testParameter : testParameters) {
    BigInteger expected = (BigInteger) testParameter[1];
    String value = (String) testParameter[0];
    Method method = NumberUtils.class.getDeclaredMethod("decodeBigInteger", String.class);
    method.setAccessible(true);
    assertEquals(expected, method.invoke(NumberUtils.class, value));
  }
}