### Question:
Gmp { public static int kronecker(BigInteger a, BigInteger p) { return INSTANCE.get().kroneckerImpl(a, p); } private  Gmp(); static void checkLoaded(); static int kronecker(BigInteger a, BigInteger p); static BigInteger modPowInsecure(BigInteger base, BigInteger exponent,
      BigInteger modulus); static BigInteger modInverse(BigInteger val, BigInteger modulus); static BigInteger exactDivide(BigInteger dividend, BigInteger divisor); static BigInteger gcd(BigInteger value1, BigInteger value2);  }### Answer:
@Test public void testKronecker() { assertEquals(0, kronecker(BigInteger.valueOf(0), BigInteger.valueOf(7))); assertEquals(1, kronecker(BigInteger.valueOf(1), BigInteger.valueOf(7))); assertEquals(1, kronecker(BigInteger.valueOf(2), BigInteger.valueOf(7))); assertEquals(-1, kronecker(BigInteger.valueOf(3), BigInteger.valueOf(7))); assertEquals(1, kronecker(BigInteger.valueOf(4), BigInteger.valueOf(7))); assertEquals(-1, kronecker(BigInteger.valueOf(5), BigInteger.valueOf(7))); assertEquals(-1, kronecker(BigInteger.valueOf(6), BigInteger.valueOf(7))); assertEquals(0, kronecker(BigInteger.valueOf(7), BigInteger.valueOf(7))); assertEquals(0, kronecker(BigInteger.valueOf(0), BigInteger.valueOf(9))); assertEquals(1, kronecker(BigInteger.valueOf(1), BigInteger.valueOf(9))); assertEquals(1, kronecker(BigInteger.valueOf(2), BigInteger.valueOf(9))); assertEquals(0, kronecker(BigInteger.valueOf(3), BigInteger.valueOf(9))); assertEquals(1, kronecker(BigInteger.valueOf(4), BigInteger.valueOf(9))); assertEquals(1, kronecker(BigInteger.valueOf(5), BigInteger.valueOf(9))); assertEquals(0, kronecker(BigInteger.valueOf(6), BigInteger.valueOf(9))); assertEquals(1, kronecker(BigInteger.valueOf(7), BigInteger.valueOf(9))); assertEquals(1, kronecker(BigInteger.valueOf(8), BigInteger.valueOf(9))); assertEquals(0, kronecker(BigInteger.valueOf(9), BigInteger.valueOf(9))); assertEquals(0, kronecker(BigInteger.valueOf(0), BigInteger.valueOf(8))); assertEquals(1, kronecker(BigInteger.valueOf(1), BigInteger.valueOf(8))); assertEquals(0, kronecker(BigInteger.valueOf(2), BigInteger.valueOf(8))); assertEquals(-1, kronecker(BigInteger.valueOf(3), BigInteger.valueOf(8))); assertEquals(0, kronecker(BigInteger.valueOf(4), BigInteger.valueOf(8))); assertEquals(-1, kronecker(BigInteger.valueOf(5), BigInteger.valueOf(8))); assertEquals(0, kronecker(BigInteger.valueOf(6), BigInteger.valueOf(8))); assertEquals(1, kronecker(BigInteger.valueOf(7), BigInteger.valueOf(8))); assertEquals(0, kronecker(BigInteger.valueOf(8), BigInteger.valueOf(8))); assertEquals(0, kronecker(BigInteger.valueOf(0), BigInteger.valueOf(-8))); assertEquals(1, kronecker(BigInteger.valueOf(1), BigInteger.valueOf(-8))); assertEquals(0, kronecker(BigInteger.valueOf(2), BigInteger.valueOf(-8))); assertEquals(-1, kronecker(BigInteger.valueOf(3), BigInteger.valueOf(-8))); assertEquals(0, kronecker(BigInteger.valueOf(4), BigInteger.valueOf(-8))); assertEquals(-1, kronecker(BigInteger.valueOf(5), BigInteger.valueOf(-8))); assertEquals(0, kronecker(BigInteger.valueOf(6), BigInteger.valueOf(-8))); assertEquals(1, kronecker(BigInteger.valueOf(7), BigInteger.valueOf(-8))); assertEquals(0, kronecker(BigInteger.valueOf(8), BigInteger.valueOf(-8))); }