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); }
public BidirectionalList(BidirectionalList <T> unidirectionalList) { Reset(); foreach (T data in unidirectionalList) { Add(data); } }
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); }
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); }
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); }
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); }
private void OnDestroyed(Entity obj) { Entities.RemoveFast(_node); _node = null; }
protected Entity(int idsCount) : base(idsCount) { _node = Entities.Add((T)this); Destroyed += OnDestroyed; }
static Entity() { Entities = BidirectionalList <T> .New(); }
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(); }