### Question:
CombinationUtil { public static boolean sameForAllGivenParameters(int[] first, int[] second, IntSet parameters) { checkNotNullAndSameLength(first, second); Preconditions.notNull(parameters); for (int parameter : parameters) { if (parameter >= 0 && parameter < first.length && (first[parameter] != second[parameter])) { return false; } } return true; } private  CombinationUtil(); static int[] emptyCombination(int size); static boolean contains(int[] firstCombination, int[] secondCombination); static boolean canBeAdded(int[] combination, int[] toBeAdded, ConstraintChecker constraintChecker); static void add(int[] combination, int[] toBeAdded); static boolean containsAllParameters(int[] combination, IntSet parameterIndices); static boolean containsAllParameters(int[] combination, int untilParameter); static boolean sameForAllGivenParameters(int[] first, int[] second, IntSet parameters); static int numberOfSetParameters(int[] combination); static final int NO_VALUE; }### Answer:
@Test void sameForAllGivenParametersPreconditions() { Assertions.assertThrows(NullPointerException.class, () -> CombinationUtil.sameForAllGivenParameters(null, new int[0], new IntOpenHashSet())); Assertions.assertThrows(NullPointerException.class, () -> CombinationUtil.sameForAllGivenParameters(new int[0], null, new IntOpenHashSet())); Assertions.assertThrows(NullPointerException.class, () -> CombinationUtil.sameForAllGivenParameters(new int[0], new int[0], null)); }