### Question:
ImmutableRatesProvider implements RatesProvider, ImmutableBean, Serializable { public static ImmutableRatesProviderBuilder builder(LocalDate valuationDate) { return new ImmutableRatesProviderBuilder(valuationDate); } ImmutableRatesProvider(
      LocalDate valuationDate,
      FxRateProvider fxRateProvider,
      Map<Currency, Curve> discountCurves,
      Map<Index, Curve> indexCurves,
      Map<Index, LocalDateDoubleTimeSeries> timeSeries); static ImmutableRatesProvider combined(FxRateProvider fx, ImmutableRatesProvider... providers); static ImmutableRatesProviderBuilder builder(LocalDate valuationDate); ImmutableRatesProviderBuilder toBuilder(); @Override ImmutableSet<Currency> getDiscountCurrencies(); @Override Stream<Index> indices(); @Override ImmutableSet<IborIndex> getIborIndices(); @Override ImmutableSet<OvernightIndex> getOvernightIndices(); @Override ImmutableSet<PriceIndex> getPriceIndices(); @Override ImmutableSet<Index> getTimeSeriesIndices(); @Override Optional<T> findData(MarketDataName<T> name); @Override T data(MarketDataId<T> id); @Override LocalDateDoubleTimeSeries timeSeries(Index index); @Override double fxRate(Currency baseCurrency, Currency counterCurrency); @Override DiscountFactors discountFactors(Currency currency); @Override FxIndexRates fxIndexRates(FxIndex index); @Override FxForwardRates fxForwardRates(CurrencyPair currencyPair); @Override IborIndexRates iborIndexRates(IborIndex index); @Override OvernightIndexRates overnightIndexRates(OvernightIndex index); @Override PriceIndexValues priceIndexValues(PriceIndex index); ImmutableRatesProvider combinedWith(ImmutableRatesProvider other, FxRateProvider fxProvider); @Override ImmutableRatesProvider toImmutableRatesProvider(); Map<CurveName, Curve> getCurves(); Map<CurveId, Curve> getCurves(CurveGroupName groupName); static ImmutableRatesProvider.Meta meta(); @Override ImmutableRatesProvider.Meta metaBean(); @Override LocalDate getValuationDate(); FxRateProvider getFxRateProvider(); ImmutableMap<Currency, Curve> getDiscountCurves(); ImmutableMap<Index, Curve> getIndexCurves(); ImmutableMap<Index, LocalDateDoubleTimeSeries> getTimeSeries(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void coverage() { ImmutableRatesProvider test = ImmutableRatesProvider.builder(VAL_DATE) .build(); coverImmutableBean(test); ImmutableRatesProvider test2 = ImmutableRatesProvider.builder(LocalDate.of(2014, 6, 27)) .discountCurve(GBP, DISCOUNT_CURVE_GBP) .build(); coverBeanEquals(test, test2); }
@Test public void testSerializeDeserialize() { cycleBean(ImmutableRatesProvider.builder(VAL_DATE).build()); }