123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /**
- * This is a test for dynar in $package$
- */
- #include "si_test.h"
- #include "dynar.h"
- #include <string.h>
- int dynar_string_compare(const void * one, const void * two) {
- if(!one) {
- if(!two) return 0;
- return 1;
- }
- if(!two) return -1;
- if(!*(char*)one) {
- if(!*(char *)two) return 0;
- return 1;
- }
- if(!*(char *)two) return -1;
-
- printf("Compare: %s, %s\n",*((const char**) one), *((const char**) two));
- return strcmp( *((const char**) one), *((const char**) two));
- }
- TEST_FUNC(dynar) {
- int index;
- const char * t = "wine";
- Dynar * arr;
- arr = dynar_newptr(4);
- TEST_NOTNULL(dynar_putptr(arr, 0, "zebra"));
- TEST_NOTNULL(dynar_putptr(arr, 1, "apple"));
- TEST_NOTNULL(dynar_putptr(arr, 2, "bread"));
- TEST_NOTNULL(dynar_putptr(arr, 3, "wine"));
- dynar_grow(arr, 9);
- TEST_NOTNULL(dynar_putptr(arr, 4, "thyme"));
- for(index = 5; index < dynar_size(arr); index ++) {
- dynar_putptr(arr, index, NULL);
- }
-
- for(index = 0; index < dynar_size(arr); index ++) {
- char * str = dynar_getptr(arr, index);
- if(str) {
- printf("Array index %d : %s\n", index, str);
- } else {
- printf("Array index %d : NULL\n", index);
- }
- }
-
-
- TEST_NOTNULL(dynar_qsort(arr, dynar_string_compare));
- printf("After qsort:\n");
- for(index = 0; index < dynar_size(arr); index ++) {
- char * str = dynar_getptr(arr, index);
- printf("Array index %d : %s\n", index, str);
- }
- TEST_NOTNULL(dynar_bsearch(arr, &t, dynar_string_compare));
- TEST_DONE();
- }
- TEST_FUNC(dynar_long) {
- long value = 0;
- Dynar * arr = dynar_new_long();
- dynar_grow(arr, 10);
- TEST_NOTNULL(dynar_put_long(arr, 3, 12345678));
- TEST_NOTNULL(dynar_get_long(arr, 3, &value));
- TEST_LONGEQ(value, 12345678);
- TEST_NOTNULL(dynar_append_long(arr, 9876));
- TEST_NOTNULL(dynar_get_long(arr, 10, &value));
- TEST_LONGEQ(value, 9876);
- TEST_NOTNULL(dynar_append_long(arr, 9876));
- TEST_NOTNULL(dynar_get_long(arr, 11, &value));
- TEST_LONGEQ(value, 9876);
- TEST_NOTNULL(dynar_append_long(arr, 9876));
- TEST_NOTNULL(dynar_get_long(arr, 12, &value));
- TEST_LONGEQ(value, 9876);
- TEST_NOTNULL(dynar_append_long(arr, 9876));
- TEST_NOTNULL(dynar_get_long(arr, 13, &value));
- TEST_LONGEQ(value, 9876);
- TEST_NOTNULL(dynar_append_long(arr, 9876));
- TEST_NOTNULL(dynar_get_long(arr, 14, &value));
- TEST_LONGEQ(value, 9876);
-
- TEST_NOTNULL(dynar_append_long(arr, 9876));
- TEST_NOTNULL(dynar_get_long(arr, 15, &value));
- TEST_LONGEQ(value, 9876);
- TEST_NOTNULL(dynar_append_long(arr, 9876));
- TEST_NOTNULL(dynar_get_long(arr, 16, &value));
- TEST_LONGEQ(value, 9876);
- TEST_NOTNULL(dynar_append_long(arr, 9876));
- TEST_NOTNULL(dynar_get_long(arr, 17, &value));
- TEST_LONGEQ(value, 9876);
-
-
- TEST_DONE();
- }
- int main(void) {
- TEST_INIT();
- TEST_RUN(dynar);
- TEST_RUN(dynar_long);
- TEST_REPORT();
- }
|