//-----------------------------------------------------------------------
 public override bool Equals(object obj)
 {
     if (obj == this)
     {
         return(true);
     }
     if (obj != null && obj.GetType() == this.GetType())
     {
         DefaultRatesScenarioMarketData other = (DefaultRatesScenarioMarketData)obj;
         return(JodaBeanUtils.equal(lookup, other.lookup) && JodaBeanUtils.equal(marketData, other.marketData));
     }
     return(false);
 }
        //-------------------------------------------------------------------------
        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();
        }
 //-------------------------------------------------------------------------
 public RatesScenarioMarketData withMarketData(ScenarioMarketData marketData)
 {
     return(DefaultRatesScenarioMarketData.of(lookup, marketData));
 }