Mercurial > games > semicongine
comparison tests/test_storage.nim @ 1286:ad9091fde244
add: storage tests, fix something not worth mentioning
| author | sam <sam@basx.dev> | 
|---|---|
| date | Tue, 30 Jul 2024 14:48:30 +0700 | 
| parents | |
| children | df3c075e5dea | 
   comparison
  equal
  deleted
  inserted
  replaced
| 1285:6d16003406fb | 1286:ad9091fde244 | 
|---|---|
| 1 import std/strformat | |
| 2 | |
| 3 import ../semicongine | |
| 4 | |
| 5 proc testSimple(storage: StorageType) = | |
| 6 const TEST_VALUE = 42 | |
| 7 const KEY = "test" | |
| 8 | |
| 9 # get default | |
| 10 assert storage.load(KEY, 0) == default(type(TEST_VALUE)) | |
| 11 | |
| 12 # save and load custom | |
| 13 store(storage, KEY, TEST_VALUE) | |
| 14 assert storage.load(KEY, 0) == TEST_VALUE | |
| 15 | |
| 16 proc stressTest(storage: StorageType) = | |
| 17 for i in 1 .. 10000: | |
| 18 let key = &"key-{i}" | |
| 19 store(storage, key, i) | |
| 20 assert storage.load(key, 0) == i | |
| 21 | |
| 22 proc main() = | |
| 23 SystemStorage.purge() | |
| 24 echo "SystemStorage: Testing simple store/load" | |
| 25 SystemStorage.testSimple() | |
| 26 | |
| 27 UserStorage.purge() | |
| 28 echo "UserStorage: Testing simple store/load" | |
| 29 UserStorage.testSimple() | |
| 30 | |
| 31 echo "Stress test with 10'000 saves/loads" | |
| 32 SystemStorage.stressTest() | |
| 33 | |
| 34 SystemStorage.purge() | |
| 35 UserStorage.purge() | |
| 36 | |
| 37 | |
| 38 when isMainModule: | |
| 39 main() | 
