public virtual void test_ofRates_currency_source() { FxRateLookup test = FxRateLookup.ofRates(EUR, OBS_SOURCE); MarketData marketData = ImmutableMarketData.builder(VAL_DATE).addValue(FxRateId.of(GBP, USD, OBS_SOURCE), FxRate.of(GBP, USD, 1.5d)).build(); assertEquals(test.fxRateProvider(marketData).fxRate(GBP, USD), 1.5d); }
public virtual void test_ofMatrix_source() { FxRateLookup test = FxRateLookup.ofMatrix(FxMatrixId.of(OBS_SOURCE)); MarketData marketData = ImmutableMarketData.builder(VAL_DATE).addValue(FxMatrixId.of(OBS_SOURCE), FxMatrix.of(GBP, USD, 1.5d)).build(); assertEquals(test.fxRateProvider(marketData).fxRate(GBP, USD), 1.5d); }
//------------------------------------------------------------------------- public virtual void coverage_rates() { FxRateLookup test = FxRateLookup.ofRates(); coverImmutableBean((ImmutableBean)test); FxRateLookup test2 = FxRateLookup.ofRates(EUR); coverBeanEquals((ImmutableBean)test, (ImmutableBean)test2); }
public virtual void coverage_matrix() { FxRateLookup test = FxRateLookup.ofMatrix(); coverImmutableBean((ImmutableBean)test); FxRateLookup test2 = FxRateLookup.ofMatrix(FxMatrixId.of(OBS_SOURCE)); coverBeanEquals((ImmutableBean)test, (ImmutableBean)test2); }
public virtual void test_serialization() { FxRateLookup test1 = FxRateLookup.ofRates(); assertSerialization((ImmutableBean)test1); FxRateLookup test2 = FxRateLookup.ofMatrix(); assertSerialization((ImmutableBean)test2); }
//------------------------------------------------------------------------- public virtual void test_of_map() { ImmutableMap <Currency, CurveId> discounts = ImmutableMap.of(USD, CURVE_ID_DSC); ImmutableMap <Index, CurveId> forwards = ImmutableMap.of(USD_LIBOR_3M, CURVE_ID_FWD); RatesMarketDataLookup test = RatesMarketDataLookup.of(discounts, forwards); assertEquals(test.queryType(), typeof(RatesMarketDataLookup)); assertEquals(test.DiscountCurrencies, ImmutableSet.of(USD)); assertEquals(test.getDiscountMarketDataIds(USD), ImmutableSet.of(CURVE_ID_DSC)); assertEquals(test.ForwardIndices, ImmutableSet.of(USD_LIBOR_3M)); assertEquals(test.getForwardMarketDataIds(USD_LIBOR_3M), ImmutableSet.of(CURVE_ID_FWD)); assertThrowsIllegalArg(() => test.getDiscountMarketDataIds(GBP)); assertThrowsIllegalArg(() => test.getForwardMarketDataIds(GBP_LIBOR_3M)); assertEquals(test.ObservableSource, ObservableSource.NONE); assertEquals(test.FxRateLookup, FxRateLookup.ofRates()); assertEquals(test.requirements(USD), FunctionRequirements.builder().valueRequirements(CURVE_ID_DSC).outputCurrencies(USD).build()); assertEquals(test.requirements(USD, USD_LIBOR_3M), FunctionRequirements.builder().valueRequirements(CURVE_ID_DSC, CURVE_ID_FWD).timeSeriesRequirements(IndexQuoteId.of(USD_LIBOR_3M)).outputCurrencies(USD).build()); assertEquals(test.requirements(ImmutableSet.of(USD), ImmutableSet.of(USD_LIBOR_3M)), FunctionRequirements.builder().valueRequirements(CURVE_ID_DSC, CURVE_ID_FWD).timeSeriesRequirements(IndexQuoteId.of(USD_LIBOR_3M)).outputCurrencies(USD).build()); assertThrowsIllegalArg(() => test.requirements(ImmutableSet.of(USD), ImmutableSet.of(GBP_LIBOR_3M))); assertEquals(test.ratesProvider(MOCK_MARKET_DATA), DefaultLookupRatesProvider.of((DefaultRatesMarketDataLookup)test, MOCK_MARKET_DATA)); }
public virtual void test_jodaSerialization() { ImmutableMap <Currency, CurveId> discounts = ImmutableMap.of(USD, CURVE_ID_DSC); ImmutableMap <Index, CurveId> forwards = ImmutableMap.of(USD_LIBOR_3M, CURVE_ID_FWD); DefaultRatesMarketDataLookup test = DefaultRatesMarketDataLookup.of(discounts, forwards, ObservableSource.NONE, FxRateLookup.ofRates()); string xml = JodaBeanSer.PRETTY.xmlWriter().write(test); assertEquals(xml.Contains("<entry key=\"USD-LIBOR-3M\">"), true); assertEquals(xml.Contains("<fixingDateOffset>"), false); assertEquals(xml.Contains("<effectiveDateOffset>"), false); }
public virtual void test_serialization() { ImmutableMap <Currency, CurveId> discounts = ImmutableMap.of(USD, CURVE_ID_DSC); ImmutableMap <Index, CurveId> forwards = ImmutableMap.of(USD_LIBOR_3M, CURVE_ID_FWD); DefaultRatesMarketDataLookup test = DefaultRatesMarketDataLookup.of(discounts, forwards, ObservableSource.NONE, FxRateLookup.ofRates()); assertSerialization(test); Curve curve = ConstantCurve.of(Curves.discountFactors("DSC", ACT_360), 0.99); //JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET: //ORIGINAL LINE: java.util.Map<? extends com.opengamma.strata.data.MarketDataId<?>, ?> valuesMap = com.google.common.collect.ImmutableMap.of(CURVE_ID_DSC, curve, CURVE_ID_FWD, curve); IDictionary <MarketDataId <object>, ?> valuesMap = ImmutableMap.of(CURVE_ID_DSC, curve, CURVE_ID_FWD, curve); MarketData md = MarketData.of(date(2016, 6, 30), valuesMap); assertSerialization(test.marketDataView(md)); assertSerialization(test.ratesProvider(md)); }
//------------------------------------------------------------------------- public virtual void coverage() { ImmutableMap <Currency, CurveId> discounts = ImmutableMap.of(USD, CURVE_ID_DSC); ImmutableMap <Index, CurveId> forwards = ImmutableMap.of(USD_LIBOR_3M, CURVE_ID_FWD); DefaultRatesMarketDataLookup test = DefaultRatesMarketDataLookup.of(discounts, forwards, ObservableSource.NONE, FxRateLookup.ofRates()); coverImmutableBean(test); ImmutableMap <Currency, CurveId> discounts2 = ImmutableMap.of(GBP, CURVE_ID_DSC); ImmutableMap <Index, CurveId> forwards2 = ImmutableMap.of(GBP_LIBOR_3M, CURVE_ID_FWD); DefaultRatesMarketDataLookup test2 = DefaultRatesMarketDataLookup.of(discounts2, forwards2, OBS_SOURCE, FxRateLookup.ofRates(EUR)); coverBeanEquals(test, test2); // related coverage coverImmutableBean((ImmutableBean)test.marketDataView(MOCK_CALC_MARKET_DATA)); DefaultRatesScenarioMarketData.meta(); coverImmutableBean((ImmutableBean)test.marketDataView(MOCK_MARKET_DATA)); DefaultRatesMarketData.meta(); coverImmutableBean((ImmutableBean)test.marketDataView(MOCK_MARKET_DATA).ratesProvider()); DefaultLookupRatesProvider.meta(); }
private LookupScenarioFxRateProvider(ScenarioMarketData marketData, FxRateLookup lookup) { this.marketData = ArgChecker.notNull(marketData, "marketData"); this.lookup = ArgChecker.notNull(lookup, "lookup"); }
// obtains an instance, returning the interface type to make type system happy at call site internal static ScenarioFxRateProvider of(ScenarioMarketData marketData, FxRateLookup lookup) { return(new LookupScenarioFxRateProvider(marketData, lookup)); }
//------------------------------------------------------------------------- /// <summary> /// Obtains an instance based on a map of discount and forward curve identifiers. /// <para> /// The discount and forward curves refer to the curve identifier. /// The curves themselves are provided in <seealso cref="ScenarioMarketData"/> /// using <seealso cref="CurveId"/> as the identifier. /// /// </para> /// </summary> /// <param name="discountCurveIds"> the discount curve identifiers, keyed by currency </param> /// <param name="forwardCurveIds"> the forward curves identifiers, keyed by index </param> /// <param name="obsSource"> the source of market data for FX, quotes and other observable market data </param> /// <param name="fxLookup"> the lookup used to obtain FX rates </param> /// <returns> the rates lookup containing the specified curves </returns> public static DefaultRatesMarketDataLookup of <T1>(IDictionary <Currency, CurveId> discountCurveIds, IDictionary <T1> forwardCurveIds, ObservableSource obsSource, FxRateLookup fxLookup) where T1 : com.opengamma.strata.basics.index.Index { return(new DefaultRatesMarketDataLookup(discountCurveIds, forwardCurveIds, obsSource, fxLookup)); }