# How does pairwise parameterization work in the unit test framework?

16 views (last 30 days)

Show older comments

##### 3 Comments

Greg
on 28 Apr 2020

### Accepted Answer

Greg
on 28 Apr 2020

Edited: Greg
on 28 Apr 2020

According to an answer on stack exchange, the minimum number of pairwise combinations is 9. The concept of pairwise combination takes any 2 parameters at a time, and doesn't care about the rest. The trivial solution to the example is:

- dim1.small x dim2.small x dim3.small
- dim1.small x dim2.medium x dim3.medium
- dim1.small x dim2.large x dim3.large
- dim1.medium x dim2.small x dim3.medium
- dim1.medium x dim2.medium x dim3.large
- dim1.medium x dim2.large x dim3.small
- dim1.large x dim2.small x dim3.large
- dim1.large x dim2.medium x dim3.small
- dim1.large x dim2.large x dim3.medium

We have every possible value pair you could draw from any pair of parameters, but we do not have every unique triplet (that would be the "exhaustive" approach, and result in 3x3x3 = 27 combinations).

I still have no idea where 10 comes from in the documentation example.

##### 0 Comments

### More Answers (2)

Alex Kashuba
on 27 Jan 2021

I think the answer is following. Let say we have parameters

classdef PairwiseTest < matlab.unittest.TestCase

properties (TestParameter)

a = { '1', '2', '3', '4', '5'}

b = { '1', '2', '3', '4', '5'}

c = { '6', '7', '8'}

d = { '0', '9'}

end

methods(Test, ParameterCombination='pairwise')

function testPairwise(tc, a, b, c, d)

fprintf(['\n' a b c d ])

end

end

methods(Test, ParameterCombination='exhaustive')

function testPairAC(tc, a, c)

fprintf(['\n' a '_' c '_' ])

end

end

end

We get here for testPairwise

1160.

1279.

1380.

1469.

1560.

2170.

2260.

2369.

2480.

2579.

3189.

3260.

3379.

3470.

3589.

4160.

4289.

4370.

4479.

4580.

5160.

5279.

5389.

5460.

5579.

The run gives us such combinations that any pair of parameters (say a and c, but can be any other) are exhaustive i.e. all combitations of testPairAC are included:

1_6_.

1_7_.

1_8_.

2_6_.

2_7_.

2_8_.

3_6_.

3_7_.

3_8_.

4_6_.

4_7_.

4_8_.

5_6_.

5_7_.

5_8_.

##### 1 Comment

Houman Rastegarfar
on 7 Mar 2023

##### 0 Comments

### See Also

### Categories

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!