### Question:
StrengthBasedParameterOrder implements ParameterOrder { @Override public int[] getInitialParameters(Int2IntMap parameters, int strength) { int size = Math.min(parameters.size(), strength); return IntStream.range(0, size).toArray(); }  @Override int[] getInitialParameters(Int2IntMap parameters, int strength); @Override int[] getRemainingParameters(Int2IntMap parameters, int strength);  }### Answer:
@Test void testInitialParametersForSmallerStrength() { Int2IntMap parameters = new Int2IntArrayMap(new int[]{0, 1, 2, 3}, new int[]{2, 2, 2, 2}); int strength = 2; int[] initialParameters = PARAMETER_ORDER.getInitialParameters(parameters, strength); assertEquals(initialParameters.length, 2); assertArrayEquals(initialParameters, new int[]{0, 1}); }
@Test void testInitialParametersForEqualStrength() { Int2IntMap parameters = new Int2IntArrayMap(new int[]{0, 1, 2, 3}, new int[]{2, 2, 2, 2}); int strength = 4; int[] initialParameters = PARAMETER_ORDER.getInitialParameters(parameters, strength); assertEquals(initialParameters.length, 4); assertArrayEquals(initialParameters, new int[]{0, 1, 2, 3}); }
@Test void testInitialParametersForHigherStrength() { Int2IntMap parameters = new Int2IntArrayMap(new int[]{0, 1, 2, 3}, new int[]{2, 2, 2, 2}); int strength = 5; int[] initialParameters = PARAMETER_ORDER.getInitialParameters(parameters, strength); assertEquals(4, initialParameters.length); assertArrayEquals(new int[]{0, 1, 2, 3}, initialParameters); }