Last active
April 17, 2020 02:42
-
-
Save pkhuong/719b0a27dcf5a0b14624f3cc4b0b4b86 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""Too many ways to generate pairs of two integers in ascending | |
order. | |
""" | |
from hypothesis import assume, given | |
import hypothesis.strategies as st | |
import unittest | |
class TestAscending(unittest.TestCase): | |
@given(a=st.integers(), b=st.integers()) | |
def test_reject(self, a, b): | |
"""Reject uninteresting inputs at runtime.""" | |
assume(a <= b) | |
assert a <= b | |
@given(a=st.integers(), b=st.integers()) | |
def test_sort(self, a, b): | |
"""Re-sort values at runtime.""" | |
a, b = min(a, b), max(a, b) | |
assert a <= b | |
@given(values=st.lists(st.integers(), min_size=2, max_size=2).map(sorted)) | |
def test_sorted(self, values): | |
"""Directly generate sorted lists.""" | |
a, b = values | |
assert a <= b | |
@given(a=st.integers(), data=st.data()) | |
def test_dynamic_generation(self, a, data): | |
"""Draw dependent values dynamically""" | |
b = data.draw(st.integers(min_value=a)) | |
assert a <= b | |
@given( | |
values=st.integers().flatmap( | |
lambda a: st.tuples(st.just(a), st.integers(min_value=a)) | |
) | |
) | |
def test_nested_generation(self, values): | |
"""Create a strategy that's parameterised on generated values.""" | |
a, b = values | |
assert a <= b | |
@given(a=st.integers(), delta=st.integers(min_value=0)) | |
def test_reformulate(self, a, delta): | |
"""Ask for something else.""" | |
b = a + delta | |
assert a <= b | |
if __name__ == "__main__": | |
unittest.main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment