### Question:
HyperParams { public static HyperParamValues<Double> range(double min, double max) { return new ContinuousRange(min, max); } private  HyperParams(); static HyperParamValues<Double> fixed(double fixedValue); static HyperParamValues<Double> range(double min, double max); static HyperParamValues<Double> around(double value, double step); static HyperParamValues<Integer> fixed(int fixedValue); static HyperParamValues<Integer> range(int min, int max); static HyperParamValues<Integer> around(int value, int step); static HyperParamValues<T> unorderedFromValues(Collection<T> values); static HyperParamValues<?> fromConfig(Config config, String key); static List<List<?>> chooseHyperParameterCombos(
      List<HyperParamValues<?>> ranges, String hyperParamSearch, int howMany);  }### Answer:
@Test public void testContinuousRange() { doTestContinuous(HyperParams.range(3.0, 5.0), 1, 4.0); doTestContinuous(HyperParams.range(3.0, 5.0), 2, 3.0, 5.0); doTestContinuous(HyperParams.range(3.0, 5.0), 4, 3.0, 3.6666666666666667, 4.3333333333333333, 5.0); doTestContinuous(HyperParams.range(0.0, 1.0), 3, 0.0, 0.5, 1.0); doTestContinuous(HyperParams.range(-1.0, 1.0), 5, -1.0, -0.5, 0.0, 0.5, 1.0); doTestContinuous(HyperParams.range(-1.0, 1.0), 4, -1.0, -0.3333333333333333, 0.3333333333333333, 1.0); }
@Test public void testDiscreteRange() { doTest(HyperParams.range(3, 4), 1, Collections.singletonList(3)); doTest(HyperParams.range(3, 5), 1, Collections.singletonList(4)); doTest(HyperParams.range(3, 5), 2, Arrays.asList(3, 5)); doTest(HyperParams.range(3, 5), 3, Arrays.asList(3, 4, 5)); doTest(HyperParams.range(3, 5), 4, Arrays.asList(3, 4, 5)); doTest(HyperParams.range(0, 1), 3, Arrays.asList(0, 1)); doTest(HyperParams.range(-1, 1), 5, Arrays.asList(-1, 0, 1)); doTest(HyperParams.range(0, 10), 3, Arrays.asList(0, 5, 10)); }