从山证v2.3.0拷贝
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using YLErp.BLL.Calculation;
|
||||
using YLErp.Modules.CalculationModule;
|
||||
using YLErp.Modules.DataProviderModule;
|
||||
|
||||
namespace YLErp.Modules.MarginModule.MarginTests
|
||||
{
|
||||
[TestClass]
|
||||
public class BasicCalcTest : UnitTestBase
|
||||
{
|
||||
[TestMethod("测试CalculatorHelper计算")]
|
||||
public void TestOldNew()
|
||||
{
|
||||
var req = new CalculateRisksForTradesReqV1
|
||||
{
|
||||
userId = "1",
|
||||
addVolRateDic = null,
|
||||
isAddVolPercent = false,
|
||||
isEodSettle = false,
|
||||
isUseTradeVol = PS.Config.IsTradeVol,
|
||||
overrideVolsForTrade = null,
|
||||
PreciseTimeMode = true,
|
||||
pricingRequest = QdpModule.QdpPricingRequest.PV_ONLY,
|
||||
valueDate = DateTime.Today,
|
||||
volType = "交易"
|
||||
};
|
||||
|
||||
using (var db = DbContextFactory.GetYLDbContext())
|
||||
{
|
||||
req.tradeList = db.trade.Where(t => t.ValidState != ConsGlobal.InValid && t.ClientId > 0
|
||||
&& t.TradeType != "结构化交易" && t.TradeStatus == "确认成交" && t.SpotPrice != null)
|
||||
.OrderByDescending(n => n.id).Take(10).ToList();
|
||||
}
|
||||
|
||||
var priceDic = new Dictionary<string, double>();
|
||||
|
||||
foreach (var t in req.tradeList)
|
||||
{
|
||||
if (!priceDic.ContainsKey(t.UnderlyingCode))
|
||||
{
|
||||
priceDic[t.UnderlyingCode] = t.SpotPrice.Value * 1.08;
|
||||
}
|
||||
}
|
||||
|
||||
req.priceProvider = (ManualPriceProvider)priceDic;
|
||||
|
||||
var resultNew = CalculatorHelper.CalculateRisksForTrades(req);
|
||||
|
||||
var resultNewDic = resultNew.Results.ToDictionary(n => n.Trade.id);
|
||||
|
||||
//var resultOld = CalculatorHelperOld.CalculateRisksForTrades(
|
||||
// req.userId, req.settleDate, req.tradeList, priceDic, req.pricingRequest,
|
||||
// req.addVolRateDic, req.isEndOfDate, req.volType, req.overrideVolsForTrade, req.isUseTradeVol,
|
||||
// req.PreciseTimeMode, req.isAddVolPercent);
|
||||
|
||||
Assert.AreEqual(resultNew.Results.Count, req.tradeList.Count());
|
||||
//Assert.AreEqual(resultOld.Results.Count, req.tradeList.Count());
|
||||
|
||||
//foreach (var ro in resultOld.Results)
|
||||
//{
|
||||
// if (resultNewDic.TryGetValue(ro.Trade.id, out var rn))
|
||||
// {
|
||||
// Assert.IsTrue(Math.Abs((ro.ValueResult.Pv) - (rn.ValueResult.Pv)) < 1e-6);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// Assert.Fail();
|
||||
// System.Diagnostics.Debug.WriteLine("没有计算出PV");
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user