generator
CombinationGenerator(*discrete_domains)
Bases: TestcaseGenerator
A generator that produces tests based on combination of ranges.
This generator creates a test case for each combination of the provided value ranges. Each value range must be associated with exactly one input feature of the model that shall be tested.
Initialize the combination generator.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
discrete_domains
|
Discrete
|
A list of discrete domains to generate test cases from. Each domain must be associated with exactly one input feature of the model that shall be tested. |
()
|
Source code in src/flowcean/testing/generator/combination_generator.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | |
reset()
Reset the generator to the initial state.
Source code in src/flowcean/testing/generator/combination_generator.py
68 69 70 71 72 73 74 75 | |
DDTIGenerator(model, *, n_testinputs, test_coverage_criterium, dataset=None, specs_file=None, classification=False, inverse_alloc=False, epsilon=0.5, performance_threshold=0.3, sample_limit=50000, n_predictions=50, max_depth=5, hoeffding_tree_extra_params=None)
Bases: TestcaseGenerator
Generates test inputs considering decision boundaries.
Methods:
save_hoeffding_tree() Saves the generated Hoeffding tree to a file.
print_eqclasses() Prints the equivalence classes and their test input counts.
print_testplans() Prints the test plans (intervals used to sample test inputs).
print_hoeffding_tree() Prints the Hoeffding tree structure as a PNG.
Initialize the stochastic generator.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
Model
|
The trained Flowcean model. |
required |
n_testinputs
|
int
|
Number of test inputs to generate. |
required |
test_coverage_criterium
|
str
|
Test coverage strategy identifier. |
required |
dataset
|
DataFrame | None
|
Polars DataFrame containing the original dataset. Either the dataset or the specs_file must be provided. |
None
|
specs_file
|
Path | None
|
Path to a file containing feature specifications. If you provide a dataset containing system inputs and outputs that already encodes the necessary specifications, then you do not need to supply a separate system specification file. |
None
|
classification
|
bool
|
Whether the task is a classification problem. |
False
|
inverse_alloc
|
bool
|
If True, allocate more tests to lower-priority equivalence classes. |
False
|
epsilon
|
float
|
Interval offset used for boundary value analysis. |
0.5
|
performance_threshold
|
float
|
Minimum performance needed before exporting the Hoeffding Tree. |
0.3
|
sample_limit
|
int
|
Maximum number of samples used to train the Hoeffding Tree. |
50000
|
n_predictions
|
int
|
Number of consecutive correct predictions needed before exporting the Hoeffding Tree. |
50
|
max_depth
|
int
|
Maximum depth of the Hoeffding Tree. |
5
|
hoeffding_tree_extra_params
|
dict[str, Any] | None
|
Extra keyword arguments forwarded to the Hoeffding Tree trainer. |
None
|
Source code in src/flowcean/testing/generator/ddti_generator.py
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | |
TestcaseGenerator
Bases: IncrementalEnvironment
A generator that produces test cases for a model.
reset()
abstractmethod
Reset the generator to its initial state.
Source code in src/flowcean/testing/generator/generator.py
12 13 14 | |
save_csv(path, *, test_case_count=None, separator=',')
Save the generated test cases to a CSV file.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str | Path
|
The path where the CSV file should be saved. If the path does not have a suffix, '.csv' will be added. |
required |
test_case_count
|
int | None
|
The number of test cases to save. If None, all available test cases will be saved. If the number of test cases is not defined, a ValueError will be raised. |
None
|
separator
|
str
|
The value separator to use in the CSV file. Defaults to ','. |
','
|
Source code in src/flowcean/testing/generator/generator.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | |
save_excel(path, *, test_case_count=None, worksheet_name='Test Cases')
Save the generated test cases to an Excel file.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str | Path
|
The path where the Excel file should be saved. If the path does not have a suffix, '.xlsx' will be added. |
required |
test_case_count
|
int | None
|
The number of test cases to save. If None, all available test cases will be saved. If the number of test cases is not defined, a ValueError will be raised. |
None
|
worksheet_name
|
str
|
The name of the worksheet in the Excel file. Defaults to 'Test Cases'. |
'Test Cases'
|
Source code in src/flowcean/testing/generator/generator.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | |
__collect_to_df(n)
Collect the first n test cases and return them as a DataFrame.
Source code in src/flowcean/testing/generator/generator.py
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | |
StochasticGenerator(domains, *, test_case_count=None, seed=0)
Bases: TestcaseGenerator
A generator that produces random tests based on given domains.
Initialize the stochastic generator.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
domains
|
list[Domain]
|
A list of domains to generate random values for. Each domain must be associated with exactly one input feature of the model that shall be tested. |
required |
test_case_count
|
int | None
|
The number of test cases to generate. If None, the generator will run indefinitely. |
None
|
seed
|
int
|
The seed for the random number generator. The default is 0, which means a random seed will be used. |
0
|
Source code in src/flowcean/testing/generator/stochastic_generator.py
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | |
reset()
Reset the generator to its initial state.
Source code in src/flowcean/testing/generator/stochastic_generator.py
71 72 73 74 | |