Несколько источников JUnit5 для разных аргументов (декартово произведение)

Я пытаюсь написать тест с JUnit 5, который должен проверять несколько комбинаций некоторых параметров. По сути, я хочу протестировать декартово произведение входных данных из разных источников. Рассмотрим следующий тест:

import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvFileSource;
class CartesianProductTest {

    @ParameterizedTest
    @CsvFileSource(resources = { "values.csv" })
    void testIt(int input, int expected, int otherParameter) {
        assertEquals(expected, methodUnderTest(input, otherParameter));
    }
}

Проблема в том, что теперь у меня есть только input и expected в values.csv, а otherParameter следует проверить на некоторые фиксированные значения, которые methodUnderTest() всегда возвращают ожидаемое значение для всех этих значений. Каким-то образом я должен предоставить декартово произведение всех значений в моем CSV и всех значений, которые otherParameter может принимать. Я просмотрел https://stackoverflow.com/a/57648088/7962200, но для этого нужно либо жестко закодировать все мои тестовые примеры или прочитайте CSV вручную, чтобы предоставить поток значений. Я больше думал о чем-то вроде

import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.CsvFileSource;
class CartesianProductTest {

    @ParameterizedTest
    @MethodSource
    void testIt(int input, int expected, int otherParameter) {
        assertEquals(expected, methodUnderTest(input, otherParameter));
    }

    static Stream<Arguments> testIt() {
         return csvValues().flatMap(csv ->
             otherParams().map(otherParam -> Arguments.of(csv, otherParam)));
    }

    @CsvFileSource(resources = { "values.csv" })
    static Stream<Arguments> csvValues() {/* get somehow from Annotation */}
    @CsvFileSource(resources = { "otherparam.csv" })
    static Stream<Arguments> otherParams() {/* get somehow from Annotation */}
}

person Madjosz    schedule 25.08.2020    source источник