Esempio n. 1
0
        public void ToDictionary()
        {
            Assert.Throws <ArgumentNullException>(() => ImmutableArrayExtensions.ToDictionary(manyElements, (Func <int, int>)null));
            Assert.Throws <ArgumentNullException>(() => ImmutableArrayExtensions.ToDictionary(manyElements, (Func <int, int>)null, n => n));
            Assert.Throws <ArgumentNullException>(() => ImmutableArrayExtensions.ToDictionary(manyElements, (Func <int, int>)null, n => n, EqualityComparer <int> .Default));
            Assert.Throws <ArgumentNullException>(() => ImmutableArrayExtensions.ToDictionary(manyElements, n => n, (Func <int, string>)null));
            Assert.Throws <ArgumentNullException>(() => ImmutableArrayExtensions.ToDictionary(manyElements, n => n, (Func <int, string>)null, EqualityComparer <int> .Default));

            var stringToString = ImmutableArrayExtensions.ToDictionary(manyElements, n => n.ToString(), n => (n * 2).ToString());

            Assert.Equal(stringToString.Count, manyElements.Length);
            Assert.Equal("2", stringToString["1"]);
            Assert.Equal("4", stringToString["2"]);
            Assert.Equal("6", stringToString["3"]);

            var stringToInt = ImmutableArrayExtensions.ToDictionary(manyElements, n => n.ToString());

            Assert.Equal(stringToString.Count, manyElements.Length);
            Assert.Equal(1, stringToInt["1"]);
            Assert.Equal(2, stringToInt["2"]);
            Assert.Equal(3, stringToInt["3"]);

            Assert.Throws <NullReferenceException>(() => ImmutableArrayExtensions.ToDictionary(emptyDefault, n => n));
            Assert.Throws <NullReferenceException>(() => ImmutableArrayExtensions.ToDictionary(emptyDefault, n => n, n => n));
            Assert.Throws <NullReferenceException>(() => ImmutableArrayExtensions.ToDictionary(emptyDefault, n => n, EqualityComparer <int> .Default));
            Assert.Throws <NullReferenceException>(() => ImmutableArrayExtensions.ToDictionary(emptyDefault, n => n, n => n, EqualityComparer <int> .Default));
        }