Min { public static Combine.BinaryCombineDoubleFn ofDoubles() { return new Min.MinDoubleFn(); } private  Min(); static Combine.Globally<Integer, Integer> integersGlobally(); static Combine.PerKey<K, Integer, Integer> integersPerKey(); static Combine.Globally<Long, Long> longsGlobally(); static Combine.PerKey<K, Long, Long> longsPerKey(); static Combine.Globally<Double, Double> doublesGlobally(); static Combine.PerKey<K, Double, Double> doublesPerKey(); static Combine.BinaryCombineIntegerFn ofIntegers(); static Combine.BinaryCombineLongFn ofLongs(); static Combine.BinaryCombineDoubleFn ofDoubles(); static BinaryCombineFn<T> of(
      T identity, ComparatorT comparator); static BinaryCombineFn<T> of(
      ComparatorT comparator); static BinaryCombineFn<T> naturalOrder(T identity); static BinaryCombineFn<T> naturalOrder(); static Combine.Globally<T, T> globally(); static Combine.PerKey<K, T, T> perKey(); static Combine.Globally<T, T> globally(ComparatorT comparator); static Combine.PerKey<K, T, T> perKey(ComparatorT comparator);  }
@Test public void testMinDoubleFn() { testCombineFn(Min.ofDoubles(), Lists.newArrayList(1.0, 2.0, 3.0, 4.0), 1.0); }
@Test public void testMinDoubleFnInfinity() { testCombineFn( Min.ofDoubles(), Lists.newArrayList(Double.NEGATIVE_INFINITY, 2.0, 3.0, Double.POSITIVE_INFINITY), Double.NEGATIVE_INFINITY); }
@Test public void testMinDoubleFnNan() { testCombineFn( Min.ofDoubles(), Lists.newArrayList(Double.NEGATIVE_INFINITY, 2.0, 3.0, Double.NaN), Double.NaN); }