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>(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))); } } } }