mirror of
https://github.com/wassname/segpy.git
synced 2026-06-27 18:25:38 +08:00
Additional Hypothesis-based tests for the catalog builder and catalog implementations.
This commit is contained in:
+36
-1
@@ -1,7 +1,7 @@
|
||||
import unittest
|
||||
|
||||
from hypothesis import given, example
|
||||
from hypothesis.specifiers import dictionary, just
|
||||
from hypothesis.specifiers import dictionary, just, integers_in_range, streaming
|
||||
from segpy.catalog import CatalogBuilder
|
||||
|
||||
|
||||
@@ -20,3 +20,38 @@ class TestCatalogBuilder(unittest.TestCase):
|
||||
catalog = builder.create()
|
||||
shared_items = set(mapping.items()) & set(catalog.items())
|
||||
self.assertEqual(len(shared_items), len(mapping))
|
||||
|
||||
@given(start=int,
|
||||
num=integers_in_range(0, 10000),
|
||||
step=integers_in_range(-10000, 10000),
|
||||
value=int)
|
||||
def test_regular_constant_mapping(self, start, num, step, value):
|
||||
mapping = {key: value for key in range(start, start + num*step, step)}
|
||||
builder = CatalogBuilder(mapping)
|
||||
catalog = builder.create()
|
||||
shared_items = set(mapping.items()) & set(catalog.items())
|
||||
self.assertEqual(len(shared_items), len(mapping))
|
||||
|
||||
@given(start=int,
|
||||
num=integers_in_range(0, 10000),
|
||||
step=integers_in_range(-10000, 10000),
|
||||
values=streaming(int))
|
||||
def test_regular_mapping(self, start, num, step, values):
|
||||
mapping = {key: value for key, value in zip(range(start, start + num*step, step), values)}
|
||||
builder = CatalogBuilder(mapping)
|
||||
catalog = builder.create()
|
||||
shared_items = set(mapping.items()) & set(catalog.items())
|
||||
self.assertEqual(len(shared_items), len(mapping))
|
||||
|
||||
@given(num=integers_in_range(0, 10000),
|
||||
key_start=int,
|
||||
key_step=integers_in_range(-10000, 10000),
|
||||
value_start=int,
|
||||
value_step=integers_in_range(-10000, 10000))
|
||||
def test_linear_regular_mapping(self, num, key_start, key_step, value_start, value_step):
|
||||
mapping = {key: value for key, value in zip(range(key_start, key_start + num*key_step, key_step),
|
||||
range(value_start, value_start + num*value_step, value_step))}
|
||||
builder = CatalogBuilder(mapping)
|
||||
catalog = builder.create()
|
||||
shared_items = set(mapping.items()) & set(catalog.items())
|
||||
self.assertEqual(len(shared_items), len(mapping))
|
||||
Reference in New Issue
Block a user