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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
public TestEnumerator(TestEnumerable enumerable, int from, int count) { _enumerable = enumerable; _from = from; _count = count; }
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)); }