You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 00:45:53 +08:00
85 lines
1.6 KiB
Python
85 lines
1.6 KiB
Python
# From 3.6.10 test_binascii.py
|
|
# Bug was getting "while c and noise" parsed correctly
|
|
# and not put into the "ifelsesmt"
|
|
|
|
|
|
# RUNNABLE!
|
|
def addnoise(c, noise):
|
|
while c and noise:
|
|
if c < 3:
|
|
c = 2
|
|
else:
|
|
c = 3
|
|
noise = False
|
|
return c
|
|
|
|
|
|
assert addnoise(0, True) == 0
|
|
assert addnoise(1, False) == 1
|
|
assert addnoise(2, True) == 2
|
|
assert addnoise(3, True) == 3
|
|
assert addnoise(4, True) == 3
|
|
assert addnoise(5, False) == 5
|
|
|
|
|
|
# From 3.6.10 test_dbm_dumb.py
|
|
# Bug was getting attaching "else" to the right "if" in the
|
|
# presence of a loop.
|
|
def test_random(a, r):
|
|
x = 0
|
|
for dummy in r:
|
|
if dummy:
|
|
if a:
|
|
x += 2
|
|
else:
|
|
x += 1
|
|
return x
|
|
|
|
|
|
assert test_random(True, [1]) == 2
|
|
assert test_random(True, [1, 1]) == 4
|
|
assert test_random(False, [1]) == 0
|
|
assert test_random(False, [1, 1]) == 0
|
|
|
|
|
|
# From 2.7.17 test_frozen.py
|
|
# Bug was getting making sure we have "try" not
|
|
# "try"/"else"
|
|
def test_frozen(a, b):
|
|
try:
|
|
x = 1 / a
|
|
except:
|
|
x = 2
|
|
|
|
try:
|
|
x += 3 / b
|
|
except:
|
|
x += 4
|
|
|
|
return x
|
|
|
|
|
|
assert test_frozen(1, 1) == 4.0
|
|
assert test_frozen(0, 1) == 5.0
|
|
assert test_frozen(0.5, 0) == 6.0
|
|
assert test_frozen(0, 0.5) == 8.0
|
|
|
|
|
|
# From 3.6.10 test_binop.py
|
|
# Bug was getting "other += 3" outside of "if"/"else.
|
|
def __floordiv__(a, b):
|
|
other = 0
|
|
if a:
|
|
other = 1
|
|
else:
|
|
if not b:
|
|
return 2
|
|
other += 3
|
|
return other
|
|
|
|
|
|
assert __floordiv__(True, True) == 4
|
|
assert __floordiv__(True, False) == 4
|
|
assert __floordiv__(False, True) == 3
|
|
assert __floordiv__(False, False) == 2
|