test_class.declarator: modulus = new BigInteger("113")
test_class.modifier: private
test_class.original_string: private BigInteger modulus = new BigInteger("113");
test_class.type: BigInteger
test_class.var_name: modulus
test_class.file: core/src/test/java/dk/alexandra/fresco/framework/util/TestMathUtils.java
test_class.identifier: TestMathUtils
test_case.body: @Test
    public void testIsQuadraticResidue() {
      assertEquals(true, MathUtils.isQuadraticResidue(new BigInteger("2"), modulus));
      assertEquals(false, MathUtils.isQuadraticResidue(new BigInteger("23"), modulus));
    }
test_case.class_method_signature: TestMathUtils.testIsQuadraticResidue()
test_case.full_signature: @Test public void testIsQuadraticResidue()
test_case.identifier: testIsQuadraticResidue
test_case.invocations: assertEquals isQuadraticResidue assertEquals isQuadraticResidue
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testIsQuadraticResidue()
focal_class.declarator: TWO = BigInteger.valueOf(2)
focal_class.modifier: private static final
focal_class.original_string: private static final BigInteger TWO = BigInteger.valueOf(2);
focal_class.type: BigInteger
focal_class.var_name: TWO
focal_class.file: core/src/main/java/dk/alexandra/fresco/framework/util/MathUtils.java
focal_class.identifier: MathUtils
focal_class.class_method_signature: MathUtils.MathUtils()
focal_class.full_signature: private  MathUtils()
focal_class.identifier: MathUtils
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  MathUtils()
focal_class.class_method_signature: MathUtils.isQuadraticResidue(BigInteger value, BigInteger modulus)
focal_class.full_signature: public static boolean isQuadraticResidue(BigInteger value, BigInteger modulus)
focal_class.identifier: isQuadraticResidue
focal_class.modifiers: public static
focal_class.parameters: (BigInteger value, BigInteger modulus)
focal_class.return: boolean
focal_class.signature: boolean isQuadraticResidue(BigInteger value, BigInteger modulus)
focal_class.class_method_signature: MathUtils.modularSqrt(BigInteger value, BigInteger modulus)
focal_class.full_signature: public static BigInteger modularSqrt(BigInteger value, BigInteger modulus)
focal_class.identifier: modularSqrt
focal_class.modifiers: public static
focal_class.parameters: (BigInteger value, BigInteger modulus)
focal_class.return: BigInteger
focal_class.signature: BigInteger modularSqrt(BigInteger value, BigInteger modulus)
focal_class.class_method_signature: MathUtils.sum(List<BigInteger> summands, BigInteger modulus)
focal_class.full_signature: public static BigInteger sum(List<BigInteger> summands, BigInteger modulus)
focal_class.identifier: sum
focal_class.modifiers: public static
focal_class.parameters: (List<BigInteger> summands, BigInteger modulus)
focal_class.return: BigInteger
focal_class.signature: BigInteger sum(List<BigInteger> summands, BigInteger modulus)
focal_class.class_method_signature: MathUtils.getNonQuadraticResidue(BigInteger modulus)
focal_class.full_signature: private static BigInteger getNonQuadraticResidue(BigInteger modulus)
focal_class.identifier: getNonQuadraticResidue
focal_class.modifiers: private static
focal_class.parameters: (BigInteger modulus)
focal_class.return: BigInteger
focal_class.signature: BigInteger getNonQuadraticResidue(BigInteger modulus)
focal_class.class_method_signature: MathUtils.expressAsProductOfPowerOfTwo(BigInteger value)
focal_class.full_signature: private static Pair<BigInteger, Integer> expressAsProductOfPowerOfTwo(BigInteger value)
focal_class.identifier: expressAsProductOfPowerOfTwo
focal_class.modifiers: private static
focal_class.parameters: (BigInteger value)
focal_class.return: Pair<BigInteger, Integer>
focal_class.signature: Pair<BigInteger, Integer> expressAsProductOfPowerOfTwo(BigInteger value)
focal_method.body: public static boolean isQuadraticResidue(BigInteger value, BigInteger modulus) {
      // return n^((p - 1) / 2) == 1
      BigInteger res = value
          .modPow(modulus.subtract(BigInteger.ONE).shiftRight(1), modulus);
      return res.equals(BigInteger.ONE);
    }
focal_method.class_method_signature: MathUtils.isQuadraticResidue(BigInteger value, BigInteger modulus)
focal_method.full_signature: public static boolean isQuadraticResidue(BigInteger value, BigInteger modulus)
focal_method.identifier: isQuadraticResidue
focal_method.invocations: modPow shiftRight subtract equals
focal_method.modifiers: public static
focal_method.parameters: (BigInteger value, BigInteger modulus)
focal_method.return: boolean
focal_method.signature: boolean isQuadraticResidue(BigInteger value, BigInteger modulus)