refactor: 新增 DirectionRatio 方向因子纯函数, 替换7处三元式
多空方向(PositionType==Long?1:-1)和收付方向(xxx==收取?1:-1) 在两个上帝类里重复 15+处, +1/-1 写反是常见 bug 源。 新增 ReturnLegs/DirectionRatio.cs: - LongShort(positionType): 多头=+1, 空头=-1 - ReceivePay(direction): 收取=+1, 支付=-1 替换: - SwapEodPositionService: 6处 shortRatio 三元式(含注释1处) - SwapDealService: 1处 shortRatio + 1处 directionRatio 验证: 编译0错误, 全量511测试7失败(基线一致)。
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using YLErp.DBModels;
|
||||
using YLErp.DBModels.Enums;
|
||||
using YLErp.Modules.SwapModule.ReturnLegs;
|
||||
|
||||
namespace UnitTestProject.Modules.SwapModule.ReturnLegs
|
||||
{
|
||||
[TestClass]
|
||||
public class DirectionRatioTest
|
||||
{
|
||||
[TestMethod]
|
||||
public void LongShort_多头_返回1()
|
||||
=> Assert.AreEqual(1, DirectionRatio.LongShort((int)PositionTypeFlag.Long));
|
||||
|
||||
[TestMethod]
|
||||
public void LongShort_空头_返回负1()
|
||||
=> Assert.AreEqual(-1, DirectionRatio.LongShort((int)PositionTypeFlag.Short));
|
||||
|
||||
[TestMethod]
|
||||
public void ReceivePay_收取_返回1()
|
||||
=> Assert.AreEqual(1, DirectionRatio.ReceivePay((int)SwapDirectionEnum.收取));
|
||||
|
||||
[TestMethod]
|
||||
public void ReceivePay_支付_返回负1()
|
||||
=> Assert.AreEqual(-1, DirectionRatio.ReceivePay((int)SwapDirectionEnum.支付));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user