Beispiel #1
0
        public void SLcircularList_AddToEndSearchRemove()
        {
            // Arrange
            var list = new SLcircularList <int>();

            // Act
            for (int i = 0; i < 100; i++)
            {
                list.AddToEnd(i);
            }
            list.Remove(15);
            list.Remove(94);
            // Assert
            for (int i = 0; i < 100; i++)
            {
                if (i != 15 && i != 94)
                {
                    Assert.AreEqual(list.Search(i).Data, i);
                }
                else
                {
                    Assert.AreEqual(list.Search(i), null);
                }
            }
        }
Beispiel #2
0
        public void SLcircularList_SmallList()
        {
            // Arrange
            var list1 = new SLcircularList <int>(1);
            var list2 = new SLcircularList <int>(1);
            var list3 = new SLcircularList <int>();

            // Act
            for (int i = 0; i < 2; i++)
            {
                list3.AddToEnd(i);
            }
            list1.Search(1);
            list2.AddToEnd(2);
            list1.Remove(1);
            list2.Remove(1);
            list2.Remove(2);
            for (int i = 0; i < 2; i++)
            {
                list3.Remove(i);
            }
            // Assert
            Assert.AreEqual(list1.StartNode, null);
            Assert.AreEqual(list2.StartNode, null);
            Assert.AreEqual(list3.StartNode, null);
        }
Beispiel #3
0
        public void Container_SLcircularList()
        {
            // Arrange
            SLcircularList <int> list = new SLcircularList <int>();
            Collection <int>     keys = new Collection <int>();

            // Act
            for (int i = 0; i < 100; i++)
            {
                list.AddToEnd(i);
                keys.Add(100 + i);
            }
            Container <int, int> container = new Container <int, int>(list, keys);

            container.RemoveByKey(120);
            container.RemoveByKey(180);
            // Assert
            for (int i = 100; i < 200; i++)
            {
                if (i != 120 && i != 180)
                {
                    Assert.AreEqual(container.GetValue(i), i - 100);
                }
                else
                {
                    Assert.AreEqual(container.GetValue(i), default);
                }
            }
        }
Beispiel #4
0
 public Set(SLcircularList <TValue> list)
 {
     foreach (ListNode <TValue> element in list)
     {
         if (element != null)
         {
             set.Add(element.Data);
         }
     }
 }
Beispiel #5
0
        public void SLcircularList_AddAfterSmallList()
        {
            // Arrange
            var list = new SLcircularList <int>(1);

            // Act
            list.AddAfter(1, 2);
            list.AddAfter(1, 3);
            // Assert
            Assert.AreEqual(list.StartNode.Data, 1);
            Assert.AreEqual(list.StartNode.Next.Data, 3);
            Assert.AreEqual(list.StartNode.Next.Next.Data, 2);
        }
Beispiel #6
0
        public Container(SLcircularList <TValue> list, Collection <TKey> keys)
        {
            int i = 0;

            foreach (ListNode <TValue> element in list)
            {
                var currentKey = keys[i];
                dictionary[currentKey] = element.Data;
                i++;
                if (i >= keys.Count)
                {
                    i = 0;
                }
            }
        }
Beispiel #7
0
        public void SLcircularList_AddAfter()
        {
            // Arrange
            var list = new SLcircularList <int>(1);

            // Act
            for (int i = 0; i < 100; i++)
            {
                list.AddAfter(1, i);
            }
            for (int i = 100; i < 200; i++)
            {
                list.AddAfter(35, i);
            }
            // Assert
            for (int i = 0; i < 200; i++)
            {
                Assert.AreEqual(list.Search(i).Data, i);
            }
            Assert.IsFalse(list.AddAfter(350, 4));
        }
Beispiel #8
0
 public CircularListOperator(SLcircularList <T> list)
 {
     this.list = list;
 }