public void AddMovesElementToBeginning() { var list = new RecentCollection<int>(5); list.Add(1); list.Add(2); // Добавляем уже существующий элемент. // "1" и "2" должны поменяться местами list.Add(1); Assert.AreEqual(2, list.Count); Assert.AreEqual(1, list[0]); Assert.AreEqual(2, list[1]); }
public void AddMovesElementToBeginning() { var list = new RecentCollection <int>(5); list.Add(1); list.Add(2); // Добавляем уже существующий элемент. // "1" и "2" должны поменяться местами list.Add(1); Assert.AreEqual(2, list.Count); Assert.AreEqual(1, list[0]); Assert.AreEqual(2, list[1]); }
public void AddDoesNotMoveFirstElement() { var list = new RecentCollection<int>(3); list.Add(1); list.Add(2); list.Add(3); // Повторно добавляем элемент "3" который уже в начале списка. // Порядок элементов не должен измениться list.Add(3); Assert.AreEqual(3, list.Count); Assert.AreEqual(3, list[0]); Assert.AreEqual(2, list[1]); Assert.AreEqual(1, list[2]); }
public void AddDeletesLastElement() { var list = new RecentCollection<int>(3); list.Add(1); list.Add(2); list.Add(3); // Закончилось место в списке. // Элемент "1" должен быть удален. list.Add(4); Assert.AreEqual(3, list.Count); Assert.AreEqual(4, list[0]); Assert.AreEqual(3, list[1]); Assert.AreEqual(2, list[2]); }
public void AddDoesNotMoveFirstElement() { var list = new RecentCollection <int>(3); list.Add(1); list.Add(2); list.Add(3); // Повторно добавляем элемент "3" который уже в начале списка. // Порядок элементов не должен измениться list.Add(3); Assert.AreEqual(3, list.Count); Assert.AreEqual(3, list[0]); Assert.AreEqual(2, list[1]); Assert.AreEqual(1, list[2]); }
static void Main() { ShowHelp(); RecentCollection<int> list = new RecentCollection<int>(5); bool shownFullMessage = false; for (;;) { Console.WriteLine("Введите число. Для выхода введите пустую строку."); Console.Write("> "); string line = Console.ReadLine(); if (string.IsNullOrWhiteSpace(line)) break; int num; if (!int.TryParse(line, out num)) continue; list.Add(num); if (list.IsFull && !shownFullMessage) { ShowFullMessage(); shownFullMessage = true; } int[] numbers = list.ToArray(); Console.WriteLine("{{ {0} }}", string.Join(", ", numbers)); Console.WriteLine(); } }
public void AddDeletesLastElement() { var list = new RecentCollection <int>(3); list.Add(1); list.Add(2); list.Add(3); // Закончилось место в списке. // Элемент "1" должен быть удален. list.Add(4); Assert.AreEqual(3, list.Count); Assert.AreEqual(4, list[0]); Assert.AreEqual(3, list[1]); Assert.AreEqual(2, list[2]); }
public void MoveNextThrowsInvalidOperationException_AfterListIsChanged() { var list = new RecentCollection <string>(10) { "Neo", "Morpheus", "Trinity", "Agent Smith", "Oracle" }; var enumerator = list.GetEnumerator(); list.Add("Merovingian"); enumerator.MoveNext(); }
public void CanSerializeAndDeserialize() { var list = new RecentCollection <int>(10); list.Add(3); list.Add(2); list.Add(1); var memStream = new MemoryStream(); var binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memStream, list); memStream.Position = 0; var listCopy = (RecentCollection <int>)binaryFormatter.Deserialize(memStream); memStream.Dispose(); Assert.IsNotNull(listCopy); Assert.AreEqual(list.Count, listCopy.Count); Assert.AreEqual(list.Capacity, listCopy.Capacity); var iter1 = list.GetEnumerator(); var iter2 = listCopy.GetEnumerator(); for (;;) { bool hasNext1 = iter1.MoveNext(); bool hasNext2 = iter2.MoveNext(); Assert.AreEqual(hasNext1, hasNext2); if (!hasNext1 && !hasNext2) { break; } Assert.AreEqual(iter1.Current, iter2.Current); } }
public void ContainsReturnsTrueForInt32Elements() { int[] values = new[] { int.MinValue, -100, 0, 100, int.MaxValue }; var list = new RecentCollection <int>(10); foreach (int s in values) { list.Add(s); } foreach (int s in values) { Assert.IsTrue(list.Contains(s)); } }
public void ContainsReturnsTrueForStringElements() { string[] values = new[] { "Neo", "Morpheus", "Trinity", "Agent Smith", "Oracle" }; var list = new RecentCollection <string>(10); foreach (string s in values) { list.Add(s); } foreach (string s in values) { Assert.IsTrue(list.Contains(s)); } }
public void AddThrowsOnNullValue() { var list = new RecentCollection<string>(3); list.Add(null); }
public void AddThrowsOnNullValue() { var list = new RecentCollection <string>(3); list.Add(null); }
public void MoveNextThrowsInvalidOperationException_AfterListIsChanged() { var list = new RecentCollection<string>(10) { "Neo", "Morpheus", "Trinity", "Agent Smith", "Oracle" }; var enumerator = list.GetEnumerator(); list.Add("Merovingian"); enumerator.MoveNext(); }
public void ContainsReturnsTrueForStringElements() { string[] values = new[] {"Neo", "Morpheus", "Trinity", "Agent Smith", "Oracle"}; var list = new RecentCollection<string>(10); foreach (string s in values) { list.Add(s); } foreach (string s in values) { Assert.IsTrue(list.Contains(s)); } }
public void ContainsReturnsTrueForInt32Elements() { int[] values = new[] { int.MinValue, -100, 0, 100, int.MaxValue }; var list = new RecentCollection<int>(10); foreach (int s in values) { list.Add(s); } foreach (int s in values) { Assert.IsTrue(list.Contains(s)); } }
public void CanSerializeAndDeserialize() { var list = new RecentCollection<int>(10); list.Add(3); list.Add(2); list.Add(1); var memStream = new MemoryStream(); var binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memStream, list); memStream.Position = 0; var listCopy = (RecentCollection<int>)binaryFormatter.Deserialize(memStream); memStream.Dispose(); Assert.IsNotNull(listCopy); Assert.AreEqual(list.Count, listCopy.Count); Assert.AreEqual(list.Capacity, listCopy.Capacity); var iter1 = list.GetEnumerator(); var iter2 = listCopy.GetEnumerator(); for (;;) { bool hasNext1 = iter1.MoveNext(); bool hasNext2 = iter2.MoveNext(); Assert.AreEqual(hasNext1, hasNext2); if (!hasNext1 && !hasNext2) break; Assert.AreEqual(iter1.Current, iter2.Current); } }