main.c 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #include "sllist.h"
  2. #include "common.h"
  3. static inline int test_create()
  4. {
  5. sl_list *a = sllist_create();
  6. _assertNotNull(a);
  7. _assertEqual(sllist_count(a), 0);
  8. _assertEqual(sllist_count(sllist_clear(a)), 0);
  9. sllist_destroy(a);
  10. return 0;
  11. }
  12. static inline int add1_fnc(void **_i, void *nullable)
  13. {
  14. (void) nullable;
  15. int * i = (int *)_i;
  16. (*i)++;
  17. return 1;
  18. }
  19. static inline int test_add()
  20. {
  21. unsigned long long i;
  22. sl_list *a = sllist_create();
  23. _assertNotNull(a);
  24. _assertEqual(sllist_count(a), 0);
  25. sllist_pushback(a, (void *)3);
  26. _assertEqual(sllist_count(a), 1);
  27. _assertEqual(sllist_at(a, 0), 3);
  28. sllist_pushback(a, (void *)2);
  29. _assertEqual(sllist_count(a), 2);
  30. _assertEqual(sllist_at(a, 0), 3);
  31. _assertEqual(sllist_at(a, 1), 2);
  32. _assertEqual(sllist_popback(a), 2);
  33. _assertEqual(sllist_count(a), 1);
  34. _assertEqual(sllist_at(a, 0), 3);
  35. sllist_clear(a);
  36. _assertEqual(sllist_count(a), 0);
  37. for (i=0; i < 1024; ++i)
  38. sllist_pushback(a, (void *)(i * 2));
  39. _assertEqual(sllist_count(a), 1024);
  40. _assertEqual(sllist_at(a, 0), 0);
  41. _assertEqual(sllist_at(a, 1023), 2046);
  42. _assertEqual(sllist_at(a, 1024), 0);
  43. i = 0;
  44. _assertEqual(sllist_find(a, sllist_cmp_int, (void*)i), 0);
  45. i = 2;
  46. _assertEqual(sllist_find(a, sllist_cmp_int, (void*)i), 1);
  47. i = 2046;
  48. _assertEqual(sllist_find(a, sllist_cmp_int, (void*)i), 1023);
  49. i = 2048;
  50. _assertEqual(sllist_find(a, sllist_cmp_int, (void*)i), -1);
  51. sllist_foreach(a, add1_fnc, NULL);
  52. _assertEqual(sllist_count(a), 1024);
  53. _assertEqual(sllist_at(a, 0), 1);
  54. _assertEqual(sllist_at(a, 1023), 2047);
  55. _assertEqual(sllist_at(a, 1024), 0);
  56. i = 1;
  57. _assertEqual(sllist_find(a, sllist_cmp_int, (void*)i), 0);
  58. i = 3;
  59. _assertEqual(sllist_find(a, sllist_cmp_int, (void*)i), 1);
  60. i = 2047;
  61. _assertEqual(sllist_find(a, sllist_cmp_int, (void*)i), 1023);
  62. while (sllist_count(a))
  63. sllist_popback(a);
  64. for (i=0; i < 1024; ++i)
  65. sllist_pushback(a, (void *)(i * 2));
  66. _assertEqual(sllist_count(a), 1024);
  67. _assertEqual(sllist_at(a, 0), 0);
  68. _assertEqual(sllist_at(a, 1023), 2046);
  69. _assertEqual(sllist_at(a, 1024), 0);
  70. sllist_destroy(a);
  71. return 0;
  72. }
  73. int main()
  74. {
  75. int success = 1;
  76. success &= !test_create();
  77. success &= !test_add();
  78. exit(success ? EXIT_SUCCESS: EXIT_FAILURE);
  79. }