>By chance I found a case where one of your tests in incorrect. In
>divideAndRemainder you have:
>
> BigInteger z = x.divide(BigInteger.valueOf(2L));
> y = x.divideAndRemainder(z);
> if (!y[0].equals(BigInteger.valueOf(2))) {
> failCount1++;
>
>However this test will fail if x == 3 (and only if x == 3)
>divideAndRemainder you have:
>
> BigInteger z = x.divide(BigInteger.valueOf(2L));
> y = x.divideAndRemainder(z);
> if (!y[0].equals(BigInteger.valueOf(2))) {
> failCount1++;
>
>However this test will fail if x == 3 (and only if x == 3)