/** * Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.examples.finance.credit; import static com.opengamma.strata.examples.finance.credit.harness.TestHarness.TradeFactory.withCompany01; import java.time.LocalDate; import org.testng.annotations.Test; import com.opengamma.strata.examples.finance.credit.harness.TestHarness; import com.opengamma.strata.product.common.BuySell; @Test public class CdsPricingCompany01TminusOneTests { final LocalDate valuationDate = LocalDate.of(2014, 10, 16); final LocalDate cashSettleDate = LocalDate.of(2014, 10, 20); final double feeAmount = -3_694_117.73D; final BuySell buySell = BuySell.SELL; private TestHarness.TradeFactory onTrade() { return withCompany01(buySell, feeAmount, cashSettleDate); } public void test_pvs_on_company_01_t_minus_1() { onTrade().pvShouldBe(7_388_093.704033349).on(valuationDate); } public void test_par_rate_on_company_01_t_minus_1() { onTrade().parRateShouldBe(0.002800000823400466).on(valuationDate); } public void test_recovery01_on_company_01_minus_1() { onTrade().recovery01ShouldBe(-7.254387963563204).on(valuationDate); } public void test_jump_to_default_on_company_01_minus_1() { onTrade().jumpToDefaultShouldBe(-67_388_093.70403334).on(valuationDate); } public void test_ir01_parallel_par_on_company_01_t_minus_1() { onTrade().ir01ParallelParShouldBe(-972.8116886373609).on(valuationDate); } public void test_ir01_bucketed_par_on_company_01_t_minus_1() { onTrade() .ir01BucketedParShouldBe( -8.2257817937061190, -3.1341894399374723, -1.5775036029517650, -12.7210429105907680, -52.7185466177761550, -138.1065479721874000, -206.8782773185521400, -275.0521688470617000, -257.4313263930380300, -17.1471436154097320, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) .on(valuationDate); } public void test_cs01_parallel_par_on_company_01_t_minus_1() { onTrade().cs01ParallelParShouldBe(-51873.837977122515).on(valuationDate); } public void test_cs01_bucketed_par_on_company_01_t_minus_1() { onTrade() .cs01BucketedParShouldBe( -46.6094936728477500, -103.8638124940916900, -252.1060386206954700, -364.7911099912599000, -484.2151752971113000, -50640.1112342365100000) .on(valuationDate); } }