ldtk_cjson.py 866 B

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