def merge_sort(list1, list2): merged_list = list1 + list2 return sorted(list(dict.fromkeys(merged_list)))
@given(st.integers(), st.integers()) def test_given_integers_add_is_commutative(x, y): assert x + y == y + x
@given(st.floats(allow_nan=False, allow_infinity=False), st.floast(allow_nan=False, allow_infinity=False)) def test_given_floats_add_is_commutative(x, y): assert x + y == y + x
@given(arrays(int, st.shared(array_shapes(min_dims=3, max_dims=5), key="shape")), arrays(int, st.shared(array_shapes(min_dims=3, max_dims=5), key="shape"))) def test_given_arrays_multiply_is_commutative(arr1, arr2): np.array_equal(arr1 * arr2, arr2 * arr1)
@given(array_shapes(min_dims=3, max_dims=5), st.data()) def test_given_arrays_multiply_is_commutative(arr_shape, data): arr1 = data.draw(arrays(int, arr_shape)) arr2 = data.draw(arrays(int, arr_shape)) np.array_equal(arr1 * arr2, arr2 * arr1)
@given(st.lists(st.integers() | st.floats(allow_nan=False)), st.lists(st.integers() | st.floats(allow_nan=False))) def test_commutativity(list1, list2): assert merge_sort(list1, list2) == merge_sort(list2, list1)
class Rectangle: """ A class of Python object that describe the properties of a rectangle """ def __init__(self, width, height, center=(0, 0)): self.width = width self.height = height self.center = center def __repr__(self): return "Rectangle(width={w}, height={h}, center={c})".format(h=self.height, w=self.widht, c=self.center) def __lt__(self, other): return self.get_area() < other.get_area() def get_area(self): return self.with * self.height def rectangle_list_strategy(): return st.lists(st.builds(Rectangle, st.integers(min_value=0), st.integers(min_value=0), st.tuples(st.integers(), st.integers()))) @given(rectangle_list_strategy()) def test_given_rectangle_list_sort_is_distinct(rectangle_list): assert sorted(rectangle_list) == sorted(sorted(rectangle_list))
@given(st.integers().filter(lambda num: num % 2 ==0)) def test_given_even_number_transform_is_even(num): assert (num + 2) % 2 == 0
@given(st.integers().map(lambda num: num * 2)) def test_given_even_numbers_transform_is_even(num): assert (num + 2) % == 0
def list_strategy(): return st.lists(st.one_of(st.integers(), st.floats(allow_nan=False)))
from scipy import ndimage from hypothesis.extra.numpy import arrays, array_shapes @composite def add_additional_blobs_to_prediction_strategy(draw, blob_prediction): dilated_blob_mask = ... ... return prediction @given(arrays(bool, array_shape(min_dims=3, min_side=10)), st.data()) def test_given_prediction_adding_blobs_return_include_features(raw_prediction, data): modified_prediction = data.draw(add_additional_blobs_to_prediction_strategy(raw_prediction)) assert np.all(np.isin(extract_blob_mask_features(raw_prediction), extract_blob_mask_features(modified_prediction)))