The pair-wise testing takes amount of input values grouped by a specific meaning and creates many combinations of the values with specific rules. The following guide give the input and output values specific names, which will be used for documentation purpose and also naming variables and parameters in the source code. All names has the Python-like data type in brackets.
The real Python types are implemented in types.py
- parameter (
str): Aparameterrepresents a software component like the host compiler or a specific software likeCMakeorBoost. Aparameternames a list ofparameter-valuesand expresses how aparameter-valueis used. - parameter-value (
NamedTuple[value-name: str, value-version: packaging.version.Version]): Aparameter-valuerepresents of a specific version of aparameter, for exampleGCC 10,nvcc 12.2orCMake 3.28. The pair wise generator takes onparameter-valueof eachparameterfor is combinatorics. - value-name (
str): Thevalue-nameis the first part of theparameter-value. It names a specific software component, likeGCCorCMake. If theparameternames a specific software,parameterandvalue-nameare equal. - value-version (
packaging.version.Version): Thevalue-versionis the second part of theparameter-value. It defines a specific version of a software component such like12.2or3.12. - parameter-value-list (
parameter: str = List[parameter-value: Tuple[value-name: str, value-version: packaging.version.Version]]): Aparameter-value-listis a list ofparameter-valuesassigned to aparameter. For example:HOST_COMPILER=[(GCC, 10), (GCC, 11), (CLANG, 16), (CLANG, 17)]DEVICE_COMPILER=[(GCC, 10), (GCC, 11), (CLANG, 16), (CLANG, 17), (NVCC, 11.2), (NVCC, 12.0)]CMAKE=[(CMAKE, 3.22), (CMAKE, 3.23), (CMAKE, 3.24)]
- parameter-value-matrix (
OrderedDict[parameter: str, List[parameter-value: Tuple[value-name: str, value-version: packaging.version.Version]]]): Theparameter-value-matrixis a list ofparameter-value-lists. Theparameter-value-matrixis used as input for the pair-wise generator. The data type isOrderedDictbecause the order ofparametersis important. - parameter-value-tuple (
OrderedList[parameter: str, parameter-value: Tuple[value-name: str, value-version: packaging.version.Version]]): Aparameter-value-tupleis a list of one ore moreparameter-values. Theparameter-value-tupleis created from aparameter-value-matrixand eachparameter-valueis assigned to a differentparameter. This means, eachparameter-valueis from a differentparameter-value-listin aparameter-value-matrix. Theparameter-value-tuplehas the same or a smaller number of entries as the number ofparametersin aparameter-value-matrix. - combination (
OrderedList[parameter: str, parameter-value: Tuple[value-name: str, value-version: packaging.version.Version]]): Acombinationis aparameter-value-tuplewith the same number ofparameter-values as the number of inputparameters. - combination-list (
List[OrderedList[parameter : str, parameter-value: Tuple[value-name: str, value-version: packaging.version.Version]]]): Acombination-listis a list ofcombinations an the result of the pair-wise generator. - parameter-value-single (
NamedTuple[parameter: str, parameter-value: NamedTuple[value-name: str, value-version: packaging.version.Version]]): Aparameter-value-singleconnects aparameterwith a singleparameter-value. - parameter-value-pair (
NamedTuple[first: NamedTuple[parameter: str, parameter-value: NamedTuple[value-name: str, value-version: packaging.version.Version]], second: NamedTuple[parameter: str, parameter-value: NamedTuple[value-name: str, value-version: packaging.version.Version]]]): Aparameter-value-pairis aparameter-value-tuplewith exact twoparameter-values. The pair-wise generator guaranties that eachparameter-value-pair, which can be created by the givenparameter-value-matrixexists at least in onecombinationof thecombination-list. The only exception is, if aparameter-value-pairis forbidden by a filter rule.