/** * Obtains an instance from a valuation date, map of values and time-series. * <p> * The valuation date and map of values must have the same number of scenarios. * * @param scenarioCount the number of scenarios * @param valuationDate the valuation dates associated with all scenarios * @param values the market data values, one for each scenario * @param timeSeries the time-series * @return a set of market data containing the values in the map */ public static ScenarioMarketData of( int scenarioCount, LocalDate valuationDate, Map<? extends MarketDataId<?>, MarketDataBox<?>> values, Map<? extends ObservableId, LocalDateDoubleTimeSeries> timeSeries) { return of(scenarioCount, MarketDataBox.ofSingleValue(valuationDate), values, timeSeries); }
public void of_null() { Map<MarketDataId<?>, MarketDataBox<?>> dataMap = new HashMap<>(); dataMap.put(ID1, null); Map<ObservableId, LocalDateDoubleTimeSeries> tsMap = ImmutableMap.of(ID1, TIME_SERIES); assertThrows(() -> ScenarioMarketData.of(2, VAL_DATE, dataMap, tsMap), IllegalArgumentException.class); }
public void of_badScenarios() { Map<MarketDataId<?>, MarketDataBox<?>> dataMap = ImmutableMap.of(ID1, MarketDataBox.ofScenarioValues(VAL1)); Map<ObservableId, LocalDateDoubleTimeSeries> tsMap = ImmutableMap.of(ID1, TIME_SERIES); assertThrows(() -> ScenarioMarketData.of(2, VAL_DATE, dataMap, tsMap), IllegalArgumentException.class); }
public void of_badType() { Map<MarketDataId<?>, MarketDataBox<?>> dataMap = ImmutableMap.of(ID1, MarketDataBox.ofScenarioValues("", "")); Map<ObservableId, LocalDateDoubleTimeSeries> tsMap = ImmutableMap.of(ID1, TIME_SERIES); assertThrows(() -> ScenarioMarketData.of(2, VAL_DATE, dataMap, tsMap), ClassCastException.class); }
public void test_of_repeated() { ScenarioMarketData test = ScenarioMarketData.of(1, MarketData.of(VAL_DATE, ImmutableMap.of(ID1, VAL1))); assertThat(test.getValuationDate()).isEqualTo(MarketDataBox.ofSingleValue(VAL_DATE)); assertThat(test.getValue(ID1)).isEqualTo(MarketDataBox.ofSingleValue(VAL1)); }
public void test_of() { Map<MarketDataId<?>, MarketDataBox<?>> dataMap = ImmutableMap.of(ID1, BOX1); Map<ObservableId, LocalDateDoubleTimeSeries> tsMap = ImmutableMap.of(ID1, TIME_SERIES); ScenarioMarketData test = ScenarioMarketData.of(2, VAL_DATE, dataMap, tsMap); assertThat(test.getValuationDate()).isEqualTo(MarketDataBox.ofSingleValue(VAL_DATE)); assertThat(test.containsValue(ID1)).isTrue(); assertThat(test.containsValue(ID2)).isFalse(); assertThat(test.getValue(ID1)).isEqualTo(BOX1); assertThrows(() -> test.getValue(ID2), MarketDataNotFoundException.class); assertThat(test.findValue(ID1)).hasValue(BOX1); assertThat(test.findValue(ID2)).isEmpty(); assertThat(test.getIds()).isEqualTo(ImmutableSet.of(ID1)); assertThat(test.getTimeSeries(ID1)).isEqualTo(TIME_SERIES); assertThat(test.getTimeSeries(ID2)).isEqualTo(LocalDateDoubleTimeSeries.empty()); }
public void test_of_noScenarios() { Map<MarketDataId<?>, MarketDataBox<?>> dataMap = ImmutableMap.of(ID1, MarketDataBox.empty()); ScenarioMarketData test = ScenarioMarketData.of(0, VAL_DATE, dataMap, ImmutableMap.of()); assertThat(test.getValuationDate()).isEqualTo(MarketDataBox.ofSingleValue(VAL_DATE)); assertThat(test.containsValue(ID1)).isTrue(); assertThat(test.containsValue(ID2)).isFalse(); assertThat(test.getValue(ID1)).isEqualTo(MarketDataBox.empty()); assertThrows(() -> test.getValue(ID2), MarketDataNotFoundException.class); assertThat(test.findValue(ID1)).hasValue(MarketDataBox.empty()); assertThat(test.findValue(ID2)).isEmpty(); assertThat(test.getIds()).isEqualTo(ImmutableSet.of(ID1)); assertThat(test.getTimeSeries(ID1)).isEqualTo(LocalDateDoubleTimeSeries.empty()); assertThat(test.getTimeSeries(ID2)).isEqualTo(LocalDateDoubleTimeSeries.empty()); }
public void test_scenarios() { Map<MarketDataId<?>, MarketDataBox<?>> dataMap = ImmutableMap.of(ID1, BOX1); Map<ObservableId, LocalDateDoubleTimeSeries> tsMap = ImmutableMap.of(ID1, TIME_SERIES); ScenarioMarketData test = ScenarioMarketData.of(2, VAL_DATE, dataMap, tsMap); MarketData scenario0 = test.scenario(0); MarketData scenario1 = test.scenario(1); assertThat(scenario0.getValue(ID1)).isEqualTo(BOX1.getValue(0)); assertThat(scenario1.getValue(ID1)).isEqualTo(BOX1.getValue(1)); List<Double> list = test.scenarios().map(s -> s.getValue(ID1)).collect(toImmutableList()); assertThat(list.get(0)).isEqualTo(BOX1.getValue(0)); assertThat(list.get(1)).isEqualTo(BOX1.getValue(1)); }