### Question:
GaussianProcessPrior extends WeightLearningApplication { protected int getNextPoint(List<WeightConfig> configs, int iteration) { int bestConfig = -1; float curBestVal = -Float.MAX_VALUE; for (int i = 0; i < configs.size(); i++) { float curVal = (configs.get(i).valueAndStd.value/exploration) + configs.get(i).valueAndStd.std; if (bestConfig == -1 || curVal > curBestVal) { curBestVal = curVal; bestConfig = i; } } return bestConfig; } GaussianProcessPrior(List<Rule> rules, Database rvDB, Database observedDB);  GaussianProcessPrior(Model model, Database rvDB, Database observedDB);  static final String CONFIG_PREFIX; static final String KERNEL_KEY; static final String KERNEL_DEFAULT; static final String MAX_ITERATIONS_KEY; static final int MAX_ITERATIONS_DEFAULT; static final String MAX_CONFIGS_KEY; static final int MAX_CONFIGS_DEFAULT; static final String EXPLORATION_KEY; static final float EXPLORATION_DEFAULT; static final String RANDOM_CONFIGS_ONLY_KEY; static final boolean RANDOM_CONFIGS_ONLY_DEFAULT; static final String EARLY_STOPPING_KEY; static final boolean EARLY_STOPPING_DEFAULT; static final int MAX_RAND_INT_VAL; static final float SMALL_VALUE; }### Answer:
@Test public void testGetNext() { GaussianProcessPrior wl = (GaussianProcessPrior) getWLA(); List<Float> yPred = Arrays.asList(0.5f, 0.4f, 0.6f, 0.7f); List<Float> yStd = Arrays.asList(0.2f, 0.7f, 0.3f, 0.1f); List<GaussianProcessPrior.WeightConfig> weightConfigs = new ArrayList<GaussianProcessPrior.WeightConfig>(); for (int i = 0; i < yPred.size(); i++) { weightConfigs.add(new GaussianProcessPrior.WeightConfig(null, yPred.get(i), yStd.get(i))); } Assert.assertEquals(1, wl.getNextPoint(weightConfigs, 1)); }