|
|
@@ -44,7 +44,6 @@ assert s.replace("foo","ball") == "balltball"
|
|
|
assert s.startswith('f') == True;assert s.endswith('o') == False
|
|
|
assert t.startswith('this') == True;
|
|
|
|
|
|
-
|
|
|
assert t.split('w') == ['this is string example....', 'o', '!!!']
|
|
|
assert "a,b,c".split(',') == ['a', 'b', 'c']
|
|
|
assert 'a,'.split(',') == ['a']
|
|
|
@@ -110,29 +109,9 @@ num = 6
|
|
|
assert str(num) == '6'
|
|
|
|
|
|
# test Lo group names
|
|
|
-
|
|
|
测试 = "test"
|
|
|
assert 测试 == "test"
|
|
|
|
|
|
-assert "Hello, {}!".format("World") == "Hello, World!"
|
|
|
-assert "{} {} {}".format("I", "love", "Python") == "I love Python"
|
|
|
-assert "{0} {1} {2}".format("I", "love", "Python") == "I love Python"
|
|
|
-assert "{2} {1} {0}".format("I", "love", "Python") == "Python love I"
|
|
|
-assert "{0}{1}{0}".format("abra", "cad") == "abracadabra"
|
|
|
-
|
|
|
-assert "{k}={v}".format(k="key", v="value") == "key=value"
|
|
|
-assert "{k}={k}".format(k="key") == "key=key"
|
|
|
-assert "{0}={1}".format('{0}', '{1}') == "{0}={1}"
|
|
|
-assert "{{{0}}}".format(1) == "{1}"
|
|
|
-assert "{0}{1}{1}".format(1, 2, 3) == "122"
|
|
|
-try:
|
|
|
- "{0}={1}}".format(1, 2)
|
|
|
- exit(1)
|
|
|
-except ValueError:
|
|
|
- pass
|
|
|
-assert "{{{}xxx{}x}}".format(1, 2) == "{1xxx2x}"
|
|
|
-assert "{{abc}}".format() == "{abc}"
|
|
|
-
|
|
|
# 3rd slice
|
|
|
a = "Hello, World!"
|
|
|
assert a[::-1] == "!dlroW ,olleH"
|
|
|
@@ -152,44 +131,13 @@ assert b[5:2:-2] == [',', 'l']
|
|
|
a = '123'
|
|
|
assert a.rjust(5) == ' 123'
|
|
|
assert a.rjust(5, '0') == '00123'
|
|
|
-try:
|
|
|
- a.rjust(5, '00')
|
|
|
- exit(1)
|
|
|
-except TypeError:
|
|
|
- pass
|
|
|
assert a.ljust(5) == '123 '
|
|
|
assert a.ljust(5, '0') == '12300'
|
|
|
-try:
|
|
|
- a.ljust(5, '00')
|
|
|
- exit(1)
|
|
|
-except TypeError:
|
|
|
- pass
|
|
|
|
|
|
assert '\x30\x31\x32' == '012'
|
|
|
-
|
|
|
-a = 'abcd'
|
|
|
-assert list(a) == ['a', 'b', 'c', 'd']
|
|
|
-a = '测试'
|
|
|
-assert list(a) == ['测', '试']
|
|
|
-a = 'a测b试c'
|
|
|
-assert list(a) == ['a', '测', 'b', '试', 'c']
|
|
|
-a = 'a测b试'
|
|
|
-assert list(a) == ['a', '测', 'b', '试']
|
|
|
-a = '测b试c'
|
|
|
-assert list(a) == ['测', 'b', '试', 'c']
|
|
|
-a = '测b'
|
|
|
-assert list(a) == ['测', 'b']
|
|
|
-a = 'b'
|
|
|
-assert list(a) == ['b']
|
|
|
-a = '测'
|
|
|
-assert list(a) == ['测']
|
|
|
-
|
|
|
assert '\b\b\b' == '\x08\x08\x08'
|
|
|
-stack=[1,2,3,4]; assert f"{stack[2:]}" == '[3, 4]'
|
|
|
-
|
|
|
assert repr('\x1f\x1e\x1f') == '\'\\x1f\\x1e\\x1f\''
|
|
|
|
|
|
-
|
|
|
assert hex(-42) == '-0x2a'
|
|
|
assert hex(42) == '0x2a'
|
|
|
|
|
|
@@ -202,35 +150,6 @@ assert hex(256) == '0x100'
|
|
|
assert hex(257) == '0x101'
|
|
|
assert hex(17) == '0x11'
|
|
|
|
|
|
-import c
|
|
|
-assert repr(c.NULL) == '<void* at 0x0>'
|
|
|
-assert repr(c.void_p(1)) == '<void* at 0x1>'
|
|
|
-assert repr(c.void_p(15)) == '<void* at 0xf>'
|
|
|
-assert repr(c.void_p(16)) == '<void* at 0x10>'
|
|
|
-assert repr(c.void_p(255)) == '<void* at 0xff>'
|
|
|
-assert repr(c.void_p(256)) == '<void* at 0x100>'
|
|
|
-assert repr(c.void_p(257)) == '<void* at 0x101>'
|
|
|
-assert repr(c.void_p(17)) == '<void* at 0x11>'
|
|
|
-
|
|
|
-# random hex test
|
|
|
-import random
|
|
|
-
|
|
|
-
|
|
|
-def test(__min, __max):
|
|
|
- for _ in range(100):
|
|
|
- num = random.randint(__min, __max)
|
|
|
- hex_num = hex(num)
|
|
|
- assert eval(hex_num) == num
|
|
|
- if num >= 0:
|
|
|
- assert repr(c.void_p(num)) == f'<void* at 0x{hex_num[2:]}>'
|
|
|
-
|
|
|
-test(0, 100)
|
|
|
-test(0, 100000)
|
|
|
-test(-100, 100)
|
|
|
-test(-100000, 100000)
|
|
|
-test(-2**30, 2**30)
|
|
|
-
|
|
|
-
|
|
|
a = '123'
|
|
|
assert a.index('2') == 1
|
|
|
assert a.index('1') == 0
|
|
|
@@ -239,23 +158,47 @@ assert a.index('3') == 2
|
|
|
assert a.index('2', 1) == 1
|
|
|
assert a.index('1', 0) == 0
|
|
|
|
|
|
-try:
|
|
|
- a.index('1', 1)
|
|
|
- exit(1)
|
|
|
-except ValueError:
|
|
|
- pass
|
|
|
-
|
|
|
-try:
|
|
|
- a.index('1', -1)
|
|
|
- exit(1)
|
|
|
-except ValueError:
|
|
|
- pass
|
|
|
-
|
|
|
assert a.find('1') == 0
|
|
|
assert a.find('1', 1) == -1
|
|
|
|
|
|
-try:
|
|
|
- a.find('1', -1)
|
|
|
- exit(1)
|
|
|
-except ValueError:
|
|
|
- pass
|
|
|
+a = 'abcd'
|
|
|
+assert list(a) == ['a', 'b', 'c', 'd']
|
|
|
+a = '测试'
|
|
|
+assert list(a) == ['测', '试']
|
|
|
+a = 'a测b试c'
|
|
|
+assert list(a) == ['a', '测', 'b', '试', 'c']
|
|
|
+a = 'a测b试'
|
|
|
+assert list(a) == ['a', '测', 'b', '试']
|
|
|
+a = '测b试c'
|
|
|
+assert list(a) == ['测', 'b', '试', 'c']
|
|
|
+a = '测b'
|
|
|
+assert list(a) == ['测', 'b']
|
|
|
+a = 'b'
|
|
|
+assert list(a) == ['b']
|
|
|
+a = '测'
|
|
|
+assert list(a) == ['测']
|
|
|
+
|
|
|
+# test format()
|
|
|
+assert "Hello, {}!".format("World") == "Hello, World!"
|
|
|
+assert "{} {} {}".format("I", "love", "Python") == "I love Python"
|
|
|
+assert "{0} {1} {2}".format("I", "love", "Python") == "I love Python"
|
|
|
+assert "{2} {1} {0}".format("I", "love", "Python") == "Python love I"
|
|
|
+assert "{0}{1}{0}".format("abra", "cad") == "abracadabra"
|
|
|
+
|
|
|
+assert "{k}={v}".format(k="key", v="value") == "key=value"
|
|
|
+assert "{k}={k}".format(k="key") == "key=key"
|
|
|
+assert "{0}={1}".format('{0}', '{1}') == "{0}={1}"
|
|
|
+assert "{{{0}}}".format(1) == "{1}"
|
|
|
+assert "{0}{1}{1}".format(1, 2, 3) == "122"
|
|
|
+
|
|
|
+# try:
|
|
|
+# "{0}={1}}".format(1, 2)
|
|
|
+# exit(1)
|
|
|
+# except ValueError:
|
|
|
+# pass
|
|
|
+
|
|
|
+assert "{{{}xxx{}x}}".format(1, 2) == "{1xxx2x}"
|
|
|
+assert "{{abc}}".format() == "{abc}"
|
|
|
+
|
|
|
+# test f-string
|
|
|
+stack=[1,2,3,4]; assert f"{stack[2:]}" == '[3, 4]'
|