/** * Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.pricer.capfloor; import static com.opengamma.strata.basics.date.DayCounts.ACT_ACT_ISDA; import static com.opengamma.strata.basics.index.IborIndices.GBP_LIBOR_3M; import static com.opengamma.strata.basics.index.IborIndices.USD_LIBOR_3M; 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 java.time.LocalDate; import java.time.ZoneId; import java.time.ZonedDateTime; import org.testng.annotations.Test; import com.opengamma.strata.market.surface.ConstantSurface; import com.opengamma.strata.market.surface.Surfaces; /** * Test {@link IborCapletFloorletVolatilityCalibrationResult}. */ @Test public class IborCapletFloorletVolatilityCalibrationResultTest { protected static final ZonedDateTime VALUATION = LocalDate.of(2016, 3, 3).atTime(10, 0).atZone(ZoneId.of("America/New_York")); private static final ConstantSurface SURFACE = ConstantSurface.of( Surfaces.blackVolatilityByExpiryStrike("volSurface", ACT_ACT_ISDA), 0.15); private static final BlackIborCapletFloorletExpiryStrikeVolatilities VOLS = BlackIborCapletFloorletExpiryStrikeVolatilities.of(USD_LIBOR_3M, VALUATION, SURFACE); public void test_ofLestSquare() { double chiSq = 5.5e-6; IborCapletFloorletVolatilityCalibrationResult test = IborCapletFloorletVolatilityCalibrationResult.ofLeastSquare(VOLS, chiSq); assertEquals(test.getVolatilities(), VOLS); assertEquals(test.getChiSquare(), chiSq); } public void test_ofRootFind() { IborCapletFloorletVolatilityCalibrationResult test = IborCapletFloorletVolatilityCalibrationResult.ofRootFind(VOLS); assertEquals(test.getVolatilities(), VOLS); assertEquals(test.getChiSquare(), 0d); } //------------------------------------------------------------------------- public void coverage() { double chiSq = 5.5e-12; IborCapletFloorletVolatilityCalibrationResult test1 = IborCapletFloorletVolatilityCalibrationResult.ofLeastSquare(VOLS, chiSq); coverImmutableBean(test1); IborCapletFloorletVolatilityCalibrationResult test2 = IborCapletFloorletVolatilityCalibrationResult.ofRootFind( BlackIborCapletFloorletExpiryStrikeVolatilities.of(GBP_LIBOR_3M, VALUATION, SURFACE)); coverBeanEquals(test1, test2); } public void test_serialization() { IborCapletFloorletVolatilityCalibrationResult test = IborCapletFloorletVolatilityCalibrationResult.ofRootFind(VOLS); assertSerialization(test); } }