예제 #1
0
 public void TooLargeValue()
 {
     var target = new ModuloArithmetic(3)
     {
         Value = 3
     };
 }
예제 #2
0
 public override void Add(TElement element)
 {
     if (CurrentIndex.Next != TopIndex)
     {
         RemoveAfter(CurrentIndex.Next);
     }
     base.Add(element);
     CurrentIndex = BottomIndex;
 }
예제 #3
0
        public void Increment()
        {
            var target = new ModuloArithmetic(3);

            Assert.AreEqual(1, (++target).Value);
            Assert.AreEqual(1, target.Value);
            Assert.AreEqual(1, (target++).Value);
            Assert.AreEqual(2, target.Value);
            target.MoveNext();
            Assert.AreEqual(0, target.Value);
        }
예제 #4
0
        public void Decrement()
        {
            var target = new ModuloArithmetic(4)
            {
                Value = 2
            };

            Assert.AreEqual(2, (target--).Value);
            Assert.AreEqual(0, (--target).Value);
            target.MovePrevious();
            Assert.AreEqual(3, target.Value);
        }
예제 #5
0
 public bool GoBackward()
 {
     if (!CanGoBackward)
     {
         return(false);
     }
     if (CurrentIndex == TopIndex)
     {
         CurrentIndex = CurrentIndex.InvalidItem;
     }
     else
     {
         CurrentIndex--;
     }
     return(true);
 }
예제 #6
0
        public void Construct()
        {
            var target = new ModuloArithmetic(3);

            Assert.IsTrue(target.IsValid);
            Assert.AreEqual(3, target.Divisor);
            Assert.AreEqual(0, target.Value);
            Assert.AreEqual(new ModuloArithmetic(3), target);
            Assert.IsTrue(new ModuloArithmetic(5) == target);
            Assert.IsTrue(target == 0);
            Assert.IsTrue(0 == target);
            Assert.IsFalse(new ModuloArithmetic(3) != target);
            Assert.IsFalse(target != 0);
            Assert.IsFalse(0 != target);
            Assert.IsFalse(new ModuloArithmetic(6, false).IsValid);
        }
예제 #7
0
 public override void Clear()
 {
     base.Clear();
     CurrentIndex = CurrentIndex.InvalidItem;
 }
예제 #8
0
 public void MinusValue()
 {
     var target = new ModuloArithmetic {
         Value = -1
     };
 }
예제 #9
0
 public void InitializeWidthMinusValue()
 {
     var target = new ModuloArithmetic(-1);
 }
예제 #10
0
 public void InitializeWidthZero()
 {
     var target = new ModuloArithmetic(0);
 }
예제 #11
0
 public void InitializeWidthOne()
 {
     var target = new ModuloArithmetic(1);
 }
예제 #12
0
 public void InvalidMinus()
 {
     var result = new ModuloArithmetic(3) - new ModuloArithmetic(4);
 }
예제 #13
0
 public TElement this[ModuloArithmetic index] {
     get => elements[index.Value];