コード例 #1
0
ファイル: test_findElement.c プロジェクト: yenng/findElement
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));
}
コード例 #2
0
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));
}
コード例 #3
0
ファイル: test-llist.c プロジェクト: gizmo385/Utilities
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 );
}
コード例 #4
0
/*
 * 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;
        }
    }
}
コード例 #5
0
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);
}
コード例 #6
0
ファイル: etimer.c プロジェクト: AkankshaGovil/Automation
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);
}
コード例 #7
0
ファイル: main_mutex.c プロジェクト: kiralpoon/schoolwork
// 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
コード例 #8
0
ファイル: test_findElement.c プロジェクト: yenng/findElement
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));
}
コード例 #9
0
/*
 * 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);
}
コード例 #10
0
void CoAPServerImpl::handlePeriodic(resource_t *resource) {
	PeriodicResource *res = (PeriodicResource *)listFind(resource->url, strlen(resource->url));
	if (res) {
		res->fire();
	}
}