using System; using System.Linq; using System.Utility; using NUnit.Framework; namespace Chernobyl.Extensions { [TestFixture, Description("Tests for the Func type")] public class FuncTests { #region Replace [Test, Description(".Replace produces correct set of values")] public void AddReplacer() { var values = Func.StaticFactory(1) .Replace(invokeIndex => (invokeIndex % 2) == 0, () => 0) .AsEnumerable() .Take(6).ToArray(); values.IsEqualTo(new [] { 0, 1, 0, 1, 0, 1 }, "Replace return"); } #endregion // Replace #region SkipReplace [Test, Description(".SkipReplace produces correct set of values")] public void AddSkipReplacer() { var values = Func.StaticFactory(0) .SkipReplace(3, () => 1) .AsEnumerable() .Take(6).ToArray(); values.IsEqualTo(new[] { 0, 0, 1, 0, 0, 1 }, "SkipReplace return"); } #endregion // SkipReplace } }