### Question:
HyperParams { public static HyperParamValues<Double> around(double value, double step) { return new ContinuousAround(value, step); } 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 testAroundContinuous() { doTestContinuous(HyperParams.around(-3.0, 0.1), 1, -3.0); doTestContinuous(HyperParams.around(-3.0, 0.1), 2, -3.05, -2.95); doTestContinuous(HyperParams.around(-3.0, 0.1), 3, -3.1, -3.0, -2.9); }
@Test public void testAroundDiscrete() { doTest(HyperParams.around(-3, 1), 1, Collections.singletonList(-3)); doTest(HyperParams.around(-3, 1), 2, Arrays.asList(-3, -2)); doTest(HyperParams.around(-3, 1), 3, Arrays.asList(-4, -3, -2)); doTest(HyperParams.around(-3, 10), 2, Arrays.asList(-8, 2)); doTest(HyperParams.around(-3, 10), 3, Arrays.asList(-13, -3, 7)); }