Source code for stix2generator.test.test_object_generator_number
import pytest
import stix2generator.exceptions
[docs]def test_number_closed(object_generator, num_trials):
for _ in range(num_trials):
value = object_generator.generate_from_spec({
"type": "number",
"minimum": 0,
"maximum": 1
})
assert 0 <= value <= 1
assert isinstance(value, float)
[docs]def test_number_open(object_generator, num_trials):
for _ in range(num_trials):
value = object_generator.generate_from_spec({
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
})
assert 0 < value < 1
[docs]def test_number_half_open_lower(object_generator, num_trials):
for _ in range(num_trials):
value = object_generator.generate_from_spec({
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1
})
assert 0 < value <= 1
[docs]def test_number_half_open_upper(object_generator, num_trials):
for _ in range(num_trials):
value = object_generator.generate_from_spec({
"type": "number",
"minimum": 0,
"exclusiveMaximum": 1
})
assert 0 <= value < 1
[docs]def test_number_very_large(object_generator):
with pytest.raises(stix2generator.exceptions.ObjectGenerationError):
# floats have a different, smaller range than ints. This upper bound
# is outside the range of floats.
object_generator.generate_from_spec({
"type": "number",
"minimum": 0,
"maximum": 10**10000
})
[docs]def test_number_inverted_bounds(object_generator):
with pytest.raises(stix2generator.exceptions.ObjectGenerationError):
object_generator.generate_from_spec({
"type": "number",
"minimum": 1,
"maximum": 0
})