/
NikolayIvkin
/
TheAlgorithms
Обзор
Документация
Войти
/
NikolayIvkin
/
TheAlgorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/test/java/com/thealgorithms/backtracking/ArrayCombinationTest.java
40 строк
2 KB
Hardik Pawar
refactor: Enhance docs, add more tests in `ArrayCombination` (#5841)
15 окт 2024, 11:59
Не верифицирован
15 окт 2024, 11:59
32bf532
Код
Авторство
О чём код?
package com.thealgorithms.backtracking; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import com.thealgorithms.maths.BinomialCoefficient; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; public class ArrayCombinationTest { @ParameterizedTest @MethodSource("regularInputs") void testCombination(int n, int k, List<List<Integer>> expected) { assertEquals(expected.size(), BinomialCoefficient.binomialCoefficient(n, k)); assertEquals(expected, ArrayCombination.combination(n, k)); } @ParameterizedTest @MethodSource("wrongInputs") void testCombinationThrows(int n, int k) { assertThrows(IllegalArgumentException.class, () -> ArrayCombination.combination(n, k)); } private static Stream<Arguments> regularInputs() { return Stream.of(Arguments.of(0, 0, List.of(new ArrayList<Integer>())), Arguments.of(1, 0, List.of(new ArrayList<Integer>())), Arguments.of(1, 1, List.of(List.of(0))), Arguments.of(3, 0, List.of(new ArrayList<Integer>())), Arguments.of(3, 1, List.of(List.of(0), List.of(1), List.of(2))), Arguments.of(4, 2, List.of(List.of(0, 1), List.of(0, 2), List.of(0, 3), List.of(1, 2), List.of(1, 3), List.of(2, 3))), Arguments.of(5, 3, List.of(List.of(0, 1, 2), List.of(0, 1, 3), List.of(0, 1, 4), List.of(0, 2, 3), List.of(0, 2, 4), List.of(0, 3, 4), List.of(1, 2, 3), List.of(1, 2, 4), List.of(1, 3, 4), List.of(2, 3, 4))), Arguments.of(6, 4, List.of(List.of(0, 1, 2, 3), List.of(0, 1, 2, 4), List.of(0, 1, 2, 5), List.of(0, 1, 3, 4), List.of(0, 1, 3, 5), List.of(0, 1, 4, 5), List.of(0, 2, 3, 4), List.of(0, 2, 3, 5), List.of(0, 2, 4, 5), List.of(0, 3, 4, 5), List.of(1, 2, 3, 4), List.of(1, 2, 3, 5), List.of(1, 2, 4, 5), List.of(1, 3, 4, 5), List.of(2, 3, 4, 5)))); } private static Stream<Arguments> wrongInputs() { return Stream.of(Arguments.of(-1, 0), Arguments.of(0, -1), Arguments.of(2, 100), Arguments.of(3, 4)); } }