public void yield_from_price_discount() { double price = 0.99; LocalDate settlementDate = LocalDate.of(2018, 8, 17); double af = US_BILL.getDayCount().relativeYearFraction(settlementDate, MATURITY_DATE); double yieldExpected = (1.0d - price) / af; double yieldComputed = US_BILL.yieldFromPrice(price, settlementDate); assertEquals(yieldExpected, yieldComputed, TOLERANCE_PRICE); }
public void yield_from_price_intatmat() { Bill bill = US_BILL.toBuilder().yieldConvention(BillYieldConvention.INTEREST_AT_MATURITY).build(); double price = 0.99; LocalDate settlementDate = LocalDate.of(2018, 8, 17); double af = bill.getDayCount().relativeYearFraction(settlementDate, MATURITY_DATE); double yieldExpected = (1.0d / price - 1.0d) / af; double yieldComputed = bill.yieldFromPrice(price, settlementDate); assertEquals(yieldExpected, yieldComputed, TOLERANCE_PRICE); }