summaryrefslogtreecommitdiffstatshomepage
path: root/tests/basics
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-08-12 18:33:40 +0100
committerDamien George <damien.p.george@gmail.com>2014-08-12 18:33:40 +0100
commit4c03b3a899d49f0f4f2c54903403aaa9b384c315 (patch)
tree98a086456f0f5ce8a8108522f1e11c64697eda43 /tests/basics
parent69c5fe1df676fe5331d5ba9749d84016703e1a59 (diff)
downloadmicropython-4c03b3a899d49f0f4f2c54903403aaa9b384c315.tar.gz
micropython-4c03b3a899d49f0f4f2c54903403aaa9b384c315.zip
py: Implement builtin reversed() function.
reversed function now implemented, and works for tuple, list, str, bytes and user objects with __len__ and __getitem__. Renamed mp_builtin_len to mp_obj_len to make it publically available (eg for reversed).
Diffstat (limited to 'tests/basics')
-rw-r--r--tests/basics/builtin_reversed.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/basics/builtin_reversed.py b/tests/basics/builtin_reversed.py
new file mode 100644
index 0000000000..c834cba69e
--- /dev/null
+++ b/tests/basics/builtin_reversed.py
@@ -0,0 +1,33 @@
+# test the builtin reverse() function
+
+# list
+print(list(reversed([])))
+print(list(reversed([1])))
+print(list(reversed([1, 2, 3])))
+
+# tuple
+print(list(reversed(())))
+print(list(reversed((1, 2, 3))))
+
+# string
+for c in reversed('ab'):
+ print(c)
+
+# bytes
+for b in reversed(b'1234'):
+ print(b)
+
+# range
+#for i in reversed(range(3)):
+# print(i)
+
+# user object
+class A:
+ def __init__(self):
+ pass
+ def __len__(self):
+ return 3
+ def __getitem__(self, pos):
+ return pos + 1
+for a in reversed(A()):
+ print(a)