public void ElementAtOrDefault() { Assert.Equal(Enumerable.ElementAtOrDefault(manyElements, -1), ImmutableArrayExtensions.ElementAtOrDefault(manyElements, -1)); Assert.Equal(Enumerable.ElementAtOrDefault(manyElements, 3), ImmutableArrayExtensions.ElementAtOrDefault(manyElements, 3)); Assert.Throws <InvalidOperationException>(() => Enumerable.ElementAtOrDefault(emptyDefault, 0)); Assert.Throws <NullReferenceException>(() => ImmutableArrayExtensions.ElementAtOrDefault(emptyDefault, 0)); Assert.Equal(0, ImmutableArrayExtensions.ElementAtOrDefault(empty, 0)); Assert.Equal(0, ImmutableArrayExtensions.ElementAtOrDefault(empty, 1)); Assert.Equal(1, ImmutableArrayExtensions.ElementAtOrDefault(oneElement, 0)); Assert.Equal(3, ImmutableArrayExtensions.ElementAtOrDefault(manyElements, 2)); }