/** @tests java.math.BigInteger#andNot(java.math.BigInteger) */ @TestTargetNew( level = TestLevel.COMPLETE, notes = "", method = "andNot", args = {java.math.BigInteger.class}) public void test_andNotLjava_math_BigInteger() { for (BigInteger[] element : booleanPairs) { BigInteger i1 = element[0], i2 = element[1]; BigInteger res = i1.andNot(i2); int len = Math.max(i1.bitLength(), i2.bitLength()) + 66; for (int i = 0; i < len; i++) { assertTrue("andNot", (i1.testBit(i) && !i2.testBit(i)) == res.testBit(i)); } // asymmetrical i1 = element[1]; i2 = element[0]; res = i1.andNot(i2); for (int i = 0; i < len; i++) { assertTrue("andNot reversed", (i1.testBit(i) && !i2.testBit(i)) == res.testBit(i)); } } // regression for HARMONY-4653 try { BigInteger.ZERO.andNot(null); fail("should throw NPE"); } catch (Exception e) { // expected } BigInteger bi = new BigInteger(0, new byte[] {}); assertEquals(BigInteger.ZERO, bi.andNot(BigInteger.ZERO)); }