private void CalcSqrt(BigInteger N, BigInteger p) { BigInteger x = ModulusP.SqrtModP(N, p); BigInteger N1 = BigInteger.Remainder(x * x, p); Assert.IsTrue(BigInteger.Remainder(N - N1, p).IsZero); }
public void Test_09_CalcBits() { Assert.AreEqual(0, ModulusP.CalcBits(0)); Assert.AreEqual(1, ModulusP.CalcBits(1)); Assert.AreEqual(2, ModulusP.CalcBits(2)); Assert.AreEqual(2, ModulusP.CalcBits(3)); Assert.AreEqual(3, ModulusP.CalcBits(4)); Assert.AreEqual(3, ModulusP.CalcBits(5)); Assert.AreEqual(3, ModulusP.CalcBits(6)); Assert.AreEqual(3, ModulusP.CalcBits(7)); Assert.AreEqual(8, ModulusP.CalcBits(255)); Assert.AreEqual(9, ModulusP.CalcBits(256)); Assert.AreEqual(16, ModulusP.CalcBits(65535)); Assert.AreEqual(17, ModulusP.CalcBits(65536)); }