com.opengamma.analytics.financial.equity.variance.VarianceSwapDefinitionTest.java Source code

Java tutorial

Introduction

Here is the source code for com.opengamma.analytics.financial.equity.variance.VarianceSwapDefinitionTest.java

Source

/**
 * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
 * 
 * Please see distribution for license.
 */
package com.opengamma.analytics.financial.equity.variance;

import org.apache.commons.lang.ArrayUtils;
import org.testng.annotations.Test;
import org.threeten.bp.LocalDate;
import org.threeten.bp.ZonedDateTime;

import com.opengamma.analytics.financial.instrument.varianceswap.VarianceSwapDefinition;
import com.opengamma.financial.convention.calendar.Calendar;
import com.opengamma.financial.convention.calendar.MondayToFridayCalendar;
import com.opengamma.financial.convention.frequency.PeriodFrequency;
import com.opengamma.timeseries.DoubleTimeSeries;
import com.opengamma.timeseries.date.localdate.ImmutableLocalDateDoubleTimeSeries;
import com.opengamma.util.money.Currency;

/**
 * 
 */
public class VarianceSwapDefinitionTest {

    private static final ZonedDateTime now = ZonedDateTime.now();
    private static final ZonedDateTime tPlus2 = now.plusDays(2);
    @SuppressWarnings("unused")
    private static final ZonedDateTime plus1y = now.plusYears(1);
    private static final ZonedDateTime plus5y = now.plusYears(5);
    private static final PeriodFrequency obsFreq = PeriodFrequency.DAILY;
    private static final Currency ccy = Currency.EUR;
    private static final Calendar WEEKENDCAL = new MondayToFridayCalendar("WEEKEND");
    private static final double obsPerYear = 250;
    private static final double volStrike = 0.25;
    private static final double volNotional = 1.0E6;

    private final DoubleTimeSeries<LocalDate> emptyTimeSeries = ImmutableLocalDateDoubleTimeSeries.EMPTY_SERIES;

    @Test
    public void forwardStarting() {
        // Construct a forward starting swap, Definition
        final VarianceSwapDefinition varSwapDefn = new VarianceSwapDefinition(tPlus2, plus5y, plus5y, obsFreq, ccy,
                WEEKENDCAL, obsPerYear, volStrike, volNotional);
        // Construct a forward starting swap, Derivative
        varSwapDefn.toDerivative(now, emptyTimeSeries, ArrayUtils.EMPTY_STRING_ARRAY);
    }

    @Test(expectedExceptions = IllegalArgumentException.class)
    // FIXME Failing on purpose so that we don't forget to extend
    public void weeklyObservations() {
        final PeriodFrequency freqWeek = PeriodFrequency.WEEKLY;
        new VarianceSwapDefinition(tPlus2, plus5y, plus5y, freqWeek, ccy, WEEKENDCAL, obsPerYear, volStrike,
                volNotional);
    }
}