65 lines
2.3 KiB
C#
65 lines
2.3 KiB
C#
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using System;
|
|
using YLErp.DBModels;
|
|
using YLErp.DBModels.Consts;
|
|
|
|
namespace YLErp.Modules.DataProviderModule
|
|
{
|
|
[TestClass]
|
|
public class TradeHisDataProviderTest : YLUnitTestBase
|
|
{
|
|
[TestMethod]
|
|
public void Test1()
|
|
{
|
|
TradeHisData t;
|
|
|
|
DbContext.BulkDelete<TradeHisData>($"{nameof(t.TradeId)} in (1)");
|
|
|
|
var value = 0.1;
|
|
var datas = new TradeHisData[20];
|
|
var startDate = DateTime.Today.AddYears(1);
|
|
|
|
for (var i = 0; i < 20; i += 2)
|
|
{
|
|
datas[i] = new TradeHisData
|
|
{
|
|
TradeId = 1,
|
|
OptDate = DateTime.Now,
|
|
OptId = 0,
|
|
OptName = UserName,
|
|
Value = value + i * 0.05,
|
|
ValueDate = startDate.AddDays(i * 3),
|
|
ValueType = ConsTradeField.NoRiskRate
|
|
};
|
|
|
|
datas[i + 1] = datas[i].Clone();
|
|
datas[i + 1].ValueType = ConsTradeField.DividendRate;
|
|
}
|
|
|
|
DbContext.TradeHisData.AddRange(datas);
|
|
DbContext.SaveChanges();
|
|
|
|
for (var i = 0; i < 10; i += 2)
|
|
{
|
|
var provider = new TradeHisDataProvider(datas[i].ValueDate.AddDays(1));
|
|
|
|
Assert.AreEqual(datas[i].Value.ToString("F4"), provider.GetNoRiskRate(1)?.ToString("F4"));
|
|
Assert.AreEqual(datas[i + 1].Value.ToString("F4"), provider.GetDividendRate(1)?.ToString("F4"));
|
|
|
|
provider = new TradeHisDataProvider(datas[i].ValueDate.AddDays(2));
|
|
provider.Initialize();
|
|
|
|
Assert.AreEqual(datas[i].Value.ToString("F4"), provider.GetNoRiskRate(1)?.ToString("F4"));
|
|
Assert.AreEqual(datas[i + 1].Value.ToString("F4"), provider.GetDividendRate(1)?.ToString("F4"));
|
|
|
|
provider = new TradeHisDataProvider(datas[i].ValueDate.AddDays(6));
|
|
|
|
Assert.AreNotEqual(datas[i].Value.ToString("F4"), provider.GetNoRiskRate(1)?.ToString("F4"));
|
|
Assert.AreNotEqual(datas[i + 1].Value.ToString("F4"), provider.GetDividendRate(1)?.ToString("F4"));
|
|
}
|
|
|
|
DbContext.BulkDelete<TradeHisData>($"{nameof(t.TradeId)} in (1)");
|
|
}
|
|
}
|
|
}
|