51 lines
1.6 KiB
C#
51 lines
1.6 KiB
C#
using YLErp.Modules.VolatilityModule.ApiModule;
|
|
|
|
namespace YLErp.Modules.ApiModule
|
|
{
|
|
[TestClass]
|
|
public class TestUnderlyingVolServiceV2 : UnitTestBase
|
|
{
|
|
[TestMethod]
|
|
public void TestSaveAndQuery()
|
|
{
|
|
var volTableJson = ReadResourceFile("ApiModule\\voltable.json");
|
|
var volTable = JsonHelper.Parse<List<SingleVol>>(volTableJson);
|
|
var service = new UnderlyingVolServiceV2(OptUserInfo.SystemUser);
|
|
|
|
for (var i = 0; i < 10; i++)
|
|
{
|
|
foreach (var item in volTable)
|
|
{
|
|
item.Vol = 0.3 * (1 + (i / 100d));
|
|
}
|
|
|
|
var saveReq = new UnderlyingVolSaveApiRequestV2
|
|
{
|
|
ContractCode = "RB00",
|
|
VolType = "交易",
|
|
ValueDate = new DateTime(2022, 1, 1).AddDays(i),
|
|
VolTable = volTable
|
|
};
|
|
|
|
service.SaveVolSurface(saveReq);
|
|
}
|
|
|
|
for (var i = 0; i < 10; i++)
|
|
{
|
|
var qryRequest = new UnderlyingVolQueryApiRequestV2
|
|
{
|
|
UnderlyingCodes = new string[] { "RB00" },
|
|
ValueDate = new DateTime(2022, 1, 1).AddDays(i),
|
|
VolTypes = new string[] { "交易" }
|
|
};
|
|
|
|
var items = service.GetVolSurfaces(qryRequest);
|
|
|
|
var vol = 0.3 * (1 + (i / 100d));
|
|
|
|
Assert.IsTrue(items.All(n => n.VolTable.All(m => Math.Abs(m.Vol - vol) < 1e-6)));
|
|
}
|
|
}
|
|
}
|
|
}
|