/** * 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 SwaptionSurfaceExpirySimpleMoneynessParameterMetadata}. */ @Test public class SwaptionSurfaceExpirySimpleMoneynessParameterMetadataTest { private static final double TIME_TO_EXPIRY = 1.5d; private static final double SIMPLE_MONEYNESS = 0.25d; public void test_of_noLabel() { SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS); assertEquals(test.getIdentifier(), Pair.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS)); assertEquals(test.getLabel(), Pair.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS).toString()); assertEquals(test.getSimpleMoneyness(), SIMPLE_MONEYNESS); assertEquals(test.getYearFraction(), TIME_TO_EXPIRY); } public void test_of_withLabel() { String label = "(1.5Y, 0.25)"; SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS, label); assertEquals(test.getIdentifier(), Pair.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS)); assertEquals(test.getLabel(), label); assertEquals(test.getSimpleMoneyness(), SIMPLE_MONEYNESS); assertEquals(test.getYearFraction(), TIME_TO_EXPIRY); } public void test_builder_noLabel() { BeanBuilder<? extends SwaptionSurfaceExpirySimpleMoneynessParameterMetadata> builder = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.meta().builder(); Pair<Double, Double> pair = Pair.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS); builder.set(SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.meta().yearFraction(), TIME_TO_EXPIRY); builder.set(SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.meta().simpleMoneyness(), SIMPLE_MONEYNESS); SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test = builder.build(); assertEquals(test.getIdentifier(), pair); assertEquals(test.getLabel(), pair.toString()); assertEquals(test.getSimpleMoneyness(), SIMPLE_MONEYNESS); assertEquals(test.getYearFraction(), TIME_TO_EXPIRY); } public void test_builder_withLabel() { BeanBuilder<? extends SwaptionSurfaceExpirySimpleMoneynessParameterMetadata> builder = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.meta().builder(); Pair<Double, Double> pair = Pair.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS); String label = "(1.5Y, 0.25)"; builder.set(SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.meta().yearFraction(), TIME_TO_EXPIRY); builder.set(SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.meta().simpleMoneyness(), SIMPLE_MONEYNESS); builder.set(SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.meta().label(), label); SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test = builder.build(); assertEquals(test.getIdentifier(), pair); assertEquals(test.getLabel(), label); assertEquals(test.getSimpleMoneyness(), SIMPLE_MONEYNESS); assertEquals(test.getYearFraction(), TIME_TO_EXPIRY); } //------------------------------------------------------------------------- public void coverage() { SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test1 = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS); coverImmutableBean(test1); SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test2 = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.of(2.5d, 60d, "(2.5, 60)"); coverBeanEquals(test1, test2); } public void test_serialization() { SwaptionSurfaceExpirySimpleMoneynessParameterMetadata test = SwaptionSurfaceExpirySimpleMoneynessParameterMetadata.of(TIME_TO_EXPIRY, SIMPLE_MONEYNESS); assertSerialization(test); } }