GeWuYou 43dcae0cf5 refactor(pipe): 重构函数式编程扩展方法为模块化结构
- 将原有的PipeExtensionsTests拆分为多个专门的测试类
- 创建ControlExtensionsTests用于控制流函数测试
- 创建EnumerableExtensionsTests用于集合操作函数测试
- 创建FunctionExtensionsTests用于高级函数操作测试
- 移除旧的综合测试文件中的多余测试方法
- 更新文档结构以反映新的模块化组织方式
- 重新整理README.md文档为模块化分类说明
2026-01-31 15:11:33 +08:00

72 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using GFramework.Core.functional.collections;
using NUnit.Framework;
namespace GFramework.Core.Tests.functional.collections;
/// <summary>
/// EnumerableExtensions扩展方法测试类用于验证集合函数式编程扩展方法的正确性
/// 包括Map、Filter、Reduce等集合操作功能的测试
/// </summary>
[TestFixture]
public class EnumerableExtensionsTests
{
#region Map Tests
/// <summary>
/// 测试Map方法 - 验证集合中的每个元素都能被正确转换
/// </summary>
[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
/// <summary>
/// 测试Filter方法 - 验证集合能够根据条件正确过滤
/// </summary>
[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
/// <summary>
/// 测试Reduce方法 - 验证集合能够正确归约为单个值
/// </summary>
[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
}