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)); }