Esempio n. 1
0
TEST(List, Find)
{
    int idx;
    Item *head = 0;

    Item *item = 0;
    int num = 10;
    Item items[num];

    //  Initialise each item
    for (int i = 0; i < num; i++)
    {
        init_item(& items[i], i);
    }

    //  create a randomised table of indexes
    int block[num];
    rand_array(block, num);

    // add our items randomly to sorted list
    for (int i = 0; i < num; i++)
    {
        int idx = block[i];
        item = & items[idx];
        item_add_sorted(& head, item, 0);
    }

    //  find first item
    idx = 0;
    item = item_find(& head, & items[idx], 0);
    EXPECT_EQ(item, & items[idx]);

    //  find last item
    idx = num-1;
    item = item_find(& head, & items[idx], 0);
    EXPECT_EQ(item, & items[idx]);

    //  find middle item
    idx = num / 2;
    item = item_find(& head, & items[idx], 0);
    EXPECT_EQ(item, & items[idx]);

    //  try to find non-existent item
    Item wrong;
    init_item(& wrong, -5);

    item = item_find(& head, & wrong, 0);
    EXPECT_EQ(0, item);
}
Esempio n. 2
0
File: config.c Progetto: Detegr/HBot
struct configitem* config_find_item(struct config* haystack, const char* needle, const char* section)
{
	if(section)
	{
		struct configsection* sect;
		if((sect=config_find_section(haystack, section)))
		{
			int item=item_find(sect, needle);
			if(item != -1) return sect->item[item];
		}
	}
	else
	{
		for(unsigned int i=0; i<haystack->sections; ++i)
		{
			int item=item_find(haystack->section[i], needle);
			if(item != -1) return haystack->section[i]->item[item];
		}
	}
	return NULL;
}
Esempio n. 3
0
File: main.c Progetto: BukinAN/All
/* поиск наиболее близкого значения поля ft */
LPITEM list_find(LPLIST lpList, FIELDTYPE ft, void* value)
{
	return item_find(lpList->Items, lpList->Count, ft, value);
}