| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- [case testBytesBasics]
- def f(num: int, l: list, d: dict, s: str) -> None:
- b1 = bytes()
- b2 = bytes(num)
- b3 = bytes(l)
- b4 = bytes(d)
- b5 = bytes(s)
- [out]
- def f(num, l, d, s):
- num :: int
- l :: list
- d :: dict
- s :: str
- r0, r1 :: object
- r2, b1 :: bytes
- r3, r4, r5 :: object
- r6, b2, r7, b3, r8, b4, r9, b5 :: bytes
- L0:
- r0 = load_address PyBytes_Type
- r1 = PyObject_CallFunctionObjArgs(r0, 0)
- r2 = cast(bytes, r1)
- b1 = r2
- r3 = load_address PyBytes_Type
- r4 = box(int, num)
- r5 = PyObject_CallFunctionObjArgs(r3, r4, 0)
- r6 = cast(bytes, r5)
- b2 = r6
- r7 = PyBytes_FromObject(l)
- b3 = r7
- r8 = PyBytes_FromObject(d)
- b4 = r8
- r9 = PyBytes_FromObject(s)
- b5 = r9
- return 1
- [case testBytearrayBasics]
- def f(s: str, num: int) -> None:
- a = bytearray()
- b = bytearray(s)
- c = bytearray(num)
- [out]
- def f(s, num):
- s :: str
- num :: int
- r0 :: object
- r1 :: str
- r2, r3, a :: object
- r4 :: bytes
- b, r5 :: object
- r6 :: bytes
- c :: object
- L0:
- r0 = builtins :: module
- r1 = 'bytearray'
- r2 = CPyObject_GetAttr(r0, r1)
- r3 = PyObject_CallFunctionObjArgs(r2, 0)
- a = r3
- r4 = PyByteArray_FromObject(s)
- b = r4
- r5 = box(int, num)
- r6 = PyByteArray_FromObject(r5)
- c = r6
- return 1
- [case testBytesEquality]
- def eq(x: bytes, y: bytes) -> bool:
- return x == y
- def neq(x: bytes, y: bytes) -> bool:
- return x != y
- [out]
- def eq(x, y):
- x, y :: bytes
- r0 :: i32
- r1, r2 :: bit
- L0:
- r0 = CPyBytes_Compare(x, y)
- r1 = r0 >= 0 :: signed
- r2 = r0 == 1
- return r2
- def neq(x, y):
- x, y :: bytes
- r0 :: i32
- r1, r2 :: bit
- L0:
- r0 = CPyBytes_Compare(x, y)
- r1 = r0 >= 0 :: signed
- r2 = r0 != 1
- return r2
- [case testBytesSlicing]
- def f(a: bytes, start: int, end: int) -> bytes:
- return a[start:end]
- [out]
- def f(a, start, end):
- a :: bytes
- start, end :: int
- r0 :: bytes
- L0:
- r0 = CPyBytes_GetSlice(a, start, end)
- return r0
- [case testBytesIndex]
- def f(a: bytes, i: int) -> int:
- return a[i]
- [out]
- def f(a, i):
- a :: bytes
- i, r0 :: int
- L0:
- r0 = CPyBytes_GetItem(a, i)
- return r0
- [case testBytesConcat]
- def f(a: bytes, b: bytes) -> bytes:
- return a + b
- [out]
- def f(a, b):
- a, b, r0 :: bytes
- L0:
- r0 = CPyBytes_Concat(a, b)
- return r0
- [case testBytesJoin]
- from typing import List
- def f(b: List[bytes]) -> bytes:
- return b" ".join(b)
- [out]
- def f(b):
- b :: list
- r0, r1 :: bytes
- L0:
- r0 = b' '
- r1 = CPyBytes_Join(r0, b)
- return r1
- [case testBytesLen]
- def f(b: bytes) -> int:
- return len(b)
- [out]
- def f(b):
- b :: bytes
- r0 :: ptr
- r1 :: native_int
- r2 :: short_int
- L0:
- r0 = get_element_ptr b ob_size :: PyVarObject
- r1 = load_mem r0 :: native_int*
- keep_alive b
- r2 = r1 << 1
- return r2
- [case testBytesFormatting]
- def f(var: bytes, num: int) -> None:
- b1 = b'aaaa%bbbbb%s' % (var, var)
- b2 = b'aaaa%bbbbb%s%d' % (var, var, num)
- b3 = b'%b' % var
- b4 = b'%ssss' % var
- [typing fixtures/typing-full.pyi]
- [out]
- def f(var, num):
- var :: bytes
- num :: int
- r0, r1, r2, b1, r3 :: bytes
- r4 :: tuple[bytes, bytes, int]
- r5, r6 :: object
- r7, b2, r8, b3, r9, r10, b4 :: bytes
- L0:
- r0 = b'aaaa'
- r1 = b'bbbb'
- r2 = CPyBytes_Build(4, r0, var, r1, var)
- b1 = r2
- r3 = b'aaaa%bbbbb%s%d'
- r4 = (var, var, num)
- r5 = box(tuple[bytes, bytes, int], r4)
- r6 = PyNumber_Remainder(r3, r5)
- r7 = cast(bytes, r6)
- b2 = r7
- r8 = CPyBytes_Build(1, var)
- b3 = r8
- r9 = b'sss'
- r10 = CPyBytes_Build(2, var, r9)
- b4 = r10
- return 1
|