summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/run-tests8
-rw-r--r--tests/unicode/data/utf-8_1.txt1
-rw-r--r--tests/unicode/file1.py4
-rw-r--r--tests/unicode/unicode.py18
-rw-r--r--tests/unicode/unicode_index.py6
-rw-r--r--tests/unicode/unicode_iter.py4
-rw-r--r--tests/unicode/unicode_pos.py5
7 files changed, 42 insertions, 4 deletions
diff --git a/tests/run-tests b/tests/run-tests
index 8f5f7d470..c6bc4020d 100755
--- a/tests/run-tests
+++ b/tests/run-tests
@@ -88,10 +88,10 @@ def run_tests(pyb, tests):
rm_f(filename_expected)
rm_f(filename_mupy)
else:
- with open(filename_expected, "w") as f:
- f.write(str(output_expected, "ascii"))
- with open(filename_mupy, "w") as f:
- f.write(str(output_mupy, "ascii"))
+ with open(filename_expected, "wb") as f:
+ f.write(output_expected)
+ with open(filename_mupy, "wb") as f:
+ f.write(output_mupy)
print("FAIL ", test_file)
failed_tests.append(test_name)
diff --git a/tests/unicode/data/utf-8_1.txt b/tests/unicode/data/utf-8_1.txt
new file mode 100644
index 000000000..d84c480d1
--- /dev/null
+++ b/tests/unicode/data/utf-8_1.txt
@@ -0,0 +1 @@
+Привет
diff --git a/tests/unicode/file1.py b/tests/unicode/file1.py
new file mode 100644
index 000000000..554e88674
--- /dev/null
+++ b/tests/unicode/file1.py
@@ -0,0 +1,4 @@
+f = open("unicode/data/utf-8_1.txt")
+l = f.readline()
+print(l)
+print(len(l))
diff --git a/tests/unicode/unicode.py b/tests/unicode/unicode.py
new file mode 100644
index 000000000..c7e523f06
--- /dev/null
+++ b/tests/unicode/unicode.py
@@ -0,0 +1,18 @@
+# Test a UTF-8 encoded literal
+s = "asdf©qwer"
+for i in range(len(s)):
+ print("s[%d]: %s %X"%(i, s[i], ord(s[i])))
+
+# Test all three forms of Unicode escape, and
+# all blocks of UTF-8 byte patterns
+s = "a\xA9\xFF\u0123\u0800\uFFEE\U0001F44C"
+for i in range(-len(s), len(s)):
+ print("s[%d]: %s %X"%(i, s[i], ord(s[i])))
+ print("s[:%d]: %d chars, '%s'"%(i, len(s[:i]), s[:i]))
+ for j in range(i, len(s)):
+ print("s[%d:%d]: %d chars, '%s'"%(i, j, len(s[i:j]), s[i:j]))
+ print("s[%d:]: %d chars, '%s'"%(i, len(s[i:]), s[i:]))
+
+# Test UTF-8 encode and decode
+enc = s.encode()
+print(enc, enc.decode() == s)
diff --git a/tests/unicode/unicode_index.py b/tests/unicode/unicode_index.py
new file mode 100644
index 000000000..3c31468a4
--- /dev/null
+++ b/tests/unicode/unicode_index.py
@@ -0,0 +1,6 @@
+print("Привет".find("т"))
+print("Привет".find("П"))
+print("Привет".rfind("т"))
+print("Привет".rfind("П"))
+print("Привет".index("т"))
+print("Привет".index("П"))
diff --git a/tests/unicode/unicode_iter.py b/tests/unicode/unicode_iter.py
new file mode 100644
index 000000000..f08a4acee
--- /dev/null
+++ b/tests/unicode/unicode_iter.py
@@ -0,0 +1,4 @@
+for c in "Hello":
+ print(c)
+for c in "Привет":
+ print(c)
diff --git a/tests/unicode/unicode_pos.py b/tests/unicode/unicode_pos.py
new file mode 100644
index 000000000..6a5982920
--- /dev/null
+++ b/tests/unicode/unicode_pos.py
@@ -0,0 +1,5 @@
+# str methods with explicit start/end pos
+print("Привет".startswith("П"))
+print("Привет".startswith("р", 1))
+print("абвба".find("а", 1))
+print("абвба".find("а", 1, -1))