public void TestRiskMetrics() { var settleDate = new Date(2016, 3, 3); var maturityDate = new Date(2030, 1, 31); var notional = 1000000.0; var annualCouponRate = 0.08; var couponMonth1 = 1; var couponDay1 = 31; var couponMonth2 = 7; var couponDay2 = 31; var booksCloseDateDays = 10; var zaCalendar = new Calendar("Test"); var bondR2030 = new BesaJseBond(maturityDate, notional, annualCouponRate, couponMonth1, couponDay1, couponMonth2, couponDay2, booksCloseDateDays, zaCalendar, TestHelpers.ZAR); var ytm = 0.097; var results = bondR2030.GetRiskMeasures(settleDate, ytm); Assert.AreEqual(-6.85006370, (double)results.GetScalar(BesaJseBondEx.Keys.Delta), 1e-8); Assert.AreEqual(-685.00637043, (double)results.GetScalar(BesaJseBondEx.Keys.RandsPerPoint), 1e-8); Assert.AreEqual(7.79691497, (double)results.GetScalar(BesaJseBondEx.Keys.ModifiedDuration), 1e-8); Assert.AreEqual(8.17506535, (double)results.GetScalar(BesaJseBondEx.Keys.Duration), 1e-8); Assert.AreEqual(87.10044101, (double)results.GetScalar(BesaJseBondEx.Keys.Convexity), 1e-8); }