hjhan
|
7b007bddfa
|
refactor(swap-test): 抽取 TestableSwapEodPositionService 公共基类收敛重复 Stub
- 新建 TestableSwapEodPositionService 收敛 8/8 Stub 重复的高频 override
(PersistEodSwapPosition/SaveAllChanges/GetCurrencyRate/AddClientCash)
+ 统一 OptUserInfo 构造 + PersistedPositions/SaveChangesCount 输出捕获
- SwapEodPositionService.DealInterests 改 protected virtual(行为零变化)
- 8 个 ScenarioTest 改为继承基类,删除重复 override
- 消灭 DealInterestsScenarioTest/DealInterestsGoldenReplayTest 的反射调用
(typeof().GetMethod().Invoke → 直接调用 DealInterests)
验证:dotnet build 0 错误;dotnet test SwapModule 284通过/6跳过/0失败
|
2026-07-23 11:16:11 +08:00 |
|
张名锐
|
ce0908c53b
|
fix(swap): 修复浮动端已实现盈亏计算逻辑
- 添加了SetFloatingRealizedPnl方法统一计算已实现盈亏
- 已实现盈亏现在正确包含盯市、分红和费用三个组成部分
- 修复了多处RealizedPnl计算错误,确保数值准确性
- 为DF_008测试场景添加了专门的单元测试验证
- 移除了重复的盈亏计算代码,提高代码可维护性
|
2026-07-17 10:02:06 +08:00 |
|
hjhan
|
eaa4ed735a
|
test(swap): DealFloatPositions分红场景测试(盯市盈亏+分红+增值税)
扩展StubEodService override 3个外部依赖虚方法:
- GetUnderlyingPrice: 注入固定标的价格
- GetUnderlyingData: 注入标的缓存(增值税率)
- CalcBondPayment: 注入固定债券付息
新增3个分红场景测试:
- DF_005: CopyEodPosition盯市盈亏=(price-grossPrice)×qty×方向
- DF_006: 分红计算 TdPosiDividend=payment/(1+tax)×(1-tax)
- DF_007: 增值税调整(tax=6%): 100/1.06×0.94≈88.68
覆盖了cf2f8b6e分红重复计算修复所在的浮动腿归档链路。
验证: 108+3=111全通过。
|
2026-07-02 09:02:43 +08:00 |
|
hjhan
|
fee2203d6e
|
test(swap): DealFloatPositions浮动腿归档合成测试(testable迁移)
新增4个浮动腿归档场景测试:
- DF_001: 空持仓返回空列表
- DF_002: 首日无eod走SaveCurrentEodInitalPosi分支
- DF_003: SaveCurrentEodInitalPosi纯计算字段验证(数量/均价/类型)
- DF_004: 有eod无平仓走CopyEodPosition分支(分支选择验证)
DealFloatPositions和子方法无直接DB调用(数据从参数传入),
但CopyEodPosition/UpdateEodPosition依赖外部数据源
(DataCacheProvider/UnderlyingCodePrice/BondPaymentService),
值验证需后续加接缝。当前覆盖分支选择+首日初始化值验证。
验证: 104+4=108全通过。
|
2026-07-02 08:49:50 +08:00 |
|