public void TestRemoveValueOnce()
        {
            MultiMap <int, int> m = new MultiMap <int, int>();

            m.Add(1, 1);
            m.Add(1, 2);
            m.Add(1, 2);
            m.removeValue(1, 2, true);
            Assert.AreEqual(m.dictionary[1][0], 1);
            Assert.AreEqual(m.dictionary[1].Count, 2);
        }
        public void TestRemoveValueEverywhere()
        {
            MultiMap <int, int> m = new MultiMap <int, int>();

            m.Add(1, 1);
            m.Add(1, 2);
            m.Add(1, 2);
            m.Add(2, 2);
            m.removeValue(2);
            Assert.AreEqual(m.dictionary[1][0], 1);
            Assert.AreEqual(m.dictionary.ContainsKey(2), false);
            Assert.AreEqual(m.dictionary[1].Count, 1);
        }
        public void TestRemoveValueAllAtKey()
        {
            MultiMap <int, int> m = new MultiMap <int, int>();

            m.Add(1, 1);
            m.Add(1, 2);
            m.Add(1, 2);
            m.Add(2, 2);
            m.removeValue(1, 2, false);
            Assert.AreEqual(m.dictionary[1][0], 1);
            Assert.AreEqual(m.dictionary[2][0], 2);
            Assert.AreEqual(m.dictionary[1].Count, 1);
        }