Example #1
0
        public void BeNotEqual()
        {
            Element element1 = new Element(0, 1, 2);
            Element element2 = new Element(2, 1, 0);

            Assert.IsFalse(element1.Equals(element2));
        }
Example #2
0
        public void Create()
        {
            Element element = new Element(0, 1, 2);

            Assert.IsNotNull(element);
            Assert.AreEqual(3, element.Size);
        }
Example #3
0
        public void BeEqual()
        {
            Element element1 = new Element(0, 1, 2);
            Element element2 = new Element(0, 1, 2);

            Assert.IsTrue(element1.Equals(element2));
            Assert.AreEqual(element1.GetHashCode(), element2.GetHashCode());
        }
Example #4
0
        public void CreateSwap()
        {
            Element element = Element.CreateSwap(4);
            Element swap = new Element(1, 0, 2, 3);

            Assert.IsNotNull(element);
            Assert.IsTrue(element.Equals(swap));
            Assert.AreEqual(2, element.Order);
        }
Example #5
0
        public void CreateRotation()
        {
            Element element = Element.CreateRotation(4);
            Element rotation = new Element(1, 2, 3, 0);

            Assert.IsNotNull(element);
            Assert.IsTrue(element.Equals(rotation));
            Assert.AreEqual(4, element.Order);
        }
Example #6
0
        public void CreateIdentity()
        {
            Element element = Element.CreateIdentity(4);
            Element identity = new Element(0, 1, 2, 3);

            Assert.IsNotNull(element);
            Assert.IsTrue(element.Equals(identity));
            Assert.AreEqual(1, element.Order);
        }
Example #7
0
 public void RaiseIfValueOutOfRange()
 {
     Element element = new Element(0, 1, 10);
 }
Example #8
0
 public void RaiseIfValueIsRepeated()
 {
     Element element = new Element(0, 1, 1);
 }
Example #9
0
        public void MultiplySwitch()
        {
            Element identity = new Element(0, 1, 2);
            Element element = new Element(1, 0, 2);

            Assert.AreEqual(identity, element.Multiply(element));
        }
Example #10
0
        public void MultiplyRotateRight()
        {
            Element identity = new Element(0, 1, 2);
            Element element = new Element(2, 0, 1);
            Element element2 = new Element(1, 2, 0);

            Assert.AreEqual(element2, element.Multiply(element));
            Assert.AreEqual(identity, element2.Multiply(element));
        }
Example #11
0
        public void MultiplyIdentity()
        {
            Element element = new Element(0, 1, 2);

            Assert.AreEqual(element, element.Multiply(element));
        }
Example #12
0
        public Element Multiply(Element element)
        {
            int k;
            int length1 = this.values.Length;
            int length2 = element.values.Length;
            int newlength = Math.Max(length1, length2);
            byte[] newvalues = new byte[newlength];

            for (k = 0; k < newlength; k++)
            {
                if (k >= length2)
                {
                    newvalues[k] = this.values[k];
                }
                else if (element.values[k] >= length1)
                {
                    newvalues[k] = element.values[k];
                }
                else
                {
                    newvalues[k] = this.values[element.values[k]];
                }
            }

            return new Element(newvalues);
        }