public virtual void TestBasicOperations()
        {
            TwoDimensionalMap <string, string, string> map = new TwoDimensionalMap <string, string, string>();

            NUnit.Framework.Assert.AreEqual(0, map.Size());
            NUnit.Framework.Assert.IsTrue(map.IsEmpty());
            map.Put("A", "B", "C");
            NUnit.Framework.Assert.AreEqual("C", map.Get("A", "B"));
            NUnit.Framework.Assert.AreEqual(1, map.Size());
            NUnit.Framework.Assert.IsFalse(map.IsEmpty());
            NUnit.Framework.Assert.IsTrue(map.Contains("A", "B"));
            NUnit.Framework.Assert.IsFalse(map.Contains("A", "C"));
            NUnit.Framework.Assert.IsFalse(map.Contains("B", "F"));
            map.Put("A", "B", "D");
            NUnit.Framework.Assert.AreEqual("D", map.Get("A", "B"));
            NUnit.Framework.Assert.AreEqual(1, map.Size());
            NUnit.Framework.Assert.IsFalse(map.IsEmpty());
            NUnit.Framework.Assert.IsTrue(map.Contains("A", "B"));
            NUnit.Framework.Assert.IsFalse(map.Contains("A", "C"));
            NUnit.Framework.Assert.IsFalse(map.Contains("B", "F"));
            map.Put("A", "C", "E");
            NUnit.Framework.Assert.AreEqual("D", map.Get("A", "B"));
            NUnit.Framework.Assert.AreEqual("E", map.Get("A", "C"));
            NUnit.Framework.Assert.AreEqual(2, map.Size());
            NUnit.Framework.Assert.IsFalse(map.IsEmpty());
            NUnit.Framework.Assert.IsTrue(map.Contains("A", "B"));
            NUnit.Framework.Assert.IsTrue(map.Contains("A", "C"));
            NUnit.Framework.Assert.IsFalse(map.Contains("B", "F"));
            map.Put("B", "F", "G");
            NUnit.Framework.Assert.AreEqual("D", map.Get("A", "B"));
            NUnit.Framework.Assert.AreEqual("E", map.Get("A", "C"));
            NUnit.Framework.Assert.AreEqual("G", map.Get("B", "F"));
            NUnit.Framework.Assert.AreEqual(3, map.Size());
            NUnit.Framework.Assert.IsFalse(map.IsEmpty());
            NUnit.Framework.Assert.IsTrue(map.Contains("A", "B"));
            NUnit.Framework.Assert.IsTrue(map.Contains("A", "C"));
            NUnit.Framework.Assert.IsTrue(map.Contains("B", "F"));
            map.Clear();
            NUnit.Framework.Assert.AreEqual(0, map.Size());
            NUnit.Framework.Assert.IsTrue(map.IsEmpty());
        }