From 6ee1e383d6b95d0bb5f2902ec91b8d831e4b5803 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 4 Jan 2014 03:47:34 +0200 Subject: str slice: Trim slice indexes to be in range. --- tests/basics/tests/slice-bstr1.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tests') diff --git a/tests/basics/tests/slice-bstr1.py b/tests/basics/tests/slice-bstr1.py index 0bed95914..74dbc2061 100644 --- a/tests/basics/tests/slice-bstr1.py +++ b/tests/basics/tests/slice-bstr1.py @@ -22,6 +22,11 @@ print(b"123"[0:]) print(b"123"[:0]) print(b"123"[:-3]) print(b"123"[:-4]) +# Range check testing, don't segfault, please ;-) +print(b"123"[:1000000]) +print(b"123"[1000000:]) +print(b"123"[:-1000000]) +print(b"123"[-1000000:]) # No IndexError! print(b""[1:1]) print(b""[-1:-1]) -- cgit v1.2.3 From 21dfb55dadb01b135edca9b66ca6b53a82bec60a Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 4 Jan 2014 19:06:34 +0200 Subject: tests/basics requires python3.3 tests/bytecode/run-tests already uses puthon3.3, so let's just use it here too. Fore reference, errors with python 3.2.3: File "tests/generator1.py", line 12 return None SyntaxError: 'return' with argument inside generator File "tests/list_clear.py", line 3, in x.clear() AttributeError: 'list' object has no attribute 'clear' etc. --- tests/basics/run-tests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/basics/run-tests b/tests/basics/run-tests index 72e69c2d8..0037b1304 100755 --- a/tests/basics/run-tests +++ b/tests/basics/run-tests @@ -1,7 +1,7 @@ #!/usr/bin/env bash RM="/bin/rm -f" -CPYTHON3=python3 +CPYTHON3=python3.3 MP_PY=../../unix/py numtests=0 -- cgit v1.2.3 From 9464cde3c94b1c69a9cf433d8b0ac8a7c78f8bf1 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 4 Jan 2014 19:12:05 +0200 Subject: Unbreak string slice test by just switching to normal (not byte) strings. --- tests/basics/tests/slice-bstr1.py | 32 -------------------------------- tests/basics/tests/string-slice.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 32 deletions(-) delete mode 100644 tests/basics/tests/slice-bstr1.py create mode 100644 tests/basics/tests/string-slice.py (limited to 'tests') diff --git a/tests/basics/tests/slice-bstr1.py b/tests/basics/tests/slice-bstr1.py deleted file mode 100644 index 74dbc2061..000000000 --- a/tests/basics/tests/slice-bstr1.py +++ /dev/null @@ -1,32 +0,0 @@ -print(b"123"[0:1]) - -print(b"123"[0:2]) - -print(b"123"[:1]) - -print(b"123"[1:]) - -# Idiom for copying sequence -print(b"123"[:]) - -print(b"123"[:-1]) - -# Weird cases -print(b"123"[0:0]) -print(b"123"[1:0]) -print(b"123"[1:1]) -print(b"123"[-1:-1]) -print(b"123"[-3:]) -print(b"123"[-3:3]) -print(b"123"[0:]) -print(b"123"[:0]) -print(b"123"[:-3]) -print(b"123"[:-4]) -# Range check testing, don't segfault, please ;-) -print(b"123"[:1000000]) -print(b"123"[1000000:]) -print(b"123"[:-1000000]) -print(b"123"[-1000000:]) -# No IndexError! -print(b""[1:1]) -print(b""[-1:-1]) diff --git a/tests/basics/tests/string-slice.py b/tests/basics/tests/string-slice.py new file mode 100644 index 000000000..7538ae570 --- /dev/null +++ b/tests/basics/tests/string-slice.py @@ -0,0 +1,32 @@ +print("123"[0:1]) + +print("123"[0:2]) + +print("123"[:1]) + +print("123"[1:]) + +# Idiom for copying sequence +print("123"[:]) + +print("123"[:-1]) + +# Weird cases +print("123"[0:0]) +print("123"[1:0]) +print("123"[1:1]) +print("123"[-1:-1]) +print("123"[-3:]) +print("123"[-3:3]) +print("123"[0:]) +print("123"[:0]) +print("123"[:-3]) +print("123"[:-4]) +# Range check testing, don't segfault, please ;-) +print("123"[:1000000]) +print("123"[1000000:]) +print("123"[:-1000000]) +print("123"[-1000000:]) +# No IndexError! +print(""[1:1]) +print(""[-1:-1]) -- cgit v1.2.3 From 8cfc9f07b90c9793ed73d1e67da9124014d794d7 Mon Sep 17 00:00:00 2001 From: xyb Date: Sun, 5 Jan 2014 18:47:51 +0800 Subject: Implements str iterator --- tests/basics/tests/string1.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tests') diff --git a/tests/basics/tests/string1.py b/tests/basics/tests/string1.py index 28aeaddbc..9d6f21d13 100644 --- a/tests/basics/tests/string1.py +++ b/tests/basics/tests/string1.py @@ -7,3 +7,6 @@ x += 'def' print(x) print('123' + "456") + +# iter +print(list('str')) -- cgit v1.2.3 From 11f1e4b8f12759e0492626e8d75c79c760d6ffcb Mon Sep 17 00:00:00 2001 From: Damien George Date: Sun, 5 Jan 2014 11:39:59 +0000 Subject: Add test for basic builtin types. --- tests/basics/tests/types1.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tests/basics/tests/types1.py (limited to 'tests') diff --git a/tests/basics/tests/types1.py b/tests/basics/tests/types1.py new file mode 100644 index 000000000..850b31b08 --- /dev/null +++ b/tests/basics/tests/types1.py @@ -0,0 +1,28 @@ +# basic types + +print(bool) +print(int) +print(float) +print(complex) +print(tuple) +print(list) +print(set) +print(dict) + +print(type(bool()) == bool) +print(type(int()) == int) +print(type(float()) == float) +print(type(complex()) == complex) +print(type(tuple()) == tuple) +print(type(list()) == list) +print(type(set()) == set) +print(type(dict()) == dict) + +print(type(False) == bool) +print(type(0) == int) +print(type(0.0) == float) +print(type(1j) == complex) +print(type(()) == tuple) +print(type([]) == list) +print(type({None}) == set) +print(type({}) == dict) -- cgit v1.2.3 From f0691f4ed58cab324dee151886ec13cecc1b6771 Mon Sep 17 00:00:00 2001 From: Damien George Date: Sun, 5 Jan 2014 13:44:06 +0000 Subject: Fix qstr in objlist.c; add more tests for list.index. list.index fails on an edge case. --- tests/basics/tests/list_index.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/basics/tests/list_index.py b/tests/basics/tests/list_index.py index cc853fe0e..f28263fba 100644 --- a/tests/basics/tests/list_index.py +++ b/tests/basics/tests/list_index.py @@ -1,12 +1,24 @@ a = [1, 2, 3] +print(a.index(1)) +print(a.index(2)) +print(a.index(3)) +print(a.index(3, 2)) +try: + print(a.index(3, 2, 2)) +except ValueError: + print("Raised ValueError") +else: + print("Did not raise ValueError") + a = a + a b = [0, 0, a] print(a.index(2)) print(b.index(a)) print(a.index(2, 2)) + try: a.index(2, 2, 2) except ValueError: print("Raised ValueError") else: - raise AssertionError("Did not raise ValueError") + print("Did not raise ValueError") -- cgit v1.2.3