99_bugs.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. # multi-loop generator
  2. out = []
  3. args = map(lambda x: x+1, [1, 2, 3])
  4. for x in args:
  5. for y in args:
  6. out.append((x, y))
  7. assert out == [(2, 3), (2, 4)]
  8. # multi loop bug
  9. out = []
  10. a = [1, 2]
  11. for i in a:
  12. for j in a:
  13. out.append((i, j))
  14. assert (out == [(1, 1), (1, 2), (2, 1), (2, 2)]), out
  15. # https://github.com/pocketpy/pocketpy/issues/37
  16. mp = map(lambda x: x**2, [1, 2, 3, 4, 5] )
  17. assert list(mp) == [1, 4, 9, 16, 25]
  18. assert not 3>4
  19. def f(x):
  20. if x>1:
  21. return 1
  22. assert f(2) == 1
  23. assert f(0) == None
  24. a = [1, 2]
  25. b = [3, 4]
  26. assert a.append == a.append
  27. assert a.append is not a.append
  28. assert a.append is not b.append
  29. assert a.append != b.append
  30. inq = 0
  31. if not inq:
  32. assert True
  33. else:
  34. assert False
  35. if inq is not 1:
  36. assert True
  37. if inq is not 0:
  38. assert False
  39. def g(x):
  40. return x
  41. def f(x):
  42. return x
  43. assert (g(1), 2) == (1, 2)
  44. assert (
  45. g(1),
  46. 2
  47. ) == (1, 2)
  48. assert f((
  49. g(1),
  50. 2
  51. )) == (1, 2)
  52. def f():
  53. for i in range(4):
  54. _ = 0
  55. while i: --i
  56. f()
  57. # class A: a=b=1
  58. # class A: a, b = 1, 2
  59. bmi = 0.0
  60. def test(a):
  61. if a:
  62. bmi = 1.4
  63. return f'{bmi:.2f}'
  64. assert test(1) == '1.40'
  65. try:
  66. assert test(0) == '0.00'
  67. exit(1)
  68. except UnboundLocalError:
  69. pass
  70. g = 1
  71. def f():
  72. global g
  73. ++g
  74. f(); f()
  75. assert g == 3
  76. def f(**kw):
  77. x = 1
  78. y = 2
  79. return kw, x, y
  80. assert f(x=4, z=1) == ({'x': 4, 'z': 1}, 1, 2)
  81. def g(**kw):
  82. x, y = 1, 2
  83. return kw
  84. ret = g(
  85. a=1, b=2, c=3, d=4, e=5, f=6, g=7, h=8, i=9,
  86. j=10, k=11, l=12, m=13, n=14, o=15, p=16, q=17,
  87. r=18, s=19, t=20, u=21, v=22, w=23, x=24, y=25,
  88. z=26
  89. )
  90. assert ret == {chr(i+97): i+1 for i in range(26)}
  91. assert g(**ret) == ret
  92. assert g(**g(**ret)) == ret
  93. # other known issues:
  94. # 1. d.extend(d) if d is deque
  95. g = 0
  96. def test():
  97. global g
  98. g += 1
  99. return g
  100. a = [1, 10, 3]
  101. a[test()] += 1
  102. assert (a == [1, 11, 3]), a
  103. assert (g == 1), g