/** * Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.pricer.swaption; import static com.opengamma.strata.collect.TestHelper.assertSerialization; import static com.opengamma.strata.collect.TestHelper.coverBeanEquals; import static com.opengamma.strata.collect.TestHelper.coverImmutableBean; import static org.testng.Assert.assertEquals; import org.joda.beans.BeanBuilder; import org.testng.annotations.Test; import com.opengamma.strata.collect.tuple.Pair; /** * Test {@link SwaptionSurfaceExpiryStrikeParameterMetadata}. */ @Test public class SwaptionSurfaceExpiryStrikeParameterMetadataTest { private static final double TIME_TO_EXPIRY = 1.5d; private static final double STRIKE = 0.25d; public void test_of_noLabel() { SwaptionSurfaceExpiryStrikeParameterMetadata test = SwaptionSurfaceExpiryStrikeParameterMetadata.of(TIME_TO_EXPIRY, STRIKE); assertEquals(test.getIdentifier(), Pair.of(TIME_TO_EXPIRY, STRIKE)); assertEquals(test.getLabel(), Pair.of(TIME_TO_EXPIRY, STRIKE).toString()); assertEquals(test.getStrike(), STRIKE); assertEquals(test.getYearFraction(), TIME_TO_EXPIRY); } public void test_of_withLabel() { String label = "(1.5Y, 0.25)"; SwaptionSurfaceExpiryStrikeParameterMetadata test = SwaptionSurfaceExpiryStrikeParameterMetadata.of(TIME_TO_EXPIRY, STRIKE, label); assertEquals(test.getIdentifier(), Pair.of(TIME_TO_EXPIRY, STRIKE)); assertEquals(test.getLabel(), label); assertEquals(test.getStrike(), STRIKE); assertEquals(test.getYearFraction(), TIME_TO_EXPIRY); } public void test_builder_noLabel() { BeanBuilder<? extends SwaptionSurfaceExpiryStrikeParameterMetadata> builder = SwaptionSurfaceExpiryStrikeParameterMetadata.meta().builder(); Pair<Double, Double> pair = Pair.of(TIME_TO_EXPIRY, STRIKE); builder.set(SwaptionSurfaceExpiryStrikeParameterMetadata.meta().yearFraction(), TIME_TO_EXPIRY); builder.set(SwaptionSurfaceExpiryStrikeParameterMetadata.meta().strike(), STRIKE); SwaptionSurfaceExpiryStrikeParameterMetadata test = builder.build(); assertEquals(test.getIdentifier(), pair); assertEquals(test.getLabel(), pair.toString()); assertEquals(test.getStrike(), STRIKE); assertEquals(test.getYearFraction(), TIME_TO_EXPIRY); } public void test_builder_withLabel() { BeanBuilder<? extends SwaptionSurfaceExpiryStrikeParameterMetadata> builder = SwaptionSurfaceExpiryStrikeParameterMetadata.meta().builder(); Pair<Double, Double> pair = Pair.of(TIME_TO_EXPIRY, STRIKE); String label = "(1.5Y, 0.25)"; builder.set(SwaptionSurfaceExpiryStrikeParameterMetadata.meta().yearFraction(), TIME_TO_EXPIRY); builder.set(SwaptionSurfaceExpiryStrikeParameterMetadata.meta().strike(), STRIKE); builder.set(SwaptionSurfaceExpiryStrikeParameterMetadata.meta().label(), label); SwaptionSurfaceExpiryStrikeParameterMetadata test = builder.build(); assertEquals(test.getIdentifier(), pair); assertEquals(test.getLabel(), label); assertEquals(test.getStrike(), STRIKE); assertEquals(test.getYearFraction(), TIME_TO_EXPIRY); } //------------------------------------------------------------------------- public void coverage() { SwaptionSurfaceExpiryStrikeParameterMetadata test1 = SwaptionSurfaceExpiryStrikeParameterMetadata.of(TIME_TO_EXPIRY, STRIKE); coverImmutableBean(test1); SwaptionSurfaceExpiryStrikeParameterMetadata test2 = SwaptionSurfaceExpiryStrikeParameterMetadata.of(2.5d, 60d, "(2.5, 60)"); coverBeanEquals(test1, test2); } public void test_serialization() { SwaptionSurfaceExpiryStrikeParameterMetadata test = SwaptionSurfaceExpiryStrikeParameterMetadata.of(TIME_TO_EXPIRY, STRIKE); assertSerialization(test); } }