/**
* Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.strata.data.scenario;
import static com.opengamma.strata.basics.currency.Currency.GBP;
import static com.opengamma.strata.basics.currency.Currency.USD;
import static com.opengamma.strata.collect.TestHelper.coverBeanEquals;
import static com.opengamma.strata.collect.TestHelper.coverImmutableBean;
import static java.util.stream.Collectors.toList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.testng.Assert.assertEquals;
import java.util.List;
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableList;
import com.opengamma.strata.basics.currency.CurrencyAmount;
import com.opengamma.strata.collect.array.DoubleArray;
/**
* Test {@link SingleScenarioArray}.
*/
@Test
public class SingleScenarioArrayTest {
public void create() {
SingleScenarioArray<String> test = SingleScenarioArray.of(3, "A");
assertEquals(test.getScenarioCount(), 3);
assertEquals(test.getValue(), "A");
assertEquals(test.get(0), "A");
assertEquals(test.get(1), "A");
assertEquals(test.get(2), "A");
assertEquals(test.stream().collect(toList()), ImmutableList.of("A", "A", "A"));
}
public void convertCurrencyAmount() {
FxRateScenarioArray rates = FxRateScenarioArray.of(GBP, USD, DoubleArray.of(1.61, 1.62, 1.63));
ScenarioFxRateProvider fxProvider = new TestScenarioFxRateProvider(rates);
SingleScenarioArray<CurrencyAmount> test = SingleScenarioArray.of(3, CurrencyAmount.of(GBP, 2));
ScenarioArray<?> convertedList = test.convertedTo(USD, fxProvider);
List<CurrencyAmount> expectedValues = ImmutableList.of(
CurrencyAmount.of(USD, 2 * 1.61),
CurrencyAmount.of(USD, 2 * 1.62),
CurrencyAmount.of(USD, 2 * 1.63));
DefaultScenarioArray<CurrencyAmount> expectedList = DefaultScenarioArray.of(expectedValues);
assertThat(convertedList).isEqualTo(expectedList);
}
public void coverage() {
SingleScenarioArray<String> test = SingleScenarioArray.of(3, "A");
coverImmutableBean(test);
SingleScenarioArray<String> test2 = SingleScenarioArray.of(2, "B");
coverBeanEquals(test, test2);
}
}