Example #1
0
        public void TestConstructorWrapsKeyValuePairs()
        {
            var pairs = new List <KeyValuePair <int, bool> >
            {
                new KeyValuePair <int, bool>(0, true),
                new KeyValuePair <int, bool>(1, false),
                new KeyValuePair <int, bool>(2, true),
                new KeyValuePair <int, bool>(3, false)
            };

            var toTest = new ReadOnlyDictionary <int, bool>(pairs);

            Assert.IsTrue(toTest.IsReadOnly);
            Assert.AreEqual(4, toTest.Count);
            Assert.IsTrue(toTest.ContainsKey(0));
            Assert.IsTrue(toTest.ContainsKey(1));
            Assert.IsTrue(toTest.ContainsKey(2));
            Assert.IsTrue(toTest.ContainsKey(3));
            Assert.AreEqual(true, toTest[0]);
            Assert.AreEqual(false, toTest[1]);
            Assert.AreEqual(true, toTest[2]);
            Assert.AreEqual(false, toTest[3]);

            Assert.IsTrue(pairs.OrderBy(kv => kv.Key).SequenceEqual(toTest.OrderBy(kv => kv.Key)));
            Assert.IsTrue(pairs.Select(kv => kv.Key).OrderBy(k => k).SequenceEqual(toTest.Keys.OrderBy(k => k)));
            Assert.IsTrue(pairs.Select(kv => kv.Value).OrderBy(v => v).SequenceEqual(toTest.Values.OrderBy(v => v)));
        }
Example #2
0
        public void TestConstructorWrapsDictionary()
        {
            var dict = new Dictionary <int, string>()
            {
                { 1, "One" },
                { 2, "Two" },
                { 3, "Three" }
            };

            var toTest = new ReadOnlyDictionary <int, string>(dict);

            Assert.IsTrue(toTest.IsReadOnly);
            Assert.AreEqual(3, toTest.Count);
            Assert.IsTrue(toTest.ContainsKey(1));
            Assert.IsTrue(toTest.ContainsKey(2));
            Assert.IsTrue(toTest.ContainsKey(3));
            Assert.AreEqual("One", toTest[1]);
            Assert.AreEqual("Two", toTest[2]);
            Assert.AreEqual("Three", toTest[3]);
            Assert.IsTrue(dict.OrderBy(kv => kv.Key).SequenceEqual(toTest.OrderBy(kv => kv.Key)));
            Assert.IsTrue(dict.Keys.OrderBy(k => k).SequenceEqual(toTest.Keys.OrderBy(k => k)));
            Assert.IsTrue(dict.Values.OrderBy(v => v).SequenceEqual(toTest.Values.OrderBy(v => v)));
        }
 public static IEnumerable <KeyValuePair <int, T> > CreateSortedDictionary <T>(
     ReadOnlyDictionary <int, T> unsortedDic)
 {
     return(unsortedDic.OrderBy <KeyValuePair <int, T>, int>((Func <KeyValuePair <int, T>, int>)(pair => pair.Key)).Take <KeyValuePair <int, T> >(unsortedDic.Count));
 }