public void BeNotEqual() { Element element1 = new Element(0, 1, 2); Element element2 = new Element(2, 1, 0); Assert.IsFalse(element1.Equals(element2)); }
public void Create() { Element element = new Element(0, 1, 2); Assert.IsNotNull(element); Assert.AreEqual(3, element.Size); }
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()); }
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); }
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); }
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); }
public void RaiseIfValueOutOfRange() { Element element = new Element(0, 1, 10); }
public void RaiseIfValueIsRepeated() { Element element = new Element(0, 1, 1); }
public void MultiplySwitch() { Element identity = new Element(0, 1, 2); Element element = new Element(1, 0, 2); Assert.AreEqual(identity, element.Multiply(element)); }
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)); }
public void MultiplyIdentity() { Element element = new Element(0, 1, 2); Assert.AreEqual(element, element.Multiply(element)); }
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); }