public void Add_EmptyDictionary_Duplicates_ShouldThrowException() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, string>(); // Act dictionary.Add("Peter", "first"); dictionary.Add("Peter", "second"); }
public void Add_1000_Elements_Grow_ShouldWorkCorrectly() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, int>(1); // Act var expectedElements = new List<KeyValue<string, int>>(); for (int i = 0; i < 1000; i++) { dictionary.Add("key" + i, i); expectedElements.Add(new KeyValue<string, int>("key" + i, i)); } // Assert var actualElements = dictionary.ToList(); CollectionAssert.AreEquivalent(expectedElements, actualElements); }
public void AddOrReplace_WithDuplicates_ShouldWorkCorrectly() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, int>(); // Act dictionary.AddOrReplace("Peter", 555); dictionary.AddOrReplace("Maria", 999); dictionary.AddOrReplace("Maria", 123); dictionary.AddOrReplace("Maria", 6); dictionary.AddOrReplace("Peter", 5); // Assert var expectedElements = new KeyValue<string, int>[] { new KeyValue<string, int>("Peter", 5), new KeyValue<string, int>("Maria", 6) }; var actualElements = dictionary.ToList(); CollectionAssert.AreEquivalent(expectedElements, actualElements); }
public void Add_EmptyDictionary_NoDuplicates_ShouldAddElement() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, int>(); // Act var elements = new KeyValue<string, int>[] { new KeyValue<string, int>("Peter", 5), new KeyValue<string, int>("Maria", 6), new KeyValue<string, int>("George", 4), new KeyValue<string, int>("Kiril", 5) }; foreach (var element in elements) { dictionary.Add(element.Key, element.Value); } // Assert var actualElements = dictionary.ToList(); CollectionAssert.AreEquivalent(elements, actualElements); }
public void TryGetValue_NonExistingElement_ShouldReturnFalse() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<int, string>(); // Act string value; var result = dictionary.TryGetValue(555, out value); // Assert Assert.IsFalse(result); }
public void TryGetValue_ExistingElement_ShouldReturnTheValue() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<int, string>(); // Act dictionary.Add(555, "Peter"); string value; var result = dictionary.TryGetValue(555, out value); // Assert Assert.AreEqual("Peter", value); Assert.IsTrue(result); }
public void Remove_NonExistingElement_ShouldWorkCorrectly() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, double>(); dictionary.Add("Peter", 12.5); dictionary.Add("Maria", 99.9); // Assert Assert.AreEqual(2, dictionary.Count); // Act var removed = dictionary.Remove("George"); // Assert Assert.IsFalse(removed); Assert.AreEqual(2, dictionary.Count); }
public void Remove_5000_Elements_ShouldWorkCorrectly() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, int>(); var keys = new List<string>(); var count = 5000; for (int i = 0; i < count; i++) { var key = Guid.NewGuid().ToString(); keys.Add(key); dictionary.Add(key, i); } // Assert Assert.AreEqual(count, dictionary.Count); // Act & Assert keys.Reverse(); foreach (var key in keys) { dictionary.Remove(key); count--; Assert.AreEqual(count, dictionary.Count); } // Assert var expectedElements = new List<KeyValue<string, int>>(); var actualElements = dictionary.ToList(); CollectionAssert.AreEquivalent(expectedElements, actualElements); }
public void Indexer_AddReplace_WithDuplicates_ShouldWorkCorrectly() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, int>(); // Act dictionary["Peter"] = 555; dictionary["Maria"] = 999; dictionary["Maria"] = 123; dictionary["Maria"] = 6; dictionary["Peter"] = 5; // Assert var expectedElements = new KeyValue<string, int>[] { new KeyValue<string, int>("Peter", 5), new KeyValue<string, int>("Maria", 6) }; var actualElements = dictionary.ToList(); CollectionAssert.AreEquivalent(expectedElements, actualElements); }
public void Get_NonExistingElement_ShouldThrowException() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<int, string>(); // Act dictionary.Get(12345); }
public void Find_NonExistingElement_ShouldReturnNull() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, DateTime>(); // Act var element = dictionary.Find("Maria"); // Assert Assert.IsNull(element); }
public void Find_ExistingElement_ShouldReturnTheElement() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, DateTime>(); var name = "Maria"; var date = new DateTime(1995, 7, 18); dictionary.Add(name, date); // Act var element = dictionary.Find(name); // Assert var expectedElement = new KeyValue<string, DateTime>(name, date); Assert.AreEqual(expectedElement, element); }
public void Count_Empty_Add_Remove_ShouldWorkCorrectly() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, int>(); // Assert Assert.AreEqual(0, dictionary.Count); // Act & Assert dictionary.Add("Peter", 555); dictionary.AddOrReplace("Peter", 555); dictionary.AddOrReplace("Ivan", 555); Assert.AreEqual(2, dictionary.Count); // Act & Assert dictionary.Remove("Peter"); Assert.AreEqual(1, dictionary.Count); // Act & Assert dictionary.Remove("Peter"); Assert.AreEqual(1, dictionary.Count); // Act & Assert dictionary.Remove("Ivan"); Assert.AreEqual(0, dictionary.Count); }
public void ContainsKey_NonExistingElement_ShouldReturnFalse() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<DateTime, string>(); var date = new DateTime(1995, 7, 18); // Act var containsKey = dictionary.ContainsKey(date); // Assert Assert.IsFalse(containsKey); }
public void ContainsKey_ExistingElement_ShouldReturnTrue() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<DateTime, string>(); var date = new DateTime(1995, 7, 18); dictionary.Add(date, "Some value"); // Act var containsKey = dictionary.ContainsKey(date); // Assert Assert.IsTrue(containsKey); }
public void Values_ShouldWorkCorrectly() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, double>(); // Assert CollectionAssert.AreEquivalent(new string[0], dictionary.Values.ToArray()); // Arrange dictionary.Add("Peter", 12.5); dictionary.Add("Maria", 99.9); dictionary["Peter"] = 123.45; // Act var values = dictionary.Values; // Assert var expectedValues = new double[] { 99.9, 123.45 }; CollectionAssert.AreEquivalent(expectedValues, values.ToArray()); }
public void Indexer_ExistingElement_ShouldReturnTheValue() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<int, string>(); // Act dictionary.Add(555, "Peter"); var actualValue = dictionary[555]; // Assert Assert.AreEqual("Peter", actualValue); }
public void Indexer_NonExistingElement_ShouldThrowException() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<int, string>(); // Act var value = dictionary[12345]; }
public void Capacity_Grow_ShouldWorkCorrectly() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, int>(2); // Assert Assert.AreEqual(2, dictionary.Capacity); // Act dictionary.Add("Peter", 123); dictionary.Add("Maria", 456); // Assert Assert.AreEqual(4, dictionary.Capacity); // Act dictionary.Add("Tanya", 555); dictionary.Add("George", 777); // Assert Assert.AreEqual(8, dictionary.Capacity); }
public void Clear_ShouldWorkCorrectly() { // Arrange var dictionary = new DictionaryDataStructure.Dictionary<string, int>(); // Assert Assert.AreEqual(0, dictionary.Count); // Act dictionary.Clear(); // Assert Assert.AreEqual(0, dictionary.Count); // Arrange dictionary.Add("Peter", 5); dictionary.Add("George", 7); dictionary.Add("Maria", 3); // Assert Assert.AreEqual(3, dictionary.Count); // Act dictionary.Clear(); // Assert Assert.AreEqual(0, dictionary.Count); var expectedElements = new List<KeyValue<string, int>>(); var actualElements = dictionary.ToList(); CollectionAssert.AreEquivalent(expectedElements, actualElements); dictionary.Add("Peter", 5); dictionary.Add("George", 7); dictionary.Add("Maria", 3); // Assert Assert.AreEqual(3, dictionary.Count); }