void test_find_Element(){ int value1 = 1; int myValue1 = 1; int value3 = 3; int value4 = 4; int value6 = 6; int value7 = 7; List *list = listCreate(); Element *elem, *elemNext; elem = elementCreate(&value4); elemNext = elementCreate(&value6); elem->next = elemNext; elemNext = elem; elem = elementCreate(&value1); elem->next = elemNext; elemNext = elem; elem = elementCreate(&value7); elem->next = elemNext; elemNext = elem; elem = elementCreate(&value3); elem->next = elemNext; list->head = elem; elem = NULL; elem = listFind(list,&myValue1,Compare); TEST_ASSERT_NOT_NULL(elem); TEST_ASSERT_NOT_NULL(elem->data); TEST_ASSERT_EQUAL(myValue1,*(int*)(elem->data)); }
void test_findElement() { // int value1 = 1; // int myValue1 = 1; // int value3 = 3; // int value4 = 4; // int value6 = 6; // int value7 = 7; char *str1 = "one"; char *str3 = "three"; char *str4 = "four"; char *str6 = "six"; char *str7 = "seven"; char *myStr4 = "four"; List *list = listCreate(); Element *elem, *elemNext; elemNext = elementCreate(str6); elem = elementCreate(str4); elem->next = elemNext; elemNext = elem; // printf("%p\n",(elem->data)); elem = elementCreate(str1); elem->next = elemNext; elemNext = elem; elem = elementCreate(str7); elem->next = elemNext; elemNext = elem; elem = elementCreate(str3); elem->next = elemNext; elemNext = elem; // ... // elem = elementCreate(&value3); list->head = elem; // while(list->head != NULL) // { // printf("%d",*((int *)(list->head->data))); // list->head = list->head->next; // } elem = NULL; elem = listFind(list, myStr4, strCompare); TEST_ASSERT_NOT_NULL(elem); TEST_ASSERT_NOT_NULL(elem->data); // //TEST_ASSERT_EQUAL(1,*(int *)(elem->data)); //error // // TEST_ASSERT_EQUAL(1,*(elem->data)); //error TEST_ASSERT_EQUAL_STRING(str4, (char *)elem->data); TEST_ASSERT_EQUAL_STRING("four", ((char *)elem->data)); }
void testListFind() { LList *list = newList( comparisonFunction ); const int numElements = 1000; // Insert the elements for( int i = 0; i < numElements; i++ ) { listInsert( list, mallocInt(i) ); } // Find the elements for( int i = 0; i < numElements; i++ ) { int *intToFind = mallocInt(i); // Ensure that the find didn't return null ListNode *findResult = listFind( list, intToFind ); assertNotNull( findResult, "find(i) should not be NULL!\n" ); // Ensure that the elements are equal int comparisonResult = list->comparisonFunction( intToFind, findResult->data ); assertTrue( comparisonResult == 0, "find(%d)->data != %d\n", i, i ); free( intToFind ); } // Free the list listFree( list ); }
/* * listFind() will search the key in the list and return the value corresponding to that key */ char* listFind(ListT* list, char* key){ if(list == NULL){ return NULL; }else{ if (strcmp(list->key,key)!=0){ return listFind(list->next,key); }else{ return list->value; } } }
void CoAPServerImpl::handleRequest(void* request, void* response, uint8_t *buffer, uint16_t preferred_size, int32_t *offset) { CoAPRequest coapRequest(request, preferred_size); const char *url; int len = coapRequest.getPath(&url); CoAPResource *res = listFind(url, len); CoAPResponse coapResponse(response, buffer, offset); if (res != NULL) { res->handle(coapRequest, coapResponse); coapResponse.flush(); } else REST.set_response_status(response, REST.status.NOT_FOUND); }
HETIMERELEM etimerFind(HETIMER timer, ETimerHandler callback,void *param) { etimerStruct *tm = (etimerStruct *)timer; etimerNode node; int loc=0; if (!timer) return (HETIMERELEM)RVERROR; /* NULL function */ node.callback = callback; node.param = param; if ( (loc = listFind(tm->timer, listHead(tm->timer), (void *)&node))<0 ) return (HETIMERELEM)RVERROR; else return ((HETIMERELEM)loc); }
// the function for the reader threads void *reader(void *dummy) { int i, random; for (i = 0; i < NUMREADS; i++) { random = randInt(KEYMIN,KEYMAX); if (listFind(&the_list, random) != NOT_FOUND) { pthread_mutex_lock(&the_key); found++; } else { pthread_mutex_lock(&the_key); not_found++; } pthread_mutex_unlock(&the_key); sleep(1); } }// reader
void test_find_Element_string(){ char* str1 = "one"; char* myStr1 = "one"; char* str3 = "three"; char* str4 = "four"; char* str6 = "six"; char* str7 = "seven"; List *list = listCreate(); Element *elem, *elemNext; elem = elementCreate(str4); elemNext = elementCreate(str6); elem->next = elemNext; elemNext = elem; elem = elementCreate(str1); elem->next = elemNext; elemNext = elem; elem = elementCreate(str7); elem->next = elemNext; elemNext = elem; elem = elementCreate(str3); elem->next = elemNext; list->head = elem; elem = NULL; elem = listFind(list,myStr1,strCompare); printf( (char*)(elem->data)); TEST_ASSERT_NOT_NULL(elem); TEST_ASSERT_NOT_NULL(elem->data); TEST_ASSERT_EQUAL_STRING(myStr1,(char*)(elem->data)); }
/* * find searches for a value corresponding to the key string and returns it */ char* find(HashTableT* ht, char* key){ int index = hash(key, ht->size); return listFind( ht->lists[index],key); }
void CoAPServerImpl::handlePeriodic(resource_t *resource) { PeriodicResource *res = (PeriodicResource *)listFind(resource->url, strlen(resource->url)); if (res) { res->fire(); } }