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
): Aparameter
represents a software component like the host compiler or a specific software likeCMake
orBoost
. Aparameter
names a list ofparameter-values
and expresses how aparameter-value
is used. - parameter-value (
NamedTuple[value-name: str, value-version: packaging.version.Version]
): Aparameter-value
represents of a specific version of aparameter
, for exampleGCC 10
,nvcc 12.2
orCMake 3.28
. The pair wise generator takes onparameter-value
of eachparameter
for is combinatorics. - value-name (
str
): Thevalue-name
is the first part of theparameter-value
. It names a specific software component, likeGCC
orCMake
. If theparameter
names a specific software,parameter
andvalue-name
are equal. - value-version (
packaging.version.Version
): Thevalue-version
is the second part of theparameter-value
. It defines a specific version of a software component such like12.2
or3.12
. - parameter-value-list (
parameter: str = List[parameter-value: Tuple[value-name: str, value-version: packaging.version.Version]]
): Aparameter-value-list
is a list ofparameter-values
assigned 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-matrix
is a list ofparameter-value-list
s. Theparameter-value-matrix
is used as input for the pair-wise generator. The data type isOrderedDict
because the order ofparameters
is important. - parameter-value-tuple (
OrderedList[parameter: str, parameter-value: Tuple[value-name: str, value-version: packaging.version.Version]]
): Aparameter-value-tuple
is a list of one ore moreparameter-value
s. Theparameter-value-tuple
is created from aparameter-value-matrix
and eachparameter-value
is assigned to a differentparameter
. This means, eachparameter-value
is from a differentparameter-value-list
in aparameter-value-matrix
. Theparameter-value-tuple
has the same or a smaller number of entries as the number ofparameters
in aparameter-value-matrix
. - combination (
OrderedList[parameter: str, parameter-value: Tuple[value-name: str, value-version: packaging.version.Version]]
): Acombination
is aparameter-value-tuple
with the same number ofparameter-value
s as the number of inputparameters
. - combination-list (
List[OrderedList[parameter : str, parameter-value: Tuple[value-name: str, value-version: packaging.version.Version]]]
): Acombination-list
is a list ofcombination
s 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-single
connects aparameter
with 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-pair
is aparameter-value-tuple
with exact twoparameter-values
. The pair-wise generator guaranties that eachparameter-value-pair
, which can be created by the givenparameter-value-matrix
exists at least in onecombination
of thecombination-list
. The only exception is, if aparameter-value-pair
is forbidden by a filter rule.