< Summary

Information
Class: Renci.SshNet.Security.Org.BouncyCastle.Math.Field.GenericPolynomialExtensionField
Assembly: Renci.SshNet
File(s): \home\appveyor\projects\ssh-net\src\Renci.SshNet\Security\BouncyCastle\math\field\GenericPolynomialExtensionField.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 23
Coverable lines: 23
Total lines: 63
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
.ctor(...)100%10%
get_Characteristic()100%10%
get_Dimension()100%10%
get_Subfield()100%10%
get_Degree()100%10%
get_MinimalPolynomial()100%10%
Equals(...)0%60%
GetHashCode()100%10%

File(s)

\home\appveyor\projects\ssh-net\src\Renci.SshNet\Security\BouncyCastle\math\field\GenericPolynomialExtensionField.cs

#LineLine coverage
 1using System;
 2
 3using Renci.SshNet.Security.Org.BouncyCastle.Utilities;
 4
 5namespace Renci.SshNet.Security.Org.BouncyCastle.Math.Field
 6{
 7    internal class GenericPolynomialExtensionField
 8        : IPolynomialExtensionField
 9    {
 10        protected readonly IFiniteField subfield;
 11        protected readonly IPolynomial minimalPolynomial;
 12
 013        internal GenericPolynomialExtensionField(IFiniteField subfield, IPolynomial polynomial)
 014        {
 015            this.subfield = subfield;
 016            this.minimalPolynomial = polynomial;
 017        }
 18
 19        public virtual BigInteger Characteristic
 20        {
 021            get { return subfield.Characteristic; }
 22        }
 23
 24        public virtual int Dimension
 25        {
 026            get { return subfield.Dimension * minimalPolynomial.Degree; }
 27        }
 28
 29        public virtual IFiniteField Subfield
 30        {
 031            get { return subfield; }
 32        }
 33
 34        public virtual int Degree
 35        {
 036            get { return minimalPolynomial.Degree; }
 37        }
 38
 39        public virtual IPolynomial MinimalPolynomial
 40        {
 041            get { return minimalPolynomial; }
 42        }
 43
 44        public override bool Equals(object obj)
 045        {
 046            if (this == obj)
 047            {
 048                return true;
 49            }
 050            GenericPolynomialExtensionField other = obj as GenericPolynomialExtensionField;
 051            if (null == other)
 052            {
 053                return false;
 54            }
 055            return subfield.Equals(other.subfield) && minimalPolynomial.Equals(other.minimalPolynomial);
 056        }
 57
 58        public override int GetHashCode()
 059        {
 060            return subfield.GetHashCode() ^ Integers.RotateLeft(minimalPolynomial.GetHashCode(), 16);
 061        }
 62    }
 63}