Exemplo n.º 1
0
        public void TestMethodBidirect4()
        {
            var list = new BidirectionalList();

            list.AddToEnd(new Organization("Организация1", "Город1", 103));
            list.AddToEnd(new Organization("Организация2", "Город2", 500));
            list.AddToStart(new Organization("Организация3", "Город3", 303));

            var expectedList = new BidirectionalList();

            expectedList.AddToEnd(new Organization("Организация1", "Город1", 103));
            expectedList.AddToEnd(new Organization("Организация2", "Город2", 500));
            expectedList.AddToStart(new Organization("Организация3", "Город3", 303));


            list.RemoveAt(0);
            list.RemoveAt(1);
            list.RemoveAt(-5);
            list.RemoveAt(100);
            expectedList.RemoveAt(0);
            expectedList.RemoveAt(1);


            Assert.AreEqual(expectedList.Count, list.Count);
        }
Exemplo n.º 2
0
 public BidirectionalList(BidirectionalList <T> unidirectionalList)
 {
     Reset();
     foreach (T data in unidirectionalList)
     {
         Add(data);
     }
 }
Exemplo n.º 3
0
        public void TestMethodBidirect1()
        {
            var list = new BidirectionalList();

            list.AddToEnd(new Organization("Организация1", "Город1", 103));
            list.AddToEnd(new Organization("Организация2", "Город2", 500));
            list.AddToStart(new Organization("Организация3", "Город3", 303));

            var expectedList = new BidirectionalList();

            expectedList.AddToEnd(new Organization("Организация1", "Город1", 103));
            expectedList.AddToEnd(new Organization("Организация2", "Город2", 500));
            expectedList.AddToStart(new Organization("Организация3", "Город3", 303));


            list.TaskAddAt(2, new Organization("Организация4", "Город4", 125));
            expectedList.TaskAddAt(2, new Organization("Организация4", "Город4", 125));

            Organization actual   = null;
            Organization expected = null;
            int          i        = 0;

            foreach (Organization org1 in list)
            {
                if (i == 2)
                {
                    actual = org1;
                }
                i++;
            }


            i = 0;
            foreach (Organization org2 in expectedList)
            {
                if (i == 2)
                {
                    expected = org2;
                }
                i++;
            }


            list.ShowBackward();
            list.ShowForward();
            expectedList.ShowBackward();
            expectedList.ShowForward();

            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 4
0
        public void TestInsert()
        {
            var list = BidirectionalList <int> .New();

            var node1 = list.Add(1);
            var node2 = list.Add(2);
            var node3 = list.Add(3);
            var node4 = list.Add(4);
            var node5 = list.Add(5);

            foreach (var i in list)
            {
                Console.Write($"{i} ");
            }
            Console.Write('\n');
            list.RemoveFast(node5);
            foreach (var i in list)
            {
                Console.Write($"{i} ");
            }
            Console.Write('\n');
            list.RemoveFast(node4);
            foreach (var i in list)
            {
                Console.Write($"{i} ");
            }
            Console.Write('\n');
            list.RemoveFast(node3);
            foreach (var i in list)
            {
                Console.Write($"{i} ");
            }
            Console.Write('\n');
            list.RemoveFast(node2);
            foreach (var i in list)
            {
                Console.Write($"{i} ");
            }
            Console.Write('\n');
            list.RemoveFast(node1);
            foreach (var i in list)
            {
                Console.Write($"{i} ");
            }
            Console.Write('\n');

            Assert.AreSame(null, list.First);
            Assert.AreSame(null, list.Last);
        }
Exemplo n.º 5
0
        public void TestMethodBidirect3()
        {
            var list = new BidirectionalList();

            list.AddToEnd(new Organization("Организация1", "Город1", 103));
            list.AddToEnd(new Organization("Организация2", "Город2", 503));
            list.AddToStart(new Organization("Организация3", "Город3", 303));

            var expectedList = new BidirectionalList();

            list.DeleteList();
            list.ShowBackward();
            list.ShowForward();

            Assert.AreEqual(expectedList.Count, list.Count);
        }
Exemplo n.º 6
0
        public void TestMethodBidirect2()
        {
            var list = new BidirectionalList();

            list.AddToEnd(new Organization("Организация1", "Город1", 103));
            list.AddToEnd(new Organization("Организация2", "Город2", 500));
            list.AddToStart(new Organization("Организация3", "Город3", 303));

            var expectedList = new BidirectionalList();

            expectedList.AddToEnd(new Organization("Организация1", "Город1", 103));
            expectedList.AddToEnd(new Organization("Организация2", "Город2", 500));
            expectedList.AddToStart(new Organization("Организация3", "Город3", 303));


            list.RemoveAt(1);
            expectedList.RemoveAt(1);

            Organization actual   = null;
            Organization expected = null;
            int          i        = 0;

            foreach (Organization org1 in list)
            {
                if (i == 1)
                {
                    actual = org1;
                }
                i++;
            }


            i = 0;
            foreach (Organization org2 in expectedList)
            {
                if (i == 1)
                {
                    expected = org2;
                }
                i++;
            }


            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 7
0
 private void OnDestroyed(Entity obj)
 {
     Entities.RemoveFast(_node);
     _node = null;
 }
Exemplo n.º 8
0
 protected Entity(int idsCount) : base(idsCount)
 {
     _node      = Entities.Add((T)this);
     Destroyed += OnDestroyed;
 }
Exemplo n.º 9
0
 static Entity()
 {
     Entities = BidirectionalList <T> .New();
 }
Exemplo n.º 10
0
        static void Main(string[] args)
        {
            BidirectionalList list = new BidirectionalList();

            Console.WriteLine($"Print empty list:");
            Console.WriteLine(list.ToString());

            Console.WriteLine($"Add 2 nodes:");
            list.AddNode(10);
            list.AddNode(20);
            Console.WriteLine(list.ToString());

            Console.WriteLine($"Remove node idx=1:");
            list.RemoveNode(1);
            Console.WriteLine(list.ToString());

            Console.WriteLine($"Remove node idx=0:");
            list.RemoveNode(0);
            Console.WriteLine(list.ToString());

            Console.WriteLine($"Remove node idx=0:");
            list.RemoveNode(0);
            Console.WriteLine(list.ToString());

            Console.WriteLine($"Add 6 nodes:");
            list.AddNode(1);
            list.AddNode(2);
            list.AddNode(3);
            list.AddNode(4);
            list.AddNode(5);
            list.AddNodeAfter(null, 6);
            Console.WriteLine(list.ToString());

            Console.WriteLine($"Find wrong value:");
            var node = list.FindNode(103);

            Console.WriteLine(node == null? "not found": node.Value.ToString());
            Console.WriteLine();

            Console.WriteLine($"Add value 30 after value 3:");
            node = list.FindNode(3);
            list.AddNodeAfter(node, 30);
            Console.WriteLine(list.ToString());

            Console.WriteLine($"Add value 50 after value 5:");
            node = list.FindNode(5);
            list.AddNodeAfter(node, 50);
            Console.WriteLine(list.ToString());

            Console.WriteLine($"Remove index 5:");
            list.RemoveNode(5);
            Console.WriteLine(list.ToString());

            Console.WriteLine($"Remove first node:");
            list.RemoveNode(list.First);
            Console.WriteLine(list.ToString());

            Console.WriteLine($"Remove last node:");
            list.RemoveNode(list.Last);
            Console.WriteLine(list.ToString());

            Console.WriteLine($"Attempt to delete a Node that does not belong to the current list:");
            try
            {
                node = new Node(2);
                list.RemoveNode(node);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.ReadKey();
        }