Files
zszq-trs/UnitTestProject/Modules/AppModule/InitEodPriceTest.cs
2024-05-09 14:06:26 +08:00

116 lines
3.8 KiB
C#

using System.Security.Cryptography;
namespace YLErp.Modules.AppModule
{
[TestClass]
public class InitEodPriceTest
{
[TestMethod("eod_commodity_future_price")]
public void Test_eod_commodity_future_price()
{
using var yldb = DbContextFactory.GetYLDbContext();
var underlyingCode = "RB2512";
var underlying = DataCacheProvider.GetUnderlyingDataSource().GetData(underlyingCode);
Assert.IsNotNull(underlying, "标的数据不存在");
var basePrice = 5000;
var updownStep = 400;
var startDate = new DateTime(2022, 1, 1);
var endDate = new DateTime(2024, 1, 1);
var sql = $@"delete from eod_commodity_future_price where FutureContractId='{underlyingCode}' and ValueDate
between '{startDate:yyyy-MM-dd}' and '{endDate:yyyy-MM-dd}';";
yldb.Database.ExecuteSqlRaw(sql);
for (var date = startDate; date < endDate; date = date.AddDays(1))
{
var dayOfWeek = date.DayOfWeek;
if (dayOfWeek == DayOfWeek.Sunday || dayOfWeek == DayOfWeek.Saturday)
{
continue;
}
var price = basePrice + RandomNumberGenerator.GetInt32(-updownStep, updownStep);
yldb.eod_commodity_future_price.Add(new eod_commodity_future_price
{
ClosePrice = price,
DataSource = "测试",
HighPrice = price * 1.03,
LowPrice = price * 0.97,
SettlePrice = price,
ReferencePrice = price,
OptDate = DateTime.Now,
OptId = 0,
OptName = "测试",
UnderlyingCode = underlyingCode,
UnderlyingId = underlying.id,
ValueDate = date
});
}
var changes = yldb.SaveChanges();
Assert.IsTrue(changes > 20);
}
[TestMethod("eod_stock_price")]
public void Test_eod_stock_price()
{
using var yldb = DbContextFactory.GetYLDbContext();
var underlyingCode = "000001.SZ";
var underlying = DataCacheProvider.GetUnderlyingDataSource().GetData(underlyingCode);
Assert.IsNotNull(underlying, "标的数据不存在");
var startDate = new DateTime(2022, 1, 1);
var endDate = new DateTime(2024, 1, 1);
var sql = $@"delete from eod_stock_price where StockId='{underlyingCode}'
and ValueDate between '{startDate:yyyy-MM-dd}' and '{endDate:yyyy-MM-dd}';";
yldb.Database.ExecuteSqlRaw(sql);
var price = 18d;
var updownStep = 10;
for (var date = startDate; date < endDate; date = date.AddDays(1))
{
var dayOfWeek = date.DayOfWeek;
if (dayOfWeek == DayOfWeek.Sunday || dayOfWeek == DayOfWeek.Saturday)
{
continue;
}
price += RandomNumberGenerator.GetInt32(-updownStep, updownStep)/10d;
yldb.eod_stock_price.Add(new eod_stock_price
{
ClosePrice = price,
DataSource = "测试",
HighPrice = price * 1.03,
LowPrice = price * 0.97,
SettlePrice = price,
ReferencePrice = price,
OptDate = DateTime.Now,
OptId = 0,
OptName = "测试",
UnderlyingCode = underlyingCode,
ValueDate = date,
UnderlyingStatus = "正常"
});
}
var changes = yldb.SaveChanges();
Assert.IsTrue(changes > 20);
}
}
}