1
0

ldtk_cjson.py 980 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. try:
  2. import os
  3. except ImportError:
  4. exit(0)
  5. import sys
  6. is_pkpy = not hasattr(sys, 'getrefcount')
  7. os.chdir('benchmarks')
  8. if is_pkpy:
  9. try:
  10. import cjson as json
  11. except ImportError:
  12. print('[cJSON not Enabled]')
  13. exit(0)
  14. else:
  15. import json
  16. _2489KB = 'WorldMap_GridVania_layout.ldtk'
  17. _1093KB = 'WorldMap_Free_layout.ldtk'
  18. _339KB = 'Typical_2D_platformer_example.ldtk'
  19. with open(f'res/{_2489KB}', 'r') as f:
  20. json_content = f.read()
  21. data: dict = json.loads(json_content)
  22. assert isinstance(data, dict)
  23. # serialize and deserialize
  24. dumped: str = json.dumps(data)
  25. for _ in range(10):
  26. loaded: dict = json.loads(dumped)
  27. assert len(data) == len(loaded)
  28. assert data == loaded
  29. #### very very slow!!
  30. import pickle
  31. with open(f'res/{_339KB}', 'r') as f:
  32. json_content = f.read()
  33. data: dict = json.loads(json_content)
  34. data_pickled: bytes = pickle.dumps(data)
  35. assert isinstance(data_pickled, bytes)
  36. assert pickle.loads(data_pickled) == data