Anophoo

tests2

Oct 23rd, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.19 KB | None | 0 0
  1. int testAppend1(){
  2. List l;
  3. ListNew(&l);
  4. int x = 10;
  5. ListAppend(&l, &x, sizeof(int));
  6. int y;
  7. ListGet(&l, 0, &y);
  8. return (y == 10 && y == x);
  9. }
  10.  
  11. int testAppend2(){
  12. List l;
  13. ListNew(&l);
  14. int x = 10;
  15. ListAppend(&l, &x, sizeof(int));
  16. x++;
  17. ListAppend(&l, &x, sizeof(int));
  18. x++;
  19. ListAppend(&l, &x, sizeof(int));
  20. int ans[10];
  21. ListGet(&l, 0, ans);
  22. ListGet(&l, 1, ans+1);
  23. ListGet(&l, 2, ans+2);
  24. // printf("results - %d, %d, %d\n", ans[0], ans[1], ans[2]);
  25. return (ans[0] == 10 && ans[1] == 11 && ans[2] == 12);
  26. }
  27.  
  28. int testAppend3(){
  29. List l;
  30. ListNew(&l);
  31. int ans = 0;
  32. for (int i=0; i<1000; i++) {
  33. ListAppend(&l, &i, sizeof(int));
  34. ans = ans + i;
  35. }
  36. int tmp;
  37. int sum = 0;
  38. for (int i=0; i<1000; i++) {
  39. ListGet(&l, i, &tmp);
  40. sum = sum + tmp;
  41. }
  42.  
  43. return (sum == ans);
  44. }
  45.  
  46. int testAppend4(){
  47. List l;
  48. ListNew(&l);
  49. int k = 100;
  50. char c = 11;
  51. ListAppend(&l, &k, sizeof(int));
  52. ListAppend(&l, &c, sizeof(char));
  53. int arr1[10];
  54. ListGet(&l, 0, arr1);
  55. char arr2[10];
  56. ListGet(&l, 1, arr2);
  57. return (arr1[0] == 100 && arr2[0] == 11);
  58. }
  59.  
  60. int testAppend5(){
  61. List l;
  62. ListNew(&l);
  63. int k = 100;
  64. char c = 11;
  65. ListAppend(&l, &k, sizeof(int));
  66. ListAppend(&l, &c, sizeof(char));
  67. k++;
  68. c++;
  69. ListAppend(&l, &k, sizeof(int));
  70. ListAppend(&l, &c, sizeof(char));
  71. int arr1[10];
  72. ListGet(&l, 0, arr1);
  73. ListGet(&l, 2, arr1+1);
  74. char arr2[10];
  75. ListGet(&l, 1, arr2);
  76. ListGet(&l, 3, arr2+1);
  77. return (arr1[0] == 100 && arr1[1] == 101 && arr2[0] == 11 && arr2[1] == 12);
  78. }
  79.  
  80. int testAppend6(){
  81. List l;
  82. ListNew(&l);
  83. int sum1 = 0, sum2 = 0;
  84. char c = 0;
  85. for (int i=0; i<1000; i++) {
  86. ListAppend(&l, &i, sizeof(int));
  87. ListAppend(&l, &c, sizeof(char));
  88. sum1 = sum1 + i;
  89. sum2 = sum2 + c;
  90. c++;
  91. }
  92. int tmp1;
  93. char tmp2;
  94. for (int i=0; i<2000; i+=2) {
  95. ListGet(&l, i, &tmp1);
  96. ListGet(&l, i+1, &tmp2);
  97. sum1 = sum1 - tmp1;
  98. sum2 = sum2 - tmp2;
  99. }
  100.  
  101. return (sum1 == 0 && sum2 == 0);
  102. }
  103.  
  104. int testAppend7(){
  105. List l;
  106. ListNew(&l);
  107. char * str = "abc";
  108. ListAppend(&l, str, strlen(str)+1);
  109. int tmp = 7;
  110. ListAppend(&l, &tmp, sizeof(int));
  111. tmp = 0;
  112. char res[4];
  113. ListGet(&l, 1, &tmp);
  114. ListGet(&l, 0, res);
  115. return (tmp == 7 && strcmp(str, res) == 0);
  116. }
  117.  
  118. int testAppend8(){
  119. List l;
  120. ListNew(&l);
  121. char * str = "abc";
  122. ListAppend(&l, str, strlen(str)+1);
  123. int tmp = 7;
  124. ListAppend(&l, &tmp, sizeof(int));
  125. tmp = 0;
  126. char * ptr = strdup("123qweqt8eq7wgdgdasjdgasd");
  127. ListAppend(&l, &ptr, sizeof(char *));
  128. char res[4];
  129. ListGet(&l, 1, &tmp);
  130. ListGet(&l, 0, res);
  131. char * resPtr;
  132. ListGet(&l, 2, &resPtr);
  133.  
  134. return (tmp == 7 && strcmp(str, res) == 0 && strcmp(ptr, resPtr) == 0);
  135. }
  136.  
  137. int testRemove9(){
  138. List l;
  139. ListNew(&l);
  140. int x = 10;
  141. ListAppend(&l, &x, sizeof(int));
  142. x++;
  143. ListAppend(&l, &x, sizeof(int));
  144. ListRemove(&l, 0);
  145. int y;
  146. ListGet(&l, 0, &y);
  147. return (y == 11 && y == x);
  148. }
  149.  
  150. int testRemove10(){
  151. List l;
  152. ListNew(&l);
  153. int x = 10;
  154. ListAppend(&l, &x, sizeof(int));
  155. x++;
  156. ListAppend(&l, &x, sizeof(int));
  157. x++;
  158. ListAppend(&l, &x, sizeof(int));
  159.  
  160. ListRemove(&l, 2);
  161. ListRemove(&l, 0);
  162. int ans[10];
  163. ListGet(&l, 0, ans);
  164.  
  165. return (ans[0] == 11);
  166. }
  167.  
  168. int testRemove11(){
  169. List l;
  170. ListNew(&l);
  171. int ans = 0;
  172. for (int i=0; i<1000; i++) {
  173. ListAppend(&l, &i, sizeof(int));
  174. if (i >= 500) {
  175. ans = ans + i;
  176. }
  177. }
  178.  
  179. for (int i=0; i<500; i++) {
  180. ListRemove(&l, 0);
  181. }
  182.  
  183. int tmp;
  184. int sum = 0;
  185. for (int i=0; i<500; i++) {
  186. ListGet(&l, i, &tmp);
  187. sum = sum + tmp;
  188. }
  189.  
  190. return (sum == ans);
  191. }
  192.  
  193. int testRemove12(){
  194. List l;
  195. ListNew(&l);
  196. int k = 100;
  197. char c = 11;
  198. ListAppend(&l, &k, sizeof(int));
  199. ListAppend(&l, &c, sizeof(char));
  200. ListRemove(&l, 1);
  201. ListRemove(&l, 0);
  202. ListAppend(&l, &k, sizeof(int));
  203. ListAppend(&l, &c, sizeof(char));
  204. ListAppend(&l, &k, sizeof(int));
  205. ListAppend(&l, &c, sizeof(char));
  206. ListRemove(&l, 1);
  207. ListRemove(&l, 0);
  208. int arr1[10];
  209. ListGet(&l, 0, arr1);
  210. char arr2[10];
  211. ListGet(&l, 1, arr2);
  212. return (arr1[0] == 100 && arr2[0] == 11);
  213. }
  214.  
  215. int testRemove13(){
  216. List l;
  217. ListNew(&l);
  218. int k = 100;
  219. char c = 11;
  220. ListAppend(&l, &k, sizeof(int));
  221. ListAppend(&l, &c, sizeof(char));
  222. k++;
  223. c++;
  224. ListAppend(&l, &k, sizeof(int));
  225. ListAppend(&l, &c, sizeof(char));
  226. ListRemove(&l, 2);
  227. ListRemove(&l, 2);
  228. ListAppend(&l, &k, sizeof(int));
  229. ListAppend(&l, &c, sizeof(char));
  230.  
  231. int arr1[10];
  232. ListGet(&l, 0, arr1);
  233. ListGet(&l, 2, arr1+1);
  234. char arr2[10];
  235. ListGet(&l, 1, arr2);
  236. ListGet(&l, 3, arr2+1);
  237. return (arr1[0] == 100 && arr1[1] == 101 && arr2[0] == 11 && arr2[1] == 12);
  238. }
  239.  
  240.  
  241. int sum19 = 0;
  242. void testPrint14F(void * d) {
  243. sum19 += *(int *)d;
  244. }
  245.  
  246. int testPrint14(){
  247. List l;
  248. ListNew(&l);
  249. int sum1 = 0;
  250. char c = 0;
  251. for (int i=0; i<1000; i++) {
  252. ListAppend(&l, &i, sizeof(int));
  253. sum1 = sum1 + i;
  254. }
  255.  
  256. ListPrint(&l, testPrint14F);
  257. return (sum19 == sum1);
  258. }
  259.  
  260. int sum20 = 0;
  261. int counter20 = 0;
  262. void testPrint15F(void * d) {
  263. if (counter20 % 2 == 0)
  264. sum20 += *(int *)d;
  265. else
  266. sum20 += *(char *)d;
  267. counter20++;
  268. }
  269.  
  270. int testPrint15(){
  271. List l;
  272. ListNew(&l);
  273. int sum1 = 0;
  274. char c = 0;
  275. for (int i=0; i<1000; i++) {
  276. ListAppend(&l, &i, sizeof(int));
  277. ListAppend(&l, &c, sizeof(char));
  278. sum1 = sum1 + i + c;
  279. }
  280.  
  281. ListPrint(&l, testPrint15F);
  282. return (sum20 == sum1);
  283. }
  284.  
  285. int testInsert16(){
  286. List l;
  287. ListNew(&l);
  288. int x = 10;
  289. ListAppend(&l, &x, sizeof(int));
  290. ListInsert(&l, 0, &x, sizeof(int));
  291. x++;
  292. ListInsert(&l, 1, &x, sizeof(int));
  293. x++;
  294. ListInsert(&l, 2, &x, sizeof(int));
  295. int ans[10];
  296. ListGet(&l, 0, ans);
  297. ListGet(&l, 1, ans+1);
  298. ListGet(&l, 2, ans+2);
  299.  
  300. return (ans[0] == 10 && ans[1] == 11 && ans[2] == 12);
  301. }
  302.  
  303. int testInsert17(){
  304. List l;
  305. ListNew(&l);
  306. int ans = 0;
  307. for (int i=0; i<1000; i++) {
  308. ListInsert(&l, i, &i, sizeof(int));
  309. ans = ans + i;
  310. }
  311. int tmp;
  312. int sum = 0;
  313. for (int i=0; i<1000; i++) {
  314. ListGet(&l, i, &tmp);
  315. sum = sum + tmp;
  316. }
  317.  
  318. return (sum == ans);
  319. }
  320.  
  321. int testInsert18(){
  322. List l;
  323. ListNew(&l);
  324. char * str = "abc";
  325. int tmp = 7;
  326. ListAppend(&l, &tmp, sizeof(int));
  327. ListInsert(&l, 0, str, strlen(str)+1);
  328. tmp = 0;
  329. char res[4];
  330. ListGet(&l, 1, &tmp);
  331. ListGet(&l, 0, res);
  332. return (tmp == 7 && strcmp(str, res) == 0);
  333. }
  334.  
  335.  
  336. int main() {
  337. int numTests = 18;
  338. int score = 0;
  339. if (testAppend1()) score++;
  340. if (testAppend2()) score++;
  341. if (testAppend3()) score++;
  342. if (testAppend4()) score++;
  343. if (testAppend5()) score++;
  344. if (testAppend6()) score++;
  345. if (testAppend7()) score++;
  346. if (testAppend8()) score++;
  347. if (testRemove9()) score++;
  348. if (testRemove10()) score++;
  349. if (testRemove11()) score++;
  350. if (testRemove12()) score++;
  351. if (testRemove13()) score++;
  352. if (testPrint14()) score++;
  353. if (testPrint15()) score++;
  354. if (testInsert16()) score++;
  355. if (testInsert17()) score++;
  356. if (testInsert18()) score++;
  357.  
  358. printf("%s%d%s%d\n", "score: ", score, "/", numTests);
  359. printf("%s\n", "hey");
  360. return 0;
  361. }
Advertisement
Add Comment
Please, Sign In to add comment