public void ModularInverseTest_NotRelativelyPrime()
        {
            var value   = new BigInteger(18);
            var modulus = new BigInteger(60);

            BigIntegerExtension.ModularInverse(value, modulus);
        }
        public void ModularInverseTest_OneZero()
        {
            var value   = new BigInteger(1);
            var modulus = new BigInteger(0);

            BigIntegerExtension.ModularInverse(value, modulus);
        }
        public void ModularInverseTest_Prime()
        {
            var value   = new BigInteger(881);
            var modulus = new BigInteger(991);
            var result  = BigIntegerExtension.ModularInverse(value, modulus);

            Assert.AreEqual(new BigInteger(9), result);
        }
        public void ModularInverseTest_RelativelyPrime()
        {
            var value   = new BigInteger(12);
            var modulus = new BigInteger(25);
            var result  = BigIntegerExtension.ModularInverse(value, modulus);

            Assert.AreEqual(new BigInteger(23), result);
        }