#include #include #include "si_test.h" #include "si_list.h" void * cursor_search(SiCursor * cursor, void * extra) { char * data = (char *) sicursor_data(cursor); char * tofind = (char *) extra; if (strcmp(data, tofind) == 0) return tofind; return NULL; } void * walker_search(void * value, void * key, void * list, void * extra) { char * data = (char *) value; char * tofind = (char *) extra; printf("%s %s\n", data, tofind); if (strcmp(data, tofind) == 0) return tofind; return NULL; } TEST_FUNC(silist) { char * aid; char * s[] = { "Hello", "World", "This", "Is", "Me"}; SiList * list = silist_new(s[0]); TEST_NOTNULL(list); TEST_NOTNULL(silist_add(list, s[1])); TEST_NOTNULL(silist_add(list, s[2])); TEST_NOTNULL(silist_add(list, s[3])); TEST_NOTNULL(silist_add(list, s[4])); TEST_NOTNULL(silist_last(list)); TEST_STREQ(silist_data(silist_last(list)), s[4]); aid = (char *) silist_walk(list, walker_search, "Is"); TEST_NOTNULL(aid); TEST_STREQ(aid, "Is"); /* { SiCursor * index = silist_cursor(list); int okindex = 0; TEST_NOTNULL(index); while(index) { TEST_INTEQ(okindex, sicursor_index(index)); puts((char *)sicursor_data(index)); index = sicursor_next(index); okindex++; } } { char * res = (char *) sicursor_each(silist_cursor(list), cursor_search, "Me"); TEST_NOTNULL(res); TEST_STREQ(res, "Me"); } */ silist_free(list); TEST_DONE(); } int main(void) { TEST_INIT(); TEST_RUN(silist); TEST_REPORT(); }