using GFramework.Core.functional.collections; using NUnit.Framework; namespace GFramework.Core.Tests.functional.collections; /// /// EnumerableExtensions扩展方法测试类,用于验证集合函数式编程扩展方法的正确性 /// 包括Map、Filter、Reduce等集合操作功能的测试 /// [TestFixture] public class EnumerableExtensionsTests { #region Map Tests /// /// 测试Map方法 - 验证集合中的每个元素都能被正确转换 /// [Test] public void Map_Should_Transform_Each_Element_In_Collection() { // Arrange var numbers = new[] {1, 2, 3, 4}; // Act var result = numbers.Map(x => x * x).ToArray(); // Assert Assert.That(result, Is.EquivalentTo([1, 4, 9, 16])); } #endregion #region Filter Tests /// /// 测试Filter方法 - 验证集合能够根据条件正确过滤 /// [Test] public void Filter_Should_Filter_Elements_Based_On_Predicate() { // Arrange var numbers = new[] {1, 2, 3, 4, 5, 6}; // Act var result = numbers.Filter(x => x % 2 == 0).ToArray(); // Assert Assert.That(result, Is.EquivalentTo([2, 4, 6])); } #endregion #region Reduce Tests /// /// 测试Reduce方法 - 验证集合能够正确归约为单个值 /// [Test] public void Reduce_Should_Reduce_Collection_To_Single_Value() { // Arrange var numbers = new[] {1, 2, 3, 4}; // Act var result = numbers.Reduce(0, (acc, x) => acc + x); // Assert Assert.That(result, Is.EqualTo(10)); } #endregion }