def test_lists(): """Test list functions.""" ptr_list = weechat.list_new() check(ptr_list != '') check(weechat.list_size(ptr_list) == 0) item_def = weechat.list_add(ptr_list, 'def', weechat.WEECHAT_LIST_POS_SORT, '') check(weechat.list_size(ptr_list) == 1) item_abc = weechat.list_add(ptr_list, 'abc', weechat.WEECHAT_LIST_POS_SORT, '') check(weechat.list_size(ptr_list) == 2) check(weechat.list_search(ptr_list, 'abc') == item_abc) check(weechat.list_search(ptr_list, 'def') == item_def) check(weechat.list_search(ptr_list, 'ghi') == '') check(weechat.list_search_pos(ptr_list, 'abc') == 0) check(weechat.list_search_pos(ptr_list, 'def') == 1) check(weechat.list_search_pos(ptr_list, 'ghi') == -1) check(weechat.list_casesearch(ptr_list, 'abc') == item_abc) check(weechat.list_casesearch(ptr_list, 'def') == item_def) check(weechat.list_casesearch(ptr_list, 'ghi') == '') check(weechat.list_casesearch(ptr_list, 'ABC') == item_abc) check(weechat.list_casesearch(ptr_list, 'DEF') == item_def) check(weechat.list_casesearch(ptr_list, 'GHI') == '') check(weechat.list_casesearch_pos(ptr_list, 'abc') == 0) check(weechat.list_casesearch_pos(ptr_list, 'def') == 1) check(weechat.list_casesearch_pos(ptr_list, 'ghi') == -1) check(weechat.list_casesearch_pos(ptr_list, 'ABC') == 0) check(weechat.list_casesearch_pos(ptr_list, 'DEF') == 1) check(weechat.list_casesearch_pos(ptr_list, 'GHI') == -1) check(weechat.list_get(ptr_list, 0) == item_abc) check(weechat.list_get(ptr_list, 1) == item_def) check(weechat.list_get(ptr_list, 2) == '') weechat.list_set(item_def, 'def2') check(weechat.list_string(item_def) == 'def2') check(weechat.list_next(item_abc) == item_def) check(weechat.list_next(item_def) == '') check(weechat.list_prev(item_abc) == '') check(weechat.list_prev(item_def) == item_abc) weechat.list_remove(ptr_list, item_abc) check(weechat.list_size(ptr_list) == 1) check(weechat.list_get(ptr_list, 0) == item_def) check(weechat.list_get(ptr_list, 1) == '') weechat.list_remove_all(ptr_list) check(weechat.list_size(ptr_list) == 0) weechat.list_free(ptr_list)