valid8r.testing.generators

Generators for test cases and test input data.

Attributes

T

OFFSET_SMALL

OFFSET_MEDIUM

OFFSET_LARGE

OFFSET_XLARGE

MULTIPLIER_FAR

Functions

generate_test_cases(validator)

Generate test cases for a validator.

generate_random_inputs(validator[, count, range_min, ...])

Generate random inputs that include both valid and invalid cases.

test_validator_composition(validator)

Test a composed validator with various inputs to verify it works correctly.

Module Contents

valid8r.testing.generators.T[source]
valid8r.testing.generators.OFFSET_SMALL = 1[source]
valid8r.testing.generators.OFFSET_MEDIUM = 5[source]
valid8r.testing.generators.OFFSET_LARGE = 10[source]
valid8r.testing.generators.OFFSET_XLARGE = 100[source]
valid8r.testing.generators.MULTIPLIER_FAR = 2[source]
valid8r.testing.generators.generate_test_cases(validator)[source]

Generate test cases for a validator.

This function analyzes the validator and generates appropriate test cases that should pass and fail the validation.

Parameters:

validator (valid8r.core.validators.Validator[T]) – The validator to generate test cases for

Returns:

A dictionary with ‘valid’ and ‘invalid’ lists of test cases

Return type:

dict[str, list[Any]]

Examples

>>> from valid8r.core.validators import minimum
>>> test_cases = generate_test_cases(minimum(10))
>>> test_cases
{'valid': [10, 11, 15, 20, 100], 'invalid': [9, 5, 0, -10]}
valid8r.testing.generators.generate_random_inputs(validator, count=20, range_min=-100, range_max=100)[source]

Generate random inputs that include both valid and invalid cases.

Parameters:
  • validator (valid8r.core.validators.Validator[T]) – The validator to test against

  • count (int) – Number of inputs to generate

  • range_min (int) – Minimum value for generated integers

  • range_max (int) – Maximum value for generated integers

Returns:

A list of random integers

Return type:

list[T]

Examples

>>> from valid8r.core.validators import minimum
>>> inputs = generate_random_inputs(minimum(0), count=10)
>>> len(inputs)
10
valid8r.testing.generators.test_validator_composition(validator)[source]

Test a composed validator with various inputs to verify it works correctly.

Parameters:

validator (valid8r.core.validators.Validator[T]) – The composed validator to test

Returns:

True if the validator behaves as expected, False otherwise

Return type:

bool

Examples

>>> from valid8r.core.validators import minimum, maximum
>>> is_valid_age = minimum(0) & maximum(120)
>>> test_validator_composition(is_valid_age)
True