/** * Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.calc.runner; import static com.opengamma.strata.collect.TestHelper.assertThrowsIllegalArg; import static com.opengamma.strata.collect.TestHelper.coverBeanEquals; import static com.opengamma.strata.collect.TestHelper.coverImmutableBean; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import java.util.Optional; import org.testng.annotations.Test; import com.google.common.collect.ImmutableList; import com.opengamma.strata.calc.TestingMeasures; import com.opengamma.strata.calc.runner.CalculationTaskTest.TestTarget; /** * Test {@link CalculationParameters}. */ @Test public class CalculationParametersTest { private static final CalculationParameter PARAM = new TestParameter(); private static final CalculationParameter PARAM2 = new TestParameter2(); //------------------------------------------------------------------------- public void of() { CalculationParameters test = CalculationParameters.of(PARAM); assertEquals(test.getParameters().size(), 1); assertEquals(test.findParameter(TestParameter.class), Optional.of(PARAM)); } public void of_empty() { CalculationParameters test = CalculationParameters.of(); assertEquals(test.getParameters().size(), 0); } public void of_list() { CalculationParameters test = CalculationParameters.of(ImmutableList.of(PARAM)); assertEquals(test.getParameters().size(), 1); assertEquals(test.findParameter(TestParameter.class), Optional.of(PARAM)); } public void of_list_empty() { CalculationParameters test = CalculationParameters.of(ImmutableList.of()); assertEquals(test.getParameters().size(), 0); } public void getParameter() { CalculationParameters test = CalculationParameters.of(ImmutableList.of(PARAM)); assertEquals(test.getParameter(TestParameter.class), PARAM); assertThrowsIllegalArg(() -> test.getParameter(TestParameter2.class)); } //------------------------------------------------------------------------- public void test_combinedWith() { CalculationParameters test1 = CalculationParameters.of(PARAM); CalculationParameters test2 = CalculationParameters.of(ImmutableList.of()); assertEquals(test1.combinedWith(test2).getParameters().size(), 1); assertEquals(test1.combinedWith(test2).getParameters().get(TestParameter.class), PARAM); assertEquals(test2.combinedWith(test1).getParameters().size(), 1); assertEquals(test2.combinedWith(test1).getParameters().get(TestParameter.class), PARAM); assertEquals(test1.combinedWith(test1).getParameters().size(), 1); assertEquals(test1.combinedWith(test1).getParameters().get(TestParameter.class), PARAM); } public void test_with_add() { CalculationParameters test = CalculationParameters.of(PARAM).with(PARAM2); assertEquals(test.getParameters().size(), 2); } public void test_with_replace() { CalculationParameters test = CalculationParameters.of(PARAM).with(PARAM); assertEquals(test.getParameters().size(), 1); } public void test_without_typeFound() { CalculationParameters test = CalculationParameters.of(PARAM); CalculationParameters filtered1 = test.without(TestParameter.class); assertEquals(filtered1.getParameters().size(), 0); } public void test_without_typeNotFound() { CalculationParameters test = CalculationParameters.empty(); CalculationParameters filtered1 = test.without(TestParameter.class); assertEquals(filtered1.getParameters().size(), 0); } public void test_filter() { CalculationParameters test = CalculationParameters.of(PARAM); TestTarget target = new TestTarget(); CalculationParameters filtered1 = test.filter(target, TestingMeasures.PRESENT_VALUE); assertEquals(filtered1.getParameters().size(), 1); assertEquals(filtered1.getParameters().get(TestParameter.class), PARAM); } //------------------------------------------------------------------------- public void coverage() { CalculationParameters test = CalculationParameters.of(PARAM); coverImmutableBean(test); CalculationParameters test2 = CalculationParameters.empty(); coverBeanEquals(test, test2); assertNotNull(CalculationParameters.meta()); } }