Esempio n. 1
0
void TestarrayQueue_cannot_offer_over_capacity(
    CuTest * tc
    )
{
    char *item = "testitem";
    void *qu = aqueue_new(1, 8);

    aqueue_offer(qu, item);
    CuAssertTrue(tc, -1 == aqueue_offer(qu, item));
    CuAssertTrue(tc, 1 == aqueue_count(qu));
    aqueue_free(qu);
}
Esempio n. 2
0
void TestarrayQueue_peek_gets_head(
    CuTest * tc
    )
{
    char *item1 = "testitem1";
    char *item2 = "testitem2";
    void *qu = aqueue_new(10, 9);

    aqueue_offer(qu, item1);
    aqueue_offer(qu, item2);
    CuAssertTrue(tc, 0 == strncmp(item1, aqueue_peek(qu), 9));
    aqueue_free(qu);
}
Esempio n. 3
0
void TestarrayQueue_fifo(
    CuTest * tc
    )
{
    char *item = "testitem1", *item2 = "testitem2";
    void *qu = aqueue_new(10, 9);

    aqueue_offer(qu, item);
    aqueue_offer(qu, item2);
    CuAssertTrue(tc, 0 == strncmp(item, aqueue_peek(qu), 9));
    CuAssertTrue(tc, 0 == aqueue_poll(qu));
    CuAssertTrue(tc, 0 == strncmp(item2, aqueue_peek(qu), 9));
    CuAssertTrue(tc, 0 == aqueue_poll(qu));
    aqueue_free(qu);
}
Esempio n. 4
0
void TestarrayQueue_offer_adds_new_item(
    CuTest * tc
    )
{
    char *item = "testitem";
    void *qu = aqueue_new(10, 8);

    aqueue_offer(qu, item);
    CuAssertTrue(tc, 1 == aqueue_count(qu));
    aqueue_free(qu);
}
Esempio n. 5
0
void TestarrayQueue_offer_and_poll_item(
    CuTest * tc
    )
{
    char *item = "testitem";
    void *qu = aqueue_new(10, 8);

    aqueue_offer(qu, item);
    CuAssertTrue(tc, 0 == strncmp(item, aqueue_peek(qu), 8));
    CuAssertTrue(tc, 0 == aqueue_poll(qu));
    aqueue_free(qu);
}
Esempio n. 6
0
void TestarrayQueue_cant_poll_with_no_contents(
    CuTest * tc
    )
{
    char *item = "testitem";
    void *qu = aqueue_new(10, 8);
    aqueue_offer(qu, item);
    CuAssertTrue(tc, 0 == strncmp(item, aqueue_peek(qu), 8));
    CuAssertTrue(tc, 0 == aqueue_poll(qu));
    CuAssertTrue(tc, 0 == aqueue_count(qu));
    aqueue_free(qu);
}
Esempio n. 7
0
void TestarrayQueue_poll_offer_past_boundary(
    CuTest * tc
    )
{
    char *item1 = "testitem1";
    char *item2 = "testitem2";
    char *item3 = "testitem3";
    void *qu = aqueue_new(2, 9);

    aqueue_offer(qu, item1);
    aqueue_offer(qu, item2);
    CuAssertTrue(tc, 0 == strncmp(item1, aqueue_peek(qu), 9));
    CuAssertTrue(tc, 0 == aqueue_poll(qu));
    CuAssertTrue(tc, 0 == strncmp(item2, aqueue_peek(qu), 9));
    aqueue_offer(qu, item3);
    CuAssertTrue(tc, 0 == strncmp(item2, aqueue_peek(qu), 9));
    CuAssertTrue(tc, 0 == aqueue_poll(qu));
    CuAssertTrue(tc, 0 == strncmp(item3, aqueue_peek(qu), 9));
    CuAssertTrue(tc, 0 == aqueue_poll(qu));
    aqueue_free(qu);
}
Esempio n. 8
0
void TestarrayQueue_empty_empties_queue(
    CuTest * tc
    )
{
    char *item = "testitem";
    void *qu = aqueue_new(10, 8);

    aqueue_offer(qu, item);
    aqueue_empty(qu);
    CuAssertTrue(tc, 0 == aqueue_count(qu));
    CuAssertTrue(tc, aqueue_is_empty(qu));
    aqueue_free(qu);
}
Esempio n. 9
0
void exampleArrayQueue()
{
	ArrayQueue* Q = newArrayQueue(8);

	// A queue with strings
	aqueue_offer(Q, "First");
	aqueue_offer(Q, "In");
	aqueue_offer(Q, "First");
	aqueue_offer(Q, "Out.");
	
	// Peek at the head of the queue
	printf("%s\n", (char*)aqueue_peek(Q));

	// Traverse through the queue polling each string
	while (!aqueue_isEmpty(Q))
		printf("%s ", (char*)aqueue_poll(Q));
	printf("\n");

	// A queue with integers, primitive data types require some trickyness
	aqueue_clear(Q);
	int x[] = {1, 2};
	int y = 3;
	aqueue_offer(Q, &x[0]);
	aqueue_offer(Q, &x[1]);
	aqueue_offer(Q, &y);
	
	while (!aqueue_isEmpty(Q))
		// You first need to cast it using (int*) and since its a pointer to
		// an integer you need to get the value of the pointer using *
		// You could similarly use:
		// 	int* z = queue_poll(Q);
		//		printf("%d ", *z);
		printf("%d ", *((int*)aqueue_poll(Q)));

	printf("\n");
	
	// Fill it up and resize it if an offer has failed
	char* letters[] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"};
	for (y = 0; y < 11; y++)
		aqueue_offerf(Q, letters[y]);

	while (!aqueue_isEmpty(Q))
		printf("%s ", (char*)aqueue_poll(Q));
	printf("\n");

	// This will clear the queue of any nodes and pool them and then free
	// the queue itself from memory
	aqueue_free(Q);
}