### Question:
MultiThresholdProvider implements ThresholdProvider { @Override public OptionalDouble getNext(int attr, double threshold) { checkElementIndex(attr, providers.length); return providers[attr].getNext(threshold); }  static ThresholdProvider create(Iterable<? extends Iterable<Double>> thresholds); @Override List<DoubleSortedSet> getAll(); @Override OptionalDouble getNext(int attr, double threshold);  }### Answer:
@Test public void testGetNext() { List<DoubleSet> similarities = Arrays .asList(new DoubleOpenHashSet(Sets.newHashSet(Double.valueOf(0.7), Double.valueOf(0.6))), new DoubleOpenHashSet(Sets.newHashSet(Double.valueOf(0.8)))); ThresholdProvider provider = create(similarities); assertThat(provider.getNext(0, 0.5).boxed()).hasValue(Double.valueOf(0.6)); assertThat(provider.getNext(0, 0.6).boxed()).hasValue(Double.valueOf(0.7)); assertThat(provider.getNext(1, 0.8).boxed()).isEmpty(); }