Skip to content

walkframe/covertable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Aug 31, 2024
6b06f52 · Aug 31, 2024
Feb 19, 2023
Aug 29, 2024
Aug 31, 2024
Jun 2, 2020
Jun 21, 2019
Aug 29, 2024
Jun 20, 2020

Repository files navigation

CoverTable

covertable logo

Time is limited.

Creating a test case that satisfies all possible factors is often unrealistic and, more importantly, tedious.

Save time with CoverTable, a flexible pairwise tool that generates combinations covering two (or more) factors.

Implementations

CoverTable is available in two implementations, with TypeScript as the primary focus and Python offered as a secondary option.

TypeScript

NPM Version Build Status

Python (Legacy Support)

PyPI Version Build Status

For more details, please refer to the links above.

Performance

Note:
The following data was measured in Python 3.7.7 on a 3.1 GHz 6-Core Intel Core i5.
The coverage number is 2.

Combination Default Minimum case Fastest case
3^4 num: 9
time: 0.0006s
num: 9
time: 0.0006s
num: 14
time: 0.0005s
3^13 num: 19
time: 0.03s
num: 17
time: 0.03s
num: 21
time: 0.003s
4^15 + 3^17 + 2^29 num: 36
time: 7.41s
num: 34
time: 7.47s
num: 42
time: 0.40s
4^1 + 3^39 + 2^35 num: 27
time: 15.19s
num: 26
time: 14.70s
num: 30
time: 0.51s
2^100 num: 14
time: 23.97s
num: 12
time: 0.63s
num: 13
time: 0.48s
10^20 num: 198
time: 14.28s
num: 195
time: 14.48s
num: 284
time: 0.53s

In general, as the number of elements or coverage increases, the number of combinations tends to increase significantly.

Tolerance

If you use the greedy criterion and specify a positive integer for the tolerance option, you can increase speed at the expense of the number of combinations.

The greater the tolerance, the faster the speed and the larger the number of combinations.

Example: 10^20 Test Cases

Tolerance num time
0 (default) 195 14.48s
1 199 12.45s
2 201 9.48s
3 201 7.17s
4 207 5.70s
5 212 4.58s
6 212 3.65s
7 216 3.07s
8 223 2.57s
9 226 2.14s
10 233 1.84s
11 237 1.61s
12 243 1.43s
13 249 1.28s
14 254 1.19s