System.Linq.Tests.WhereTests.ToCollection C# (CSharp) Method

ToCollection() private method

private ToCollection ( IEnumerable source ) : void
source IEnumerable
return void
        public void ToCollection(IEnumerable<int> source)
        {
            foreach (IEnumerable<int> equivalent in new[] { source.Where(s => true), source.Where(s => true).Select(s => s) })
            {
                Assert.Equal(source, equivalent);
                Assert.Equal(source, equivalent.ToArray());
                Assert.Equal(source, equivalent.ToList());
                Assert.Equal(source.Count(), equivalent.Count()); // Count may be optimized. The above asserts do not imply this will pass.

                using (IEnumerator<int> en = equivalent.GetEnumerator())
                {
                    for (int i = 0; i < equivalent.Count(); i++)
                    {
                        Assert.True(en.MoveNext());
                    }

                    Assert.False(en.MoveNext()); // No more items, this should dispose.
                    Assert.Equal(0, en.Current); // Reset to default value

                    Assert.False(en.MoveNext()); // Want to be sure MoveNext after disposing still works.
                    Assert.Equal(0, en.Current);
                }
            }
        }
WhereTests