[pypy-commit] pypy default: merge heads
arigo
pypy.commits at gmail.com
Fri Feb 24 02:42:01 EST 2017
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r90337:6d6e4f94cf81
Date: 2017-02-24 08:41 +0100
http://bitbucket.org/pypy/pypy/changeset/6d6e4f94cf81/
Log: merge heads
diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -74,7 +74,7 @@
^rpython/doc/_build/.*$
^compiled
^.git/
-^.hypothesis/
+.hypothesis/
^release/
^rpython/_cache$
diff --git a/extra_tests/README.txt b/extra_tests/README.txt
new file mode 100644
--- /dev/null
+++ b/extra_tests/README.txt
@@ -0,0 +1,5 @@
+The tests in this directory are a complement to lib-python/3/test/.
+
+They are meant to run on top of a compiled pypy3 or CPython3.5 in an
+environment containing at least pytest and hypothesis, using a command like
+'pytest extra_tests/'.
diff --git a/extra_tests/pytest.ini b/extra_tests/pytest.ini
new file mode 100644
diff --git a/extra_tests/test_unicode.py b/extra_tests/test_unicode.py
new file mode 100644
--- /dev/null
+++ b/extra_tests/test_unicode.py
@@ -0,0 +1,34 @@
+import pytest
+from hypothesis import strategies as st
+from hypothesis import given, settings, example
+
+from unicodedata import normalize
+
+# For every (n1, n2, n3) triple, applying n1 then n2 must be the same
+# as applying n3.
+# Reference: http://unicode.org/reports/tr15/#Design_Goals
+compositions = [
+ ('NFC', 'NFC', 'NFC'),
+ ('NFC', 'NFD', 'NFD'),
+ ('NFC', 'NFKC', 'NFKC'),
+ ('NFC', 'NFKD', 'NFKD'),
+ ('NFD', 'NFC', 'NFC'),
+ ('NFD', 'NFD', 'NFD'),
+ ('NFD', 'NFKC', 'NFKC'),
+ ('NFD', 'NFKD', 'NFKD'),
+ ('NFKC', 'NFC', 'NFKC'),
+ ('NFKC', 'NFD', 'NFKD'),
+ ('NFKC', 'NFKC', 'NFKC'),
+ ('NFKC', 'NFKD', 'NFKD'),
+ ('NFKD', 'NFC', 'NFKC'),
+ ('NFKD', 'NFD', 'NFKD'),
+ ('NFKD', 'NFKC', 'NFKC'),
+ ('NFKD', 'NFKD', 'NFKD'),
+]
+
+ at pytest.mark.parametrize('norm1, norm2, norm3', compositions)
+ at settings(max_examples=1000)
+ at example(s=u'---\uafb8\u11a7---') # issue 2289
+ at given(s=st.text())
+def test_composition(s, norm1, norm2, norm3):
+ assert normalize(norm2, normalize(norm1, s)) == normalize(norm3, s)
More information about the pypy-commit
mailing list