summaryrefslogtreecommitdiffstatshomepage
path: root/tests
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-12-24 20:28:30 +0000
committerDamien George <damien.p.george@gmail.com>2014-12-24 20:28:30 +0000
commitc55a4d82cf03d22933028bd9db4031ef349fdc1f (patch)
tree82ee56795109357a08c34b5a210608034eedc1f6 /tests
parent7fdb8d78a47e7d78c93aba3f58cc83b92d0e1729 (diff)
downloadmicropython-c55a4d82cf03d22933028bd9db4031ef349fdc1f.tar.gz
micropython-c55a4d82cf03d22933028bd9db4031ef349fdc1f.zip
py: Make bytes objs work with more str methods; add tests.
Diffstat (limited to 'tests')
-rw-r--r--tests/basics/bytes_count.py48
-rw-r--r--tests/basics/bytes_find.py23
-rw-r--r--tests/basics/bytes_partition.py29
-rw-r--r--tests/basics/bytes_replace.py13
-rw-r--r--tests/basics/bytes_split.py28
-rw-r--r--tests/basics/bytes_strip.py16
6 files changed, 157 insertions, 0 deletions
diff --git a/tests/basics/bytes_count.py b/tests/basics/bytes_count.py
new file mode 100644
index 0000000000..95bcfe310e
--- /dev/null
+++ b/tests/basics/bytes_count.py
@@ -0,0 +1,48 @@
+print(b"".count(b""))
+print(b"".count(b"a"))
+print(b"a".count(b""))
+print(b"a".count(b"a"))
+print(b"a".count(b"b"))
+print(b"b".count(b"a"))
+
+print(b"aaa".count(b""))
+print(b"aaa".count(b"a"))
+print(b"aaa".count(b"aa"))
+print(b"aaa".count(b"aaa"))
+print(b"aaa".count(b"aaaa"))
+
+print(b"aaaa".count(b""))
+print(b"aaaa".count(b"a"))
+print(b"aaaa".count(b"aa"))
+print(b"aaaa".count(b"aaa"))
+print(b"aaaa".count(b"aaaa"))
+print(b"aaaa".count(b"aaaaa"))
+
+print(b"aaa".count(b"", 1))
+print(b"aaa".count(b"", 2))
+print(b"aaa".count(b"", 3))
+
+print(b"aaa".count(b"", 1, 2))
+
+print(b"asdfasdfaaa".count(b"asdf", -100))
+print(b"asdfasdfaaa".count(b"asdf", -8))
+print(b"asdf".count(b's', True))
+print(b"asdf".count(b'a', True))
+print(b"asdf".count(b'a', False))
+print(b"asdf".count(b'a', 1 == 2))
+print(b"hello world".count(b'l'))
+print(b"hello world".count(b'l', 5))
+print(b"hello world".count(b'l', 3))
+print(b"hello world".count(b'z', 3, 6))
+print(b"aaaa".count(b'a'))
+print(b"aaaa".count(b'a', 0, 3))
+print(b"aaaa".count(b'a', 0, 4))
+print(b"aaaa".count(b'a', 0, 5))
+print(b"aaaa".count(b'a', 1, 5))
+print(b"aaaa".count(b'a', -1, 5))
+print(b"abbabba".count(b"abba"))
+
+def t():
+ return True
+
+print(b"0000".count(b'0', t()))
diff --git a/tests/basics/bytes_find.py b/tests/basics/bytes_find.py
new file mode 100644
index 0000000000..434669a901
--- /dev/null
+++ b/tests/basics/bytes_find.py
@@ -0,0 +1,23 @@
+print(b"hello world".find(b"ll"))
+print(b"hello world".find(b"ll", None))
+print(b"hello world".find(b"ll", 1))
+print(b"hello world".find(b"ll", 1, None))
+print(b"hello world".find(b"ll", None, None))
+print(b"hello world".find(b"ll", 1, -1))
+print(b"hello world".find(b"ll", 1, 1))
+print(b"hello world".find(b"ll", 1, 2))
+print(b"hello world".find(b"ll", 1, 3))
+print(b"hello world".find(b"ll", 1, 4))
+print(b"hello world".find(b"ll", 1, 5))
+print(b"hello world".find(b"ll", -100))
+print(b"0000".find(b'0'))
+print(b"0000".find(b'0', 0))
+print(b"0000".find(b'0', 1))
+print(b"0000".find(b'0', 2))
+print(b"0000".find(b'0', 3))
+print(b"0000".find(b'0', 4))
+print(b"0000".find(b'0', 5))
+print(b"0000".find(b'-1', 3))
+print(b"0000".find(b'1', 3))
+print(b"0000".find(b'1', 4))
+print(b"0000".find(b'1', 5))
diff --git a/tests/basics/bytes_partition.py b/tests/basics/bytes_partition.py
new file mode 100644
index 0000000000..3868a81a55
--- /dev/null
+++ b/tests/basics/bytes_partition.py
@@ -0,0 +1,29 @@
+print(b"asdf".partition(b'g'))
+print(b"asdf".partition(b'a'))
+print(b"asdf".partition(b's'))
+print(b"asdf".partition(b'f'))
+print(b"asdf".partition(b'd'))
+print(b"asdf".partition(b'asd'))
+print(b"asdf".partition(b'sdf'))
+print(b"asdf".partition(b'as'))
+print(b"asdf".partition(b'df'))
+print(b"asdf".partition(b'asdf'))
+print(b"asdf".partition(b'asdfa'))
+print(b"asdf".partition(b'fasdf'))
+print(b"asdf".partition(b'fasdfa'))
+print(b"abba".partition(b'a'))
+print(b"abba".partition(b'b'))
+
+try:
+ print(b"asdf".partition(1))
+except TypeError:
+ print("Raised TypeError")
+else:
+ print("Did not raise TypeError")
+
+try:
+ print(b"asdf".partition(b''))
+except ValueError:
+ print("Raised ValueError")
+else:
+ print("Did not raise ValueError")
diff --git a/tests/basics/bytes_replace.py b/tests/basics/bytes_replace.py
new file mode 100644
index 0000000000..24f03e61c2
--- /dev/null
+++ b/tests/basics/bytes_replace.py
@@ -0,0 +1,13 @@
+print(b"".replace(b"a", b"b"))
+print(b"aaa".replace(b"a", b"b", 0))
+print(b"aaa".replace(b"a", b"b", -5))
+print(b"asdfasdf".replace(b"a", b"b"))
+print(b"aabbaabbaabbaa".replace(b"aa", b"cc", 3))
+print(b"a".replace(b"aa", b"bb"))
+print(b"testingtesting".replace(b"ing", b""))
+print(b"testINGtesting".replace(b"ing", b"ING!"))
+
+print(b"".replace(b"", b"1"))
+print(b"A".replace(b"", b"1"))
+print(b"AB".replace(b"", b"1"))
+print(b"AB".replace(b"", b"12"))
diff --git a/tests/basics/bytes_split.py b/tests/basics/bytes_split.py
new file mode 100644
index 0000000000..a9dda1ee8b
--- /dev/null
+++ b/tests/basics/bytes_split.py
@@ -0,0 +1,28 @@
+# default separator (whitespace)
+print(b"a b".split())
+print(b" a b ".split(None))
+print(b" a b ".split(None, 1))
+print(b" a b ".split(None, 2))
+print(b" a b c ".split(None, 1))
+print(b" a b c ".split(None, 0))
+print(b" a b c ".split(None, -1))
+
+# empty separator should fail
+try:
+ b"abc".split(b'')
+except ValueError:
+ print("ValueError")
+
+# non-empty separator
+print(b"abc".split(b"a"))
+print(b"abc".split(b"b"))
+print(b"abc".split(b"c"))
+print(b"abc".split(b"z"))
+print(b"abc".split(b"ab"))
+print(b"abc".split(b"bc"))
+print(b"abc".split(b"abc"))
+print(b"abc".split(b"abcd"))
+print(b"abcabc".split(b"bc"))
+print(b"abcabc".split(b"bc", 0))
+print(b"abcabc".split(b"bc", 1))
+print(b"abcabc".split(b"bc", 2))
diff --git a/tests/basics/bytes_strip.py b/tests/basics/bytes_strip.py
new file mode 100644
index 0000000000..71e4ac1859
--- /dev/null
+++ b/tests/basics/bytes_strip.py
@@ -0,0 +1,16 @@
+print(b"".strip())
+print(b" \t\n\r\v\f".strip())
+print(b" T E S T".strip())
+print(b"abcabc".strip(b"ce"))
+print(b"aaa".strip(b"b"))
+print(b"abc efg ".strip(b"g a"))
+
+print(b' spacious '.lstrip())
+print(b'www.example.com'.lstrip(b'cmowz.'))
+
+print(b' spacious '.rstrip())
+print(b'mississippi'.rstrip(b'ipz'))
+
+# Test that stripping unstrippable string returns original object
+s = b"abc"
+print(id(s.strip()) == id(s))