Browse Source

separate tests

master
alistair 4 years ago
parent
commit
4fcbd1c152
  1. 13
      Makefile
  2. 87
      datatypes.c
  3. 89
      test.c

13
Makefile

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
GXX_COMMAND = gcc -O3
default: datatypes.c datatypes.h
$(GXX_COMMAND) datatypes.c -c
test: default test.c
$(GXX_COMMAND) test.c -c
$(GXX_COMMAND) test.o datatypes.o -o test
clean:
rm *.o
rm test

87
datatypes.c

@ -1,7 +1,6 @@ @@ -1,7 +1,6 @@
#include "datatypes.h"
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
ArrayList new_arlst(int num_elems) {
ArrayList new_list;
@ -40,7 +39,7 @@ ArrayList new_arlst_from_array(void *array, size_t elem_size, int length) { @@ -40,7 +39,7 @@ ArrayList new_arlst_from_array(void *array, size_t elem_size, int length) {
for (int i = 0; i < length; i++) {
void *item = calloc(1, elem_size);
void *start = array + i * elem_size;
memcpy(item, start, elem_size);
memmove(item, start, elem_size);
arlst_add(&l, item);
}
return l;
@ -117,86 +116,6 @@ int arlst_destroy(ArrayList *l) { @@ -117,86 +116,6 @@ int arlst_destroy(ArrayList *l) {
return 0;
}
int basic_test(void) {
// test
int a[] = {1,2,3,4,5};
ArrayList l = new_arlst_from_array(a, sizeof(int), 5);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
arlst_pop(&l);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
int *g = malloc(sizeof(int));
*g = 10;
arlst_add(&l, g);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
arlst_del(&l, 3);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
arlst_pop(&l);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
arlst_push(&l, g);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
for (int i = 0; i < 20; i++) {
int *b = malloc(sizeof(int));
*b = i;
arlst_add(&l, b);
}
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
arlst_destroy(&l);
printf("\n\nFIFOS \n\n");
ListFiFo f = new_fifo(10);
for (int i = 0; i < 100; i++) {
int *b = malloc(sizeof(int));
*b = i;
fifo_add(&f, b);
}
for (int i = 0; i < 90; i++) {
int *b = malloc(sizeof(int));
*b = i;
int *aa = fifo_get(&f);
free(aa);
}
for (int i = 0; i < 10; i++) {
int * a = fifo_get(&f);
printf("ff: %d\n", *a);
free(a);
}
int * z = fifo_get(&f);
printf("ff: %p\n", z);
free(z);
z = fifo_get(&f);
printf("ff: %p\n", z);
free(z);
for (int i = 0; i < 20; i++) {
int *b = malloc(sizeof(int));
*b = i;
fifo_add(&f, b);
}
for (int i = 0; i < 20; i++) {
int * a = fifo_get(&f);
printf("ff: %d\n", *a);
free(a);
}
return 0;
}
ListFiFo new_fifo(int start_size) {
ListFiFo l;
@ -236,7 +155,3 @@ int fifo_add(ListFiFo *l, void *i) { @@ -236,7 +155,3 @@ int fifo_add(ListFiFo *l, void *i) {
return arlst_add(&l->inner, i);
}
int main(int argc, char **argv) {
basic_test();
return 0;
}

89
test.c

@ -0,0 +1,89 @@ @@ -0,0 +1,89 @@
#include "datatypes.h"
#include "stdio.h"
int basic_test(void) {
// test
int a[] = {1,2,3,4,5};
ArrayList l = new_arlst_from_array(a, sizeof(int), 5);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
arlst_pop(&l);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
int *g = malloc(sizeof(int));
*g = 10;
arlst_add(&l, g);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
arlst_del(&l, 3);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
arlst_pop(&l);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
arlst_push(&l, g);
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
for (int i = 0; i < 20; i++) {
int *b = malloc(sizeof(int));
*b = i;
arlst_add(&l, b);
}
for (int i = 0; i < l.size; i++) printf("%d\n", *(int*)arlst_get(&l, i));
printf("\n\n");
arlst_destroy(&l);
printf("\n\nFIFOS \n\n");
ListFiFo f = new_fifo(10);
for (int i = 0; i < 100; i++) {
int *b = malloc(sizeof(int));
*b = i;
fifo_add(&f, b);
}
for (int i = 0; i < 90; i++) {
int *b = malloc(sizeof(int));
*b = i;
int *aa = fifo_get(&f);
free(aa);
}
for (int i = 0; i < 10; i++) {
int * a = fifo_get(&f);
printf("ff: %d\n", *a);
free(a);
}
int * z = fifo_get(&f);
printf("ff: %p\n", z);
free(z);
z = fifo_get(&f);
printf("ff: %p\n", z);
free(z);
for (int i = 0; i < 20; i++) {
int *b = malloc(sizeof(int));
*b = i;
fifo_add(&f, b);
}
for (int i = 0; i < 20; i++) {
int * a = fifo_get(&f);
printf("ff: %d\n", *a);
free(a);
}
return 0;
}
int main(int argc, char **argv) {
basic_test();
return 0;
}
Loading…
Cancel
Save