/**
* 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 CdsPricingCompany01TminusThreeTests {
final LocalDate valuationDate = LocalDate.of(2014, 10, 16);
final LocalDate cashSettleDate = LocalDate.of(2014, 10, 16);
final double feeAmount = -3_694_117.73D;
final BuySell buySell = BuySell.BUY;
private TestHarness.TradeFactory onTrade() {
return withCompany01(buySell, feeAmount, cashSettleDate);
}
public void test_pvs_on_company_01_t_minus_3() {
onTrade().pvShouldBe(-3_694_038.9745626342).on(valuationDate);
}
public void test_par_rate_on_company_01_t_minus_3() {
onTrade().parRateShouldBe(0.002800000823400466).on(valuationDate);
}
public void test_recovery01_on_company_01_t_minus_3() {
onTrade().recovery01ShouldBe(7.254387962631881).on(valuationDate);
}
public void test_jump_to_default_on_company_01_t_minus_3() {
onTrade().jumpToDefaultShouldBe(-56_305_961.02543736).on(valuationDate);
}
public void test_ir01_parallel_par_on_company_01_t_minus_3() {
onTrade().ir01ParallelParShouldBe(968.7077457923442).on(valuationDate);
}
public void test_ir01_bucketed_par_on_company_01_t_minus_3() {
onTrade()
.ir01BucketedParShouldBe(
4.1218389491550620,
3.1341894390061498,
1.5775036020204425,
12.7210429105907680,
52.7185466168448300,
138.1065479712560800,
206.8782773185521400,
275.0521688465960300,
257.4313263925724000,
17.1471436149440700,
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_3() {
onTrade().cs01ParallelParShouldBe(51873.83797712205).on(valuationDate);
}
public void test_cs01_bucketed_par_on_company_01_t_minus_3() {
onTrade()
.cs01BucketedParShouldBe(
46.6094936723820900,
103.8638124936260300,
252.1060386202298000,
364.7911099907942000,
484.2151752961799500,
50640.1112342355800000)
.on(valuationDate);
}
}