public void ToReadOnly_Empty()
        {
            var xs = new List <int>();

            var e1 = CollectionExtensions.ToReadOnly <int>(enumerable: null);

            AssertEmpty(e1);

            var e2 = Array.Empty <int>().ToReadOnly();

            AssertEmpty(e2);

            var e3 = xs.ToReadOnly();

            AssertEmpty(e3);

            xs.Add(1);
            AssertEmpty(e3);

            Assert.AreSame(e1, e2);
            Assert.AreSame(e2, e3);

            var e4 = CollectionExtensions.ToReadOnly <int>(enumerable: null);
            var e5 = Array.Empty <int>().ToReadOnly();
            var e6 = new List <int>().ToReadOnly();

            Assert.AreSame(e3, e4);
            Assert.AreSame(e4, e5);
            Assert.AreSame(e5, e6);
        }
        public void AsCollection_Null()
        {
            var xs = default(int[]);

            var ys = CollectionExtensions.AsCollection(xs);

            Assert.AreEqual(0, ys.Count);
        }
        public void AsCollection_Array()
        {
            var xs = new[] { 2, 3, 5 };

            var ys = CollectionExtensions.AsCollection(xs);

            Assert.AreSame(xs, ys);
        }
        public void AsCollection_Enumerable()
        {
            var xs = new[] { 2, 3, 5 }.Select(x => x);

            var ys = CollectionExtensions.AsCollection(xs);

            Assert.IsTrue(xs.SequenceEqual(ys));
        }
        public void AsArray_Null()
        {
            var xs = default(int[]);

            var ys = CollectionExtensions.AsArray(xs);

            Assert.AreEqual(0, ys.Length);
        }