changeset 40:8e8d0dc4ba20

Re #48: Collection equality * Add collection equality tests for dictionaries
author IBBoard <dev@ibboard.co.uk>
date Tue, 26 Apr 2011 14:31:36 +0000
parents 8b7aa46c4513
children 391b0b7f520e
files Collections/CollectionsTest.cs
diffstat 1 files changed, 94 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/Collections/CollectionsTest.cs	Tue Apr 26 14:15:31 2011 +0000
+++ b/Collections/CollectionsTest.cs	Tue Apr 26 14:31:36 2011 +0000
@@ -12,7 +12,7 @@
 	public class CollectionsTest
 	{
 		[Test]
-		public void TestSelfEquality()
+		public void TestListSelfEquality()
 		{
 			IList<int> list1 = new List<int>();
 			Assert.That(Collections.AreEqual(list1, list1), Is.True);
@@ -73,6 +73,99 @@
 			Assert.That(Collections.AreEqual(list1, list2), Is.False);
 			Assert.That(Collections.AreEqual(list2, list1), Is.False);
 		}
+
+		[Test]
+		public void TestDictionarySelfEquality()
+		{
+			IDictionary<string, int> dict1 = new Dictionary<string, int>();
+			Assert.That(Collections.AreEqual(dict1, dict1), Is.True);
+		}
+
+		[Test()]
+		public void TestEmptyDictionaryEquality()
+		{
+			IDictionary<string, int> dict1 = new Dictionary<string, int>();
+			IDictionary<string, int> dict2 = new Dictionary<string, int>();
+			Assert.That(Collections.AreEqual(dict1, dict2), Is.True);
+			Assert.That(Collections.AreEqual(dict2, dict1), Is.True);
+		}
+
+		[Test()]
+		public void TestEmptyAndNonEmptyDictionaryForInequality()
+		{
+			IDictionary<string, int> dict1 = new Dictionary<string, int>();
+			IDictionary<string, int> dict2 = new Dictionary<string, int>();
+			dict1.Add("key1", 1);
+			Assert.That(Collections.AreEqual(dict1, dict2), Is.False);
+			Assert.That(Collections.AreEqual(dict2, dict1), Is.False);
+		}
+
+		[Test]
+		public void TestDifferentNonEmptyDictionarysForInequality()
+		{
+			IDictionary<string, int> dict1 = new Dictionary<string, int>();
+			dict1.Add("key1", 1);
+			IDictionary<string, int> dict2 = new Dictionary<string, int>();
+			dict2.Add("key2", 2);
+			Assert.That(Collections.AreEqual(dict1, dict2), Is.False);
+			Assert.That(Collections.AreEqual(dict2, dict1), Is.False);
+		}
+
+		[Test]
+		public void TestMatchingNonEmptyDictionarysForEquality()
+		{
+			IDictionary<string, int> dict1 = new Dictionary<string, int>();
+			dict1.Add("key1", 1);
+			IDictionary<string, int> dict2 = new Dictionary<string, int>();
+			dict2.Add("key1", 1);
+			Assert.That(Collections.AreEqual(dict1, dict2), Is.True);
+			Assert.That(Collections.AreEqual(dict2, dict1), Is.True);
+		}
+
+		[Test]
+		public void TestDifferentKeyedDictionarysForInequality()
+		{
+			IDictionary<string, int> dict1 = new Dictionary<string, int>();
+			dict1.Add("key1", 1);
+			dict1.Add("key2", 2);
+			dict1.Add("key3", 3);
+			IDictionary<string, int> dict2 = new Dictionary<string, int>();
+			dict2.Add("key4", 1);
+			dict2.Add("key5", 2);
+			dict2.Add("key6", 3);
+			Assert.That(Collections.AreEqual(dict1, dict2), Is.False);
+			Assert.That(Collections.AreEqual(dict2, dict1), Is.False);
+		}
+
+		[Test]
+		public void TestDifferentValuedDictionarysForInequality()
+		{
+			IDictionary<string, int> dict1 = new Dictionary<string, int>();
+			dict1.Add("key1", 1);
+			dict1.Add("key2", 2);
+			dict1.Add("key3", 3);
+			IDictionary<string, int> dict2 = new Dictionary<string, int>();
+			dict2.Add("key3", 4);
+			dict2.Add("key2", 5);
+			dict2.Add("key1", 6);
+			Assert.That(Collections.AreEqual(dict1, dict2), Is.False);
+			Assert.That(Collections.AreEqual(dict2, dict1), Is.False);
+		}
+
+		[Test]
+		public void TestDifferentKeyValuePairingDictionarysForInequality()
+		{
+			IDictionary<string, int> dict1 = new Dictionary<string, int>();
+			dict1.Add("key1", 1);
+			dict1.Add("key2", 2);
+			dict1.Add("key3", 3);
+			IDictionary<string, int> dict2 = new Dictionary<string, int>();
+			dict2.Add("key1", 3);
+			dict2.Add("key2", 2);
+			dict2.Add("key3", 1);
+			Assert.That(Collections.AreEqual(dict1, dict2), Is.False);
+			Assert.That(Collections.AreEqual(dict2, dict1), Is.False);
+		}
 	}
 }