track.pop() with pytest.raises(AssertionError): record_and_test_size() assert track[0] == example def nary_tree_to_strategy(tree): if isinstance(tree, Leaf): return integers() else: return tuples(*map(nary_tree_to_strategy, tree.children)) dav_strategy = n_ary_tree(just(None), just(None), just(None)).flatmap(nary_tree_to_strategy) def test_will_find_a_failure_from_the_database(): db = ExampleDatabase() class Rejected(Exception): pass @given(dav_strategy, settings=Settings(max_examples=10, database=db)) def nope(x): print(x) raise Rejected() try: with pytest.raises(Rejected):
TestIntBool = strategy_test_suite(tuples(integers(), booleans())) TestFloats = strategy_test_suite(floats()) TestComplex = strategy_test_suite(complex_numbers()) TestJust = strategy_test_suite(just('hi')) TestTemplates = strategy_test_suite(templates_for(sets(integers()))) TestEmptyString = strategy_test_suite(text(alphabet='')) TestSingleString = strategy_test_suite( strategy(text(alphabet='a'), Settings(average_list_length=10.0))) TestManyString = strategy_test_suite(text(alphabet='abcdef☃')) Stuff = namedtuple('Stuff', ('a', 'b')) TestNamedTuple = strategy_test_suite(builds(Stuff, integers(), integers())) TestTrees = strategy_test_suite( n_ary_tree(integers(), integers(), integers())) TestMixedSets = strategy_test_suite( sets(one_of(integers(), booleans(), floats()))) TestFrozenSets = strategy_test_suite(frozensets(booleans())) TestNestedSets = strategy_test_suite( frozensets(frozensets(complex_numbers(), max_size=2))) TestMisc1 = strategy_test_suite( fixed_dictionaries({(2, -374): frozensets(none())})) TestMisc2 = strategy_test_suite( fixed_dictionaries({b'': frozensets(integers())})) TestMisc3 = strategy_test_suite(tuples(sets(none() | text()))) TestEmptyTuple = strategy_test_suite(tuples())
with pytest.raises(AssertionError): record_and_test_size() assert track[0] == example def nary_tree_to_strategy(tree): if isinstance(tree, Leaf): return integers() else: return tuples(*map(nary_tree_to_strategy, tree.children)) dav_strategy = n_ary_tree(just(None), just(None), just(None)).flatmap( nary_tree_to_strategy ) def test_will_find_a_failure_from_the_database(): db = ExampleDatabase() class Rejected(Exception): pass @given( dav_strategy, settings=Settings(max_examples=10, database=db)) def nope(x): print(x) raise Rejected()
def smallest_tree(predicate): return minimal(n_ary_tree(integers(), integers(), integers()), predicate)
def test_serializes_arbitrary_trees(tree): strat = n_ary_tree(booleans(), booleans(), booleans()) assert strat.from_basic(strat.to_basic(tree)) == tree
EvalledIntStream = streaming(integers()).map(lambda x: list(x[:5]) and x) ABC = namedtuple(u'ABC', (u'a', u'b', u'c')) def abc(x, y, z): return builds(ABC, x, y, z) with Settings(average_list_length=10.0): standard_types = [ basic(Bitfields), EvalledIntStream, lists(max_size=0), tuples(), sets(max_size=0), frozensets(max_size=0), fixed_dictionaries({}), n_ary_tree(booleans(), booleans(), booleans()), n_ary_tree(integers(), integers(), integers()), abc(booleans(), booleans(), booleans()), abc(booleans(), booleans(), integers()), templates_for(one_of(*map(just, hrange(10)))), fixed_dictionaries({u'a': integers(), u'b': booleans()}), dictionaries(booleans(), integers()), dictionaries(text(), booleans()), one_of(integers(), tuples(booleans())), sampled_from(range(10)), one_of(just(u'a'), just(u'b'), just(u'c')), sampled_from((u'a', u'b', u'c')), integers(), integers(min_value=3), integers(min_value=(-2 ** 32), max_value=(2 ** 64)), floats(), floats(min_value=-2.0, max_value=3.0),
def depth(tree): if isinstance(tree, Leaf): return 1 else: if not tree.keyed_children: return 1 return 1 + max(depth(v) for k, v in tree.keyed_children) def test_deep_trees(): tree = smallest_tree(lambda t: depth(t) >= 3) assert depth(tree) == 3 while isinstance(tree, Branch): assert len(tree.keyed_children) == 1 tree = tree.keyed_children[0][1] def test_tree_minimizes_individual_branch_children(): assert smallest_tree( lambda t: len(getattr(t, u'keyed_children', ())) > 1) == Branch( 0, ((0, Leaf(0)), (0, Leaf(0)))) @given(n_ary_tree(booleans(), booleans(), booleans()), settings=Settings(max_examples=100)) def test_serializes_arbitrary_trees(tree): strat = n_ary_tree(booleans(), booleans(), booleans()) assert strat.from_basic(strat.to_basic(tree)) == tree
def abc(x, y, z): return builds(ABC, x, y, z) with Settings(average_list_length=10.0): standard_types = [ basic(Bitfields), EvalledIntStream, lists(max_size=0), tuples(), sets(max_size=0), frozensets(max_size=0), fixed_dictionaries({}), n_ary_tree(booleans(), booleans(), booleans()), n_ary_tree(integers(), integers(), integers()), abc(booleans(), booleans(), booleans()), abc(booleans(), booleans(), integers()), templates_for(one_of(*map(just, hrange(10)))), fixed_dictionaries({u"a": integers(), u"b": booleans()}), dictionaries(booleans(), integers()), dictionaries(text(), booleans()), one_of(integers(), tuples(booleans())), sampled_from(range(10)), one_of(just(u"a"), just(u"b"), just(u"c")), sampled_from((u"a", u"b", u"c")), integers(), integers(min_value=3), integers(min_value=(-2 ** 32), max_value=(2 ** 64)), floats(),
(fixed_dictionaries({True: sets(integers())}), []), (randoms(), []), (integers(), ''), (integers(), [0, '']), (text(), 'kittens'), (tuples(integers(), integers(), integers()), (1, 2)), (sampled_from((1, 2, 3)), 'fish'), (sampled_from((1, 2, 3)), 5), (sampled_from((1, 2, 3)), -2), (one_of(integers(), floats()), 1), (one_of(integers(), floats()), 'tv'), (one_of(integers(), floats()), [-2, 0]), (binary(), '1'), (floats(), -1), (lists(one_of(frozensets(floats()), frozensets(floats()))), [[8, 0], []]), (floats(), 252010555201342071294067021251680995120), (tuples(integers(), integers()), 10), (n_ary_tree(integers(), integers(), integers()), []), (n_ary_tree(integers(), integers(), integers()), [1, 2, 3, 4, 5]), (floats(1, 2), (0, floats().to_basic(float('nan')))), (floats(1, 2), floats().to_basic(float('nan'))), (floats(1), [0, floats().to_basic(float('nan'))]), (floats(1), [0, floats().to_basic(0.0)]), (floats(max_value=1), [0, floats().to_basic(float('nan'))]), (floats(max_value=1), [0, floats().to_basic(2.0)]), ]) def test_simple_data_validation(specifier, data): converter = strategy(specifier) with pytest.raises(BadData): converter.from_basic(data)
def test_serializes_arbitrary_trees(tree): strat = n_ary_tree(booleans(), booleans(), booleans()) assert strat.from_basic(strat.to_basic(tree)) == tree
TestFloats = strategy_test_suite(floats()) TestComplex = strategy_test_suite(complex_numbers()) TestJust = strategy_test_suite(just('hi')) TestTemplates = strategy_test_suite(templates_for(sets(integers()))) TestEmptyString = strategy_test_suite(text(alphabet='')) TestSingleString = strategy_test_suite(strategy( text(alphabet='a'), Settings(average_list_length=10.0))) TestManyString = strategy_test_suite(text(alphabet='abcdef☃')) Stuff = namedtuple('Stuff', ('a', 'b')) TestNamedTuple = strategy_test_suite( builds(Stuff, integers(), integers())) TestTrees = strategy_test_suite( n_ary_tree(integers(), integers(), integers())) TestMixedSets = strategy_test_suite(sets( one_of(integers(), booleans(), floats()))) TestFrozenSets = strategy_test_suite(frozensets(booleans())) TestNestedSets = strategy_test_suite( frozensets(frozensets(complex_numbers(), max_size=2))) TestMisc1 = strategy_test_suite(fixed_dictionaries( {(2, -374): frozensets(none())})) TestMisc2 = strategy_test_suite(fixed_dictionaries( {b'': frozensets(integers())})) TestMisc3 = strategy_test_suite(tuples(sets(none() | text()))) TestEmptyTuple = strategy_test_suite(tuples())
def smallest_tree(predicate): return minimal( n_ary_tree(integers(), integers(), integers()), predicate )
if isinstance(tree, Leaf): return 1 else: if not tree.keyed_children: return 1 return 1 + max(depth(v) for k, v in tree.keyed_children) def test_deep_trees(): tree = smallest_tree(lambda t: depth(t) >= 3) assert depth(tree) == 3 while isinstance(tree, Branch): assert len(tree.keyed_children) == 1 tree = tree.keyed_children[0][1] def test_tree_minimizes_individual_branch_children(): assert smallest_tree( lambda t: len(getattr(t, u'keyed_children', ())) > 1) == Branch( 0, ((0, Leaf(0)), (0, Leaf(0))) ) @given(n_ary_tree(booleans(), booleans(), booleans()), settings=Settings( max_examples=100 )) def test_serializes_arbitrary_trees(tree): strat = n_ary_tree(booleans(), booleans(), booleans()) assert strat.from_basic(strat.to_basic(tree)) == tree
def smallest_tree(predicate): return minimal( n_ary_tree(integers(), integers(), integers()), predicate, settings=Settings(database=None, max_examples=1000000), )
def smallest_tree(predicate): return minimal( n_ary_tree(integers(), integers(), integers()), predicate, settings=Settings(database=None, max_examples=1000000), )
TestString = strategy_test_suite(text()) BinaryString = strategy_test_suite(binary()) TestIntBool = strategy_test_suite(tuples(integers(), booleans())) TestFloats = strategy_test_suite(floats()) TestComplex = strategy_test_suite(complex_numbers()) TestJust = strategy_test_suite(just("hi")) TestTemplates = strategy_test_suite(templates_for(sets(integers()))) TestEmptyString = strategy_test_suite(text(alphabet="")) TestSingleString = strategy_test_suite(strategy(text(alphabet="a"), Settings(average_list_length=10.0))) TestManyString = strategy_test_suite(text(alphabet="abcdef☃")) Stuff = namedtuple("Stuff", ("a", "b")) TestNamedTuple = strategy_test_suite(builds(Stuff, integers(), integers())) TestTrees = strategy_test_suite(n_ary_tree(integers(), integers(), integers())) TestMixedSets = strategy_test_suite(sets(one_of(integers(), booleans(), floats()))) TestFrozenSets = strategy_test_suite(frozensets(booleans())) TestNestedSets = strategy_test_suite(frozensets(frozensets(integers(), max_size=2))) TestMisc1 = strategy_test_suite(fixed_dictionaries({(2, -374): frozensets(none())})) TestMisc2 = strategy_test_suite(fixed_dictionaries({b"": frozensets(integers())})) TestMisc3 = strategy_test_suite(tuples(sets(none() | text()))) TestEmptyTuple = strategy_test_suite(tuples()) TestEmptyList = strategy_test_suite(lists(max_size=0)) TestEmptySet = strategy_test_suite(sets(max_size=0)) TestEmptyFrozenSet = strategy_test_suite(frozensets(max_size=0)) TestEmptyDict = strategy_test_suite(fixed_dictionaries({}))