### Question:
CombinationUtil { public static int[] emptyCombination(int size) { Preconditions.check(size >= 0); final int[] combination = new int[size]; Arrays.fill(combination, NO_VALUE); return combination; } 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 emptyCombinationCannotHaveNegativeSize() { Assertions.assertThrows(IllegalArgumentException.class, () -> CombinationUtil.emptyCombination(-1)); Assertions.assertThrows(IllegalArgumentException.class, () -> CombinationUtil.emptyCombination(-312)); }
@Test void createsEmptyCombinations() { Assertions.assertArrayEquals(new int[0], CombinationUtil.emptyCombination(0)); Assertions.assertArrayEquals(new int[]{CombinationUtil.NO_VALUE}, CombinationUtil.emptyCombination(1)); Assertions.assertArrayEquals(new int[]{CombinationUtil.NO_VALUE, CombinationUtil.NO_VALUE, CombinationUtil.NO_VALUE}, CombinationUtil.emptyCombination(3)); }