示例#1
0
        public void One_initializes()
        {
            Fp6 _ = Fp6.One;

            Assert.AreEqual(Fp2.One, _.A, "A");
            Assert.AreEqual(Fp2.Zero, _.B, "B");
            Assert.AreEqual(Fp2.Zero, _.C, "C");
        }
示例#2
0
        public void Double_cross_check()
        {
            Fp2 a2 = new Fp2(Parameters.P / 2, Parameters.P / 4);
            Fp6 a  = new Fp6(a2, a2, a2);

            Assert.True(a.IsValid());

            Assert.AreEqual(a.Double(), a.Add(a));
        }
示例#3
0
        public void Square_cross_check()
        {
            Fp2 a2 = new Fp2(Parameters.P / 2, Parameters.P / 4);
            Fp6 a  = new Fp6(a2, a2, a2);

            Assert.True(a.IsValid());

            Assert.AreEqual(a.Squared(), a.Mul(a));
        }
示例#4
0
        public void Negate_negate()
        {
            Fp2 a2 = new Fp2(Parameters.P / 2, Parameters.P / 4);
            Fp6 a  = new Fp6(a2, a2, a2);

            Assert.True(a.IsValid());

            Assert.AreEqual(a, a.Negate().Negate());
        }
示例#5
0
        public void Inverse_mul_self()
        {
            Fp2 a2 = new Fp2(Parameters.P / 2, Parameters.P / 4);
            Fp6 a  = new Fp6(a2, a2, a2);

            Assert.True(a.IsValid());

            Assert.AreEqual(Fp6.One, a.Mul(a.Inverse()));
        }
示例#6
0
        public void Inverse_inverse()
        {
            Fp2 a2 = new Fp2(Parameters.P / 2, Parameters.P / 4);
            Fp6 a  = new Fp6(a2, a2, a2);

            Assert.True(a.IsValid());

            Assert.AreEqual(a, a.Inverse().Inverse());
        }
示例#7
0
        public void Unitary_inverse_seems_fine()
        {
            // ReSharper disable once EqualExpressionComparison
            Fp6  oneOneOne       = new Fp6(Fp2.One, Fp2.One, Fp2.One);
            Fp12 unitaryInverted = new Fp12(oneOneOne, oneOneOne).UnitaryInverse();

            Assert.AreEqual(oneOneOne, unitaryInverted.A, "A");
            Assert.AreEqual(oneOneOne.Negate(), unitaryInverted.B, "B");
        }
示例#8
0
        public void Add_negate()
        {
            Fp2 a2 = new Fp2(Parameters.P / 2, Parameters.P / 4);
            Fp6 a  = new Fp6(a2, a2, a2);

            Assert.True(a.IsValid());

            Assert.AreEqual(Fp6.Zero, a.Add(a.Negate()));
            Assert.AreEqual(Fp6.Zero, a.Negate().Add(a));
        }
示例#9
0
        public void Square_cross_check()
        {
            Fp2  a2  = new Fp2(Parameters.P / 2, Parameters.P / 4);
            Fp6  a6  = new Fp6(a2, a2, a2);
            Fp12 a12 = new Fp12(a6, a6);

            Assert.True(a12.IsValid());

            Assert.AreEqual(a12.Squared(), a12.Mul(a12));
        }
示例#10
0
        public void Inverse_mul_self_is_commutative_regression()
        {
            Fp2 a2 = new Fp2(Parameters.P / 2, Parameters.P / 4);
            Fp6 a  = new Fp6(a2, a2, a2);

            Assert.True(a.IsValid());

            Fp6 inv = a.Inverse();

            Assert.AreEqual(a.Mul(inv), inv.Mul(a));
        }