public void TraverseDepthFirstWithResultSelectorWithIndexArgWorksForSaltarelleEnumerable()
        {
            var enumerable = new TestEnumerable(1, 1);

            Assert.AreEqual(enumerable.TraverseDepthFirst(x => new[] { x + x }, (x, level) => new { x, level }).Take(5).ToArray(), new[] { new { x = 1, level = 0 }, new { x = 2, level = 1 }, new { x = 4, level = 2 }, new { x = 8, level = 3 }, new { x = 16, level = 4 } }, "Result should be correct");
            Assert.IsTrue(enumerable.EnumeratorDisposed, "Enumerator should be disposed");
        }
Example #2
0
        public void ForceWorksForSaltarelleEnumerable()
        {
            var enm = new TestEnumerable(1, 5);

            enm.Force();
            Assert.AreEqual(enm.LastReturnedValue, 5);
        }
        public void WhereWithIndexWorksForSaltarelleEnumerable()
        {
            var enumerable = new TestEnumerable(1, 5);

            Assert.AreEqual(enumerable.Where((i, idx) => idx > 2).ToArray(), new[] { 4, 5 }, "Result should be correct");
            Assert.IsTrue(enumerable.EnumeratorDisposed, "Enumerator should be disposed");
        }
        public void TraverseDepthFirstWithResultSelectorWorksForSaltarelleEnumerable()
        {
            var enumerable = new TestEnumerable(1, 1);

            Assert.AreEqual(enumerable.TraverseDepthFirst(x => new[] { x + x }, x => x * x).Take(5).ToArray(), new[] { 1, 4, 16, 64, 256 }, "Result should be correct");
            Assert.IsTrue(enumerable.EnumeratorDisposed, "Enumerator should be disposed");
        }
        public void SelectWithIndexFromSaltarelleEnumerableWorks()
        {
            var enumerable = new TestEnumerable(1, 3);

            Assert.AreEqual(enumerable.Select((i, n) => i * i + n).ToArray(), new[] { 1, 5, 11 }, "Result should be correct");
            Assert.IsTrue(enumerable.EnumeratorDisposed, "Enumerator should be disposed");
        }
        public void TraverseBreadthFirstWorksForSaltarelleEnumerable()
        {
            var enumerable = new TestEnumerable(1, 1);

            Assert.AreEqual(enumerable.TraverseBreadthFirst(x => new[] { x + x }).Take(5).ToArray(), new[] { 1, 2, 4, 8, 16 }, "Result should be correct");
            Assert.IsTrue(enumerable.EnumeratorDisposed, "Enumerator should be disposed");
        }
Example #7
0
        public void ToListWorksFromSatarelleEnumerable()
        {
            var enumerable = new TestEnumerable(1, 3);

            Assert.AreEqual(enumerable.ToList(), new[] { 1, 2, 3 }, "Result should be correct");
            Assert.IsTrue(enumerable.EnumeratorDisposed, "Enumerator should be disposed");
        }
Example #8
0
        public void TakeWorksForSaltarelleEnumerable()
        {
            var enumerable = new TestEnumerable(1, 1000);

            Assert.AreEqual(enumerable.Take(3).ToArray(), new[] { 1, 2, 3 }, "Result should be correct");
            Assert.IsTrue(enumerable.EnumeratorDisposed, "Enumerator should be disposed");
        }
Example #9
0
        public void MemoizeWorksForSaltarelleEnumerable()
        {
            var enumerable = new TestEnumerable(1, 5);
            var enm        = enumerable.Memoize();

            enm.Where(i => i % 2 == 0).Force();
            enm.Where(i => i % 2 == 0).Force();
            Assert.AreEqual(5, enumerable.NumMoveNextCalls);
        }
        public void CatchErrorWorksSaltarelleEnumerable()
        {
            string errorMessage = null;
            var    enumerable   = new TestEnumerable(1, 10)
            {
                ThrowOnIndex = 4
            };
            var result = enumerable.CatchError(ex => errorMessage = ex.Message).ToArray();

            Assert.AreEqual(result, new[] { 1, 2, 3, 4, });
            Assert.AreEqual(errorMessage, "error");
        }
Example #11
0
        public void CanForeachOverLinqJSEnumerable()
        {
            var enumerable = new TestEnumerable(1, 3);
            var result     = new List <int>();

            foreach (var i in enumerable.Select(i => i * i))
            {
                result.Add(i);
            }
            Assert.AreEqual(result, new[] { 1, 4, 9 }, "Result should be correct");
            Assert.IsTrue(enumerable.EnumeratorDisposed, "Enumerator should be disposed");
        }
Example #12
0
 public TestEnumerator(TestEnumerable enumerable, int from, int count)
 {
     _enumerable = enumerable;
     _from       = from;
     _count      = count;
 }
Example #13
0
        public void ShuffleWorksForSaltarelleEnumerable()
        {
            var result = new TestEnumerable(1, 5).Shuffle().ToArray();

            Assert.IsTrue(result.Contains(1) && result.Contains(2) && result.Contains(3) && result.Contains(4) && result.Contains(5));
        }