More robust BigInteger runtime test

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8335 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2006-01-09 23:11:17 +00:00
commit e7859d3bbd

View file

@ -22,11 +22,44 @@ public class long_long_runme {
check_ll(0x7FFFFFFFFFFFFFFFL);
check_ll(-10);
check_ull(new BigInteger("0"));
check_ull(new BigInteger("127"));
check_ull(new BigInteger("128"));
check_ull(new BigInteger("9223372036854775807")); //0x7FFFFFFFFFFFFFFFL
check_ull(new BigInteger("18446744073709551615")); //0xFFFFFFFFFFFFFFFFL
BigInteger testNumber = new BigInteger("0");
final int COUNT = 1025;
for (long i=0; i<COUNT; i++) {
check_ull(testNumber);
testNumber = testNumber.add(BigInteger.ONE);
}
testNumber = new BigInteger(Long.toString(256*256/2-COUNT));
for (long i=0; i<COUNT*2; i++) {
check_ull(testNumber);
testNumber = testNumber.add(BigInteger.ONE);
}
testNumber = new BigInteger(Long.toString(256*256-COUNT));
for (long i=0; i<COUNT*2; i++) {
check_ull(testNumber);
testNumber = testNumber.add(BigInteger.ONE);
}
testNumber = new BigInteger(Long.toString(0x7FFFFFFFFFFFFFFFL-COUNT));
for (long i=0; i<COUNT*2; i++) {
check_ull(testNumber);
testNumber = testNumber.add(BigInteger.ONE);
}
testNumber = new BigInteger("18446744073709551615"); //0xFFFFFFFFFFFFFFFFL
testNumber = testNumber.add(BigInteger.valueOf(1-COUNT));
for (long i=0; i<COUNT; i++) {
check_ull(testNumber);
testNumber = testNumber.add(BigInteger.ONE);
}
try {
long_long.setUll(null);
throw new RuntimeException("null check failed");
} catch (NullPointerException e) {
}
}
public static void check_ll(long ll) {