Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. from random import randint
  2. r = randint
  3.  
  4. a = []
  5. u = set()
  6.  
  7. def init():
  8. global a
  9. a[:] = []
  10. print('my_vector::my_vector <T> a;')
  11.  
  12.  
  13. def push():
  14. global a
  15. a.append(0)
  16. print('a.push_back(T());')
  17. print('assert(a.size() == ' + str(len(a)) + ');')
  18.  
  19. def pop():
  20. global a
  21. if len(a) > 0:
  22. a.pop()
  23. print('a.pop_back();')
  24. print('assert(a.size() == ' + str(len(a)) + ');')
  25.  
  26. def empty():
  27. global a
  28. print('assert(a.empty() == ' + str(int(len(a) == 0)) + ');')
  29.  
  30. def size():
  31. global a
  32. print('assert(a.size() == ' + str(len(a)) + ');')
  33.  
  34.  
  35. def reserve(x):
  36. global a
  37. print('a.reserve(' + str(x) + ');')
  38.  
  39. def resize(x):
  40. global a
  41. if x <= len(a):
  42. a[:] = a[:x]
  43. else:
  44. a += [0 for i in range(x - len(a))]
  45. print('a.resize(' + str(x) + ');')
  46. print('assert(a.size() == ' + str(len(a)) + ');')
  47.  
  48. def clear():
  49. global a
  50. a[:] = []
  51. print('a.clear();')
  52. print('assert(a.empty() == true);')
  53.  
  54. def idx(i):
  55. global a
  56. a[i] = 0
  57. print('a[' + str(i) + '] = T();')
  58.  
  59. def chaos():
  60. abc = 'abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  61. names = []
  62. while len(names) < 10:
  63. s = ''.join([abc[r(0, len(abc) - 1)] for i in range(1, 10)])
  64. if s in u:
  65. continue
  66. u.add(s)
  67. names.append(s)
  68.  
  69. print('my_vector::my_vector <T> ' + names[0] + ';')
  70. for i in names[1:-1]:
  71. print('my_vector::my_vector <T> ' + i + '(' + str(r(1, 50)) + ');')
  72. print('my_vector::my_vector <T> ' + names[-1] + '(' + names[r(0, 1)] + ');')
  73. for i in range(10):
  74. idx = r(0, 9)
  75. jdx = r(0, 9)
  76. qdx = r(0, 9)
  77. print(names[idx] + ' = ' + names[jdx] + ' = ' + names[qdx] + ';')
  78. print('assert(' + names[idx] + '.size() == ' + names[jdx] + '.size());')
  79. print('assert(' + names[idx] + '.size() == ' + names[qdx] + '.size());')
  80. print('assert(' + names[qdx] + '.size() == ' + names[jdx] + '.size());')
  81.  
  82.  
  83. init()
  84. mx = 50
  85. zero = [push, pop, clear, empty, size]
  86. one = [resize, reserve]
  87. for j in range(20):
  88. for i in range(1, r(1, mx)):
  89. for k in range(10):
  90. zero[r(0, len(zero) - 1)]()
  91. one[r(0, len(one) - 1)](r(1, mx))
  92. if len(a) > 0:
  93. idx(r(0, len(a) - 1))
  94. chaos()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement