[pypy-commit] pypy union-side-effects-2: Improve and simplify hypothesis tests
rlamy
pypy.commits at gmail.com
Sun Nov 13 09:56:59 EST 2016
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: union-side-effects-2
Changeset: r88353:76d338a9c8b1
Date: 2016-09-06 15:38 +0100
http://bitbucket.org/pypy/pypy/changeset/76d338a9c8b1/
Log: Improve and simplify hypothesis tests
diff --git a/rpython/annotator/test/test_model.py b/rpython/annotator/test/test_model.py
--- a/rpython/annotator/test/test_model.py
+++ b/rpython/annotator/test/test_model.py
@@ -1,6 +1,6 @@
import pytest
-from hypothesis import given
+from hypothesis import given, assume, settings
from hypothesis import strategies as st
from rpython.flowspace.model import Variable
@@ -165,27 +165,30 @@
lambda st_ann: valid_unions(st_ann) | st.builds(SomeTuple, st.lists(st_ann)),
max_leaves=3)
- at given(s=st_numeric)
+ at given(s=st_annotation)
def test_union_unary(s):
assert union(s, s) == s
assert union(s_ImpossibleValue, s) == s
- at given(s1=st_numeric, s2=st_numeric)
+ at given(s1=st_annotation, s2=st_annotation)
def test_commutativity_of_union_compatibility(s1, s2):
assert compatible(s1, s2) == compatible(s2, s1)
- at given(st.tuples(st_annotation, st_annotation).filter(lambda t: compatible(*t)))
-def test_union_commutative(t):
- s1, s2 = t
- s_union = union(s1, s2)
+ at given(st_annotation, st_annotation)
+def test_union_commutative(s1, s2):
+ try:
+ s_union = union(s1, s2)
+ except UnionError:
+ assume(False)
assert union(s2, s1) == s_union
assert s_union.contains(s1)
assert s_union.contains(s2)
- at given(st.tuples(st_annotation, st_annotation, st_annotation).filter(
- lambda t: compatible(t[0], t[1]) and compatible(t[1], t[2]) and compatible(t[0], t[2])))
-def test_union_associative(t):
- s1, s2, s3 = t
+ at pytest.mark.xfail
+ at settings(max_examples=500)
+ at given(st_annotation, st_annotation, st_annotation)
+def test_union_associative(s1, s2, s3):
+ assume(compatible(s1, s2) and compatible(union(s1, s2), s3))
assert union(union(s1, s2), s3) == union(s1, union(s2, s3))
More information about the pypy-commit
mailing list