init
This commit is contained in:
commit
38355d2442
9083 changed files with 1225834 additions and 0 deletions
|
|
@ -0,0 +1,657 @@
|
|||
[case testNewSet]
|
||||
from typing import Set
|
||||
def f() -> Set[int]:
|
||||
return {1, 2, 3}
|
||||
[out]
|
||||
def f():
|
||||
r0 :: set
|
||||
r1 :: object
|
||||
r2 :: int32
|
||||
r3 :: bit
|
||||
r4 :: object
|
||||
r5 :: int32
|
||||
r6 :: bit
|
||||
r7 :: object
|
||||
r8 :: int32
|
||||
r9 :: bit
|
||||
L0:
|
||||
r0 = PySet_New(0)
|
||||
r1 = box(short_int, 2)
|
||||
r2 = PySet_Add(r0, r1)
|
||||
r3 = r2 >= 0 :: signed
|
||||
r4 = box(short_int, 4)
|
||||
r5 = PySet_Add(r0, r4)
|
||||
r6 = r5 >= 0 :: signed
|
||||
r7 = box(short_int, 6)
|
||||
r8 = PySet_Add(r0, r7)
|
||||
r9 = r8 >= 0 :: signed
|
||||
return r0
|
||||
|
||||
[case testNewEmptySet]
|
||||
from typing import Set
|
||||
def f() -> Set[int]:
|
||||
return set()
|
||||
[out]
|
||||
def f():
|
||||
r0 :: set
|
||||
L0:
|
||||
r0 = PySet_New(0)
|
||||
return r0
|
||||
|
||||
[case testNewSetFromIterable]
|
||||
from typing import Set, List
|
||||
def f(l: List[T]) -> Set[T]:
|
||||
return set(l)
|
||||
[out]
|
||||
def f(l):
|
||||
l :: list
|
||||
r0 :: set
|
||||
L0:
|
||||
r0 = PySet_New(l)
|
||||
return r0
|
||||
|
||||
[case testNewSetFromIterable2]
|
||||
def f(x: int) -> int:
|
||||
return x
|
||||
|
||||
def test1() -> None:
|
||||
tmp_list = [1, 3, 5]
|
||||
a = set(f(x) for x in tmp_list)
|
||||
|
||||
def test2() -> None:
|
||||
tmp_tuple = (1, 3, 5)
|
||||
b = set(f(x) for x in tmp_tuple)
|
||||
|
||||
def test3() -> None:
|
||||
tmp_dict = {1: '1', 3: '3', 5: '5'}
|
||||
c = set(f(x) for x in tmp_dict)
|
||||
|
||||
def test4() -> None:
|
||||
d = set(f(x) for x in range(1, 6, 2))
|
||||
|
||||
def test5() -> None:
|
||||
e = set((f(x) for x in range(1, 6, 2)))
|
||||
[out]
|
||||
def f(x):
|
||||
x :: int
|
||||
L0:
|
||||
return x
|
||||
def test1():
|
||||
r0 :: list
|
||||
r1, r2, r3 :: object
|
||||
r4, r5, r6, r7 :: ptr
|
||||
tmp_list :: list
|
||||
r8 :: set
|
||||
r9 :: short_int
|
||||
r10 :: ptr
|
||||
r11 :: native_int
|
||||
r12 :: short_int
|
||||
r13 :: bit
|
||||
r14 :: object
|
||||
r15, x, r16 :: int
|
||||
r17 :: object
|
||||
r18 :: int32
|
||||
r19 :: bit
|
||||
r20 :: short_int
|
||||
a :: set
|
||||
L0:
|
||||
r0 = PyList_New(3)
|
||||
r1 = box(short_int, 2)
|
||||
r2 = box(short_int, 6)
|
||||
r3 = box(short_int, 10)
|
||||
r4 = get_element_ptr r0 ob_item :: PyListObject
|
||||
r5 = load_mem r4 :: ptr*
|
||||
set_mem r5, r1 :: builtins.object*
|
||||
r6 = r5 + WORD_SIZE*1
|
||||
set_mem r6, r2 :: builtins.object*
|
||||
r7 = r5 + WORD_SIZE*2
|
||||
set_mem r7, r3 :: builtins.object*
|
||||
keep_alive r0
|
||||
tmp_list = r0
|
||||
r8 = PySet_New(0)
|
||||
r9 = 0
|
||||
L1:
|
||||
r10 = get_element_ptr tmp_list ob_size :: PyVarObject
|
||||
r11 = load_mem r10 :: native_int*
|
||||
keep_alive tmp_list
|
||||
r12 = r11 << 1
|
||||
r13 = r9 < r12 :: signed
|
||||
if r13 goto L2 else goto L4 :: bool
|
||||
L2:
|
||||
r14 = CPyList_GetItemUnsafe(tmp_list, r9)
|
||||
r15 = unbox(int, r14)
|
||||
x = r15
|
||||
r16 = f(x)
|
||||
r17 = box(int, r16)
|
||||
r18 = PySet_Add(r8, r17)
|
||||
r19 = r18 >= 0 :: signed
|
||||
L3:
|
||||
r20 = r9 + 2
|
||||
r9 = r20
|
||||
goto L1
|
||||
L4:
|
||||
a = r8
|
||||
return 1
|
||||
def test2():
|
||||
r0, tmp_tuple :: tuple[int, int, int]
|
||||
r1 :: set
|
||||
r2, r3, r4 :: object
|
||||
r5, x, r6 :: int
|
||||
r7 :: object
|
||||
r8 :: int32
|
||||
r9, r10 :: bit
|
||||
b :: set
|
||||
L0:
|
||||
r0 = (2, 6, 10)
|
||||
tmp_tuple = r0
|
||||
r1 = PySet_New(0)
|
||||
r2 = box(tuple[int, int, int], tmp_tuple)
|
||||
r3 = PyObject_GetIter(r2)
|
||||
L1:
|
||||
r4 = PyIter_Next(r3)
|
||||
if is_error(r4) goto L4 else goto L2
|
||||
L2:
|
||||
r5 = unbox(int, r4)
|
||||
x = r5
|
||||
r6 = f(x)
|
||||
r7 = box(int, r6)
|
||||
r8 = PySet_Add(r1, r7)
|
||||
r9 = r8 >= 0 :: signed
|
||||
L3:
|
||||
goto L1
|
||||
L4:
|
||||
r10 = CPy_NoErrOccured()
|
||||
L5:
|
||||
b = r1
|
||||
return 1
|
||||
def test3():
|
||||
r0, r1, r2 :: str
|
||||
r3, r4, r5 :: object
|
||||
r6, tmp_dict :: dict
|
||||
r7 :: set
|
||||
r8 :: short_int
|
||||
r9 :: native_int
|
||||
r10 :: short_int
|
||||
r11 :: object
|
||||
r12 :: tuple[bool, short_int, object]
|
||||
r13 :: short_int
|
||||
r14 :: bool
|
||||
r15 :: object
|
||||
r16, x, r17 :: int
|
||||
r18 :: object
|
||||
r19 :: int32
|
||||
r20, r21, r22 :: bit
|
||||
c :: set
|
||||
L0:
|
||||
r0 = '1'
|
||||
r1 = '3'
|
||||
r2 = '5'
|
||||
r3 = box(short_int, 2)
|
||||
r4 = box(short_int, 6)
|
||||
r5 = box(short_int, 10)
|
||||
r6 = CPyDict_Build(3, r3, r0, r4, r1, r5, r2)
|
||||
tmp_dict = r6
|
||||
r7 = PySet_New(0)
|
||||
r8 = 0
|
||||
r9 = PyDict_Size(tmp_dict)
|
||||
r10 = r9 << 1
|
||||
r11 = CPyDict_GetKeysIter(tmp_dict)
|
||||
L1:
|
||||
r12 = CPyDict_NextKey(r11, r8)
|
||||
r13 = r12[1]
|
||||
r8 = r13
|
||||
r14 = r12[0]
|
||||
if r14 goto L2 else goto L4 :: bool
|
||||
L2:
|
||||
r15 = r12[2]
|
||||
r16 = unbox(int, r15)
|
||||
x = r16
|
||||
r17 = f(x)
|
||||
r18 = box(int, r17)
|
||||
r19 = PySet_Add(r7, r18)
|
||||
r20 = r19 >= 0 :: signed
|
||||
L3:
|
||||
r21 = CPyDict_CheckSize(tmp_dict, r10)
|
||||
goto L1
|
||||
L4:
|
||||
r22 = CPy_NoErrOccured()
|
||||
L5:
|
||||
c = r7
|
||||
return 1
|
||||
def test4():
|
||||
r0 :: set
|
||||
r1 :: short_int
|
||||
x :: int
|
||||
r2 :: bit
|
||||
r3 :: int
|
||||
r4 :: object
|
||||
r5 :: int32
|
||||
r6 :: bit
|
||||
r7 :: short_int
|
||||
d :: set
|
||||
L0:
|
||||
r0 = PySet_New(0)
|
||||
r1 = 2
|
||||
x = r1
|
||||
L1:
|
||||
r2 = r1 < 12 :: signed
|
||||
if r2 goto L2 else goto L4 :: bool
|
||||
L2:
|
||||
r3 = f(x)
|
||||
r4 = box(int, r3)
|
||||
r5 = PySet_Add(r0, r4)
|
||||
r6 = r5 >= 0 :: signed
|
||||
L3:
|
||||
r7 = r1 + 4
|
||||
r1 = r7
|
||||
x = r7
|
||||
goto L1
|
||||
L4:
|
||||
d = r0
|
||||
return 1
|
||||
def test5():
|
||||
r0 :: set
|
||||
r1 :: short_int
|
||||
x :: int
|
||||
r2 :: bit
|
||||
r3 :: int
|
||||
r4 :: object
|
||||
r5 :: int32
|
||||
r6 :: bit
|
||||
r7 :: short_int
|
||||
e :: set
|
||||
L0:
|
||||
r0 = PySet_New(0)
|
||||
r1 = 2
|
||||
x = r1
|
||||
L1:
|
||||
r2 = r1 < 12 :: signed
|
||||
if r2 goto L2 else goto L4 :: bool
|
||||
L2:
|
||||
r3 = f(x)
|
||||
r4 = box(int, r3)
|
||||
r5 = PySet_Add(r0, r4)
|
||||
r6 = r5 >= 0 :: signed
|
||||
L3:
|
||||
r7 = r1 + 4
|
||||
r1 = r7
|
||||
x = r7
|
||||
goto L1
|
||||
L4:
|
||||
e = r0
|
||||
return 1
|
||||
|
||||
[case testNewSetFromIterable3]
|
||||
def f1(x: int) -> int:
|
||||
return x
|
||||
|
||||
def f2(x: int) -> int:
|
||||
return x * 10
|
||||
|
||||
def f3(x: int) -> int:
|
||||
return x + 1
|
||||
|
||||
def test() -> None:
|
||||
tmp_list = [1, 2, 3, 4, 5]
|
||||
a = set(f3(x) for x in (f2(y) for y in (f1(z) for z in tmp_list if z < 4)))
|
||||
[out]
|
||||
def f1(x):
|
||||
x :: int
|
||||
L0:
|
||||
return x
|
||||
def f2(x):
|
||||
x, r0 :: int
|
||||
L0:
|
||||
r0 = CPyTagged_Multiply(x, 20)
|
||||
return r0
|
||||
def f3(x):
|
||||
x, r0 :: int
|
||||
L0:
|
||||
r0 = CPyTagged_Add(x, 2)
|
||||
return r0
|
||||
def test():
|
||||
r0 :: list
|
||||
r1, r2, r3, r4, r5 :: object
|
||||
r6, r7, r8, r9, r10, r11 :: ptr
|
||||
tmp_list :: list
|
||||
r12 :: set
|
||||
r13, r14 :: list
|
||||
r15 :: short_int
|
||||
r16 :: ptr
|
||||
r17 :: native_int
|
||||
r18 :: short_int
|
||||
r19 :: bit
|
||||
r20 :: object
|
||||
r21, z :: int
|
||||
r22 :: native_int
|
||||
r23 :: bit
|
||||
r24 :: native_int
|
||||
r25, r26, r27 :: bit
|
||||
r28 :: bool
|
||||
r29 :: bit
|
||||
r30 :: int
|
||||
r31 :: object
|
||||
r32 :: int32
|
||||
r33 :: bit
|
||||
r34 :: short_int
|
||||
r35, r36, r37 :: object
|
||||
r38, y, r39 :: int
|
||||
r40 :: object
|
||||
r41 :: int32
|
||||
r42, r43 :: bit
|
||||
r44, r45, r46 :: object
|
||||
r47, x, r48 :: int
|
||||
r49 :: object
|
||||
r50 :: int32
|
||||
r51, r52 :: bit
|
||||
a :: set
|
||||
L0:
|
||||
r0 = PyList_New(5)
|
||||
r1 = box(short_int, 2)
|
||||
r2 = box(short_int, 4)
|
||||
r3 = box(short_int, 6)
|
||||
r4 = box(short_int, 8)
|
||||
r5 = box(short_int, 10)
|
||||
r6 = get_element_ptr r0 ob_item :: PyListObject
|
||||
r7 = load_mem r6 :: ptr*
|
||||
set_mem r7, r1 :: builtins.object*
|
||||
r8 = r7 + WORD_SIZE*1
|
||||
set_mem r8, r2 :: builtins.object*
|
||||
r9 = r7 + WORD_SIZE*2
|
||||
set_mem r9, r3 :: builtins.object*
|
||||
r10 = r7 + WORD_SIZE*3
|
||||
set_mem r10, r4 :: builtins.object*
|
||||
r11 = r7 + WORD_SIZE*4
|
||||
set_mem r11, r5 :: builtins.object*
|
||||
keep_alive r0
|
||||
tmp_list = r0
|
||||
r12 = PySet_New(0)
|
||||
r13 = PyList_New(0)
|
||||
r14 = PyList_New(0)
|
||||
r15 = 0
|
||||
L1:
|
||||
r16 = get_element_ptr tmp_list ob_size :: PyVarObject
|
||||
r17 = load_mem r16 :: native_int*
|
||||
keep_alive tmp_list
|
||||
r18 = r17 << 1
|
||||
r19 = r15 < r18 :: signed
|
||||
if r19 goto L2 else goto L9 :: bool
|
||||
L2:
|
||||
r20 = CPyList_GetItemUnsafe(tmp_list, r15)
|
||||
r21 = unbox(int, r20)
|
||||
z = r21
|
||||
r22 = z & 1
|
||||
r23 = r22 == 0
|
||||
r24 = 8 & 1
|
||||
r25 = r24 == 0
|
||||
r26 = r23 & r25
|
||||
if r26 goto L3 else goto L4 :: bool
|
||||
L3:
|
||||
r27 = z < 8 :: signed
|
||||
r28 = r27
|
||||
goto L5
|
||||
L4:
|
||||
r29 = CPyTagged_IsLt_(z, 8)
|
||||
r28 = r29
|
||||
L5:
|
||||
if r28 goto L7 else goto L6 :: bool
|
||||
L6:
|
||||
goto L8
|
||||
L7:
|
||||
r30 = f1(z)
|
||||
r31 = box(int, r30)
|
||||
r32 = PyList_Append(r14, r31)
|
||||
r33 = r32 >= 0 :: signed
|
||||
L8:
|
||||
r34 = r15 + 2
|
||||
r15 = r34
|
||||
goto L1
|
||||
L9:
|
||||
r35 = PyObject_GetIter(r14)
|
||||
r36 = PyObject_GetIter(r35)
|
||||
L10:
|
||||
r37 = PyIter_Next(r36)
|
||||
if is_error(r37) goto L13 else goto L11
|
||||
L11:
|
||||
r38 = unbox(int, r37)
|
||||
y = r38
|
||||
r39 = f2(y)
|
||||
r40 = box(int, r39)
|
||||
r41 = PyList_Append(r13, r40)
|
||||
r42 = r41 >= 0 :: signed
|
||||
L12:
|
||||
goto L10
|
||||
L13:
|
||||
r43 = CPy_NoErrOccured()
|
||||
L14:
|
||||
r44 = PyObject_GetIter(r13)
|
||||
r45 = PyObject_GetIter(r44)
|
||||
L15:
|
||||
r46 = PyIter_Next(r45)
|
||||
if is_error(r46) goto L18 else goto L16
|
||||
L16:
|
||||
r47 = unbox(int, r46)
|
||||
x = r47
|
||||
r48 = f3(x)
|
||||
r49 = box(int, r48)
|
||||
r50 = PySet_Add(r12, r49)
|
||||
r51 = r50 >= 0 :: signed
|
||||
L17:
|
||||
goto L15
|
||||
L18:
|
||||
r52 = CPy_NoErrOccured()
|
||||
L19:
|
||||
a = r12
|
||||
return 1
|
||||
|
||||
[case testSetSize]
|
||||
from typing import Set
|
||||
def f() -> int:
|
||||
return len({1, 2, 3})
|
||||
[out]
|
||||
def f():
|
||||
r0 :: set
|
||||
r1 :: object
|
||||
r2 :: int32
|
||||
r3 :: bit
|
||||
r4 :: object
|
||||
r5 :: int32
|
||||
r6 :: bit
|
||||
r7 :: object
|
||||
r8 :: int32
|
||||
r9 :: bit
|
||||
r10 :: ptr
|
||||
r11 :: native_int
|
||||
r12 :: short_int
|
||||
L0:
|
||||
r0 = PySet_New(0)
|
||||
r1 = box(short_int, 2)
|
||||
r2 = PySet_Add(r0, r1)
|
||||
r3 = r2 >= 0 :: signed
|
||||
r4 = box(short_int, 4)
|
||||
r5 = PySet_Add(r0, r4)
|
||||
r6 = r5 >= 0 :: signed
|
||||
r7 = box(short_int, 6)
|
||||
r8 = PySet_Add(r0, r7)
|
||||
r9 = r8 >= 0 :: signed
|
||||
r10 = get_element_ptr r0 used :: PySetObject
|
||||
r11 = load_mem r10 :: native_int*
|
||||
keep_alive r0
|
||||
r12 = r11 << 1
|
||||
return r12
|
||||
|
||||
[case testSetContains]
|
||||
from typing import Set
|
||||
def f() -> bool:
|
||||
x = {3, 4}
|
||||
return (5 in x)
|
||||
[out]
|
||||
def f():
|
||||
r0 :: set
|
||||
r1 :: object
|
||||
r2 :: int32
|
||||
r3 :: bit
|
||||
r4 :: object
|
||||
r5 :: int32
|
||||
r6 :: bit
|
||||
x :: set
|
||||
r7 :: object
|
||||
r8 :: int32
|
||||
r9 :: bit
|
||||
r10 :: bool
|
||||
L0:
|
||||
r0 = PySet_New(0)
|
||||
r1 = box(short_int, 6)
|
||||
r2 = PySet_Add(r0, r1)
|
||||
r3 = r2 >= 0 :: signed
|
||||
r4 = box(short_int, 8)
|
||||
r5 = PySet_Add(r0, r4)
|
||||
r6 = r5 >= 0 :: signed
|
||||
x = r0
|
||||
r7 = box(short_int, 10)
|
||||
r8 = PySet_Contains(x, r7)
|
||||
r9 = r8 >= 0 :: signed
|
||||
r10 = truncate r8: int32 to builtins.bool
|
||||
return r10
|
||||
|
||||
[case testSetRemove]
|
||||
from typing import Set
|
||||
def f() -> Set[int]:
|
||||
x = set() # type: Set[int]
|
||||
x.remove(1)
|
||||
return x
|
||||
[out]
|
||||
def f():
|
||||
r0, x :: set
|
||||
r1 :: object
|
||||
r2 :: bit
|
||||
L0:
|
||||
r0 = PySet_New(0)
|
||||
x = r0
|
||||
r1 = box(short_int, 2)
|
||||
r2 = CPySet_Remove(x, r1)
|
||||
return x
|
||||
|
||||
[case testSetDiscard]
|
||||
from typing import Set
|
||||
def f() -> Set[int]:
|
||||
x = set() # type: Set[int]
|
||||
x.discard(1)
|
||||
return x
|
||||
[out]
|
||||
def f():
|
||||
r0, x :: set
|
||||
r1 :: object
|
||||
r2 :: int32
|
||||
r3 :: bit
|
||||
L0:
|
||||
r0 = PySet_New(0)
|
||||
x = r0
|
||||
r1 = box(short_int, 2)
|
||||
r2 = PySet_Discard(x, r1)
|
||||
r3 = r2 >= 0 :: signed
|
||||
return x
|
||||
|
||||
[case testSetAdd]
|
||||
from typing import Set
|
||||
def f() -> Set[int]:
|
||||
x = set() # type: Set[int]
|
||||
x.add(1)
|
||||
return x
|
||||
[out]
|
||||
def f():
|
||||
r0, x :: set
|
||||
r1 :: object
|
||||
r2 :: int32
|
||||
r3 :: bit
|
||||
L0:
|
||||
r0 = PySet_New(0)
|
||||
x = r0
|
||||
r1 = box(short_int, 2)
|
||||
r2 = PySet_Add(x, r1)
|
||||
r3 = r2 >= 0 :: signed
|
||||
return x
|
||||
|
||||
[case testSetClear]
|
||||
from typing import Set
|
||||
def f() -> Set[int]:
|
||||
x = set() # type: Set[int]
|
||||
x.clear()
|
||||
return x
|
||||
[out]
|
||||
def f():
|
||||
r0, x :: set
|
||||
r1 :: int32
|
||||
r2 :: bit
|
||||
L0:
|
||||
r0 = PySet_New(0)
|
||||
x = r0
|
||||
r1 = PySet_Clear(x)
|
||||
r2 = r1 >= 0 :: signed
|
||||
return x
|
||||
|
||||
[case testSetPop]
|
||||
from typing import Set
|
||||
def f(s : Set[int]) -> int:
|
||||
return s.pop()
|
||||
[out]
|
||||
def f(s):
|
||||
s :: set
|
||||
r0 :: object
|
||||
r1 :: int
|
||||
L0:
|
||||
r0 = PySet_Pop(s)
|
||||
r1 = unbox(int, r0)
|
||||
return r1
|
||||
|
||||
[case testSetUpdate]
|
||||
from typing import Set, List
|
||||
def update(s: Set[int], x: List[int]) -> None:
|
||||
s.update(x)
|
||||
[out]
|
||||
def update(s, x):
|
||||
s :: set
|
||||
x :: list
|
||||
r0 :: int32
|
||||
r1 :: bit
|
||||
L0:
|
||||
r0 = _PySet_Update(s, x)
|
||||
r1 = r0 >= 0 :: signed
|
||||
return 1
|
||||
|
||||
[case testSetDisplay]
|
||||
from typing import Set
|
||||
def f(x: Set[int], y: Set[int]) -> Set[int]:
|
||||
return {1, 2, *x, *y, 3}
|
||||
[out]
|
||||
def f(x, y):
|
||||
x, y, r0 :: set
|
||||
r1 :: object
|
||||
r2 :: int32
|
||||
r3 :: bit
|
||||
r4 :: object
|
||||
r5 :: int32
|
||||
r6 :: bit
|
||||
r7 :: int32
|
||||
r8 :: bit
|
||||
r9 :: int32
|
||||
r10 :: bit
|
||||
r11 :: object
|
||||
r12 :: int32
|
||||
r13 :: bit
|
||||
L0:
|
||||
r0 = PySet_New(0)
|
||||
r1 = box(short_int, 2)
|
||||
r2 = PySet_Add(r0, r1)
|
||||
r3 = r2 >= 0 :: signed
|
||||
r4 = box(short_int, 4)
|
||||
r5 = PySet_Add(r0, r4)
|
||||
r6 = r5 >= 0 :: signed
|
||||
r7 = _PySet_Update(r0, x)
|
||||
r8 = r7 >= 0 :: signed
|
||||
r9 = _PySet_Update(r0, y)
|
||||
r10 = r9 >= 0 :: signed
|
||||
r11 = box(short_int, 6)
|
||||
r12 = PySet_Add(r0, r11)
|
||||
r13 = r12 >= 0 :: signed
|
||||
return r0
|
||||
Loading…
Add table
Add a link
Reference in a new issue