TEST_C(DequeTests, DequeFilter2) { int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int f = 6; deque_add_last(deque, &a); deque_add_last(deque, &b); deque_add_last(deque, &c); deque_add_last(deque, &d); deque_add_last(deque, &e); deque_add_last(deque, &f); CHECK_EQUAL_C_INT(6, deque_size(deque)); Deque *filter = NULL; deque_filter(deque, pred2, &filter); const void * const* buff = deque_get_buffer(filter); CHECK_EQUAL_C_INT(3, deque_size(filter)); CHECK_EQUAL_C_POINTER(buff[0], &d); CHECK_EQUAL_C_POINTER(buff[1], &e); CHECK_EQUAL_C_POINTER(buff[2], &f); free(filter); };
TEST_C(DequeTests, DequeAddAt1) { /* index < (size / 2) && index_raw > first_raw */ int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int f = 6; int g = 999; deque_add_last(deque, &a); deque_add_last(deque, &b); deque_add_last(deque, &c); deque_add_last(deque, &d); deque_add_last(deque, &e); deque_add_last(deque, &f); deque_add_at(deque, &g, 4); const void * const* buff = deque_get_buffer(deque); CHECK_EQUAL_C_POINTER(buff[4], &g); CHECK_EQUAL_C_POINTER(buff[5], &e); const void *elem = buff[6]; CHECK_EQUAL_C_POINTER(elem, &f); };
TEST_C(DequeTests, DequeAddAt3) { /* index >= size / 2 && index_raw > last_raw */ int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int f = 6; int g = 999; deque_add_last(deque, &a); deque_add_first(deque, &b); deque_add_first(deque, &c); deque_add_first(deque, &d); deque_add_first(deque, &e); deque_add_first(deque, &f); deque_add_at(deque, &g, 3); const void * const* buff = deque_get_buffer(deque); const void *elem = buff[6]; CHECK_EQUAL_C_POINTER(elem, &g); const void *elem1 = buff[0]; CHECK_EQUAL_C_POINTER(elem1, &b); const void *elem2 = buff[7]; CHECK_EQUAL_C_POINTER(elem2, &c); const void *elem3 = buff[1]; CHECK_EQUAL_C_POINTER(elem3, &a); };
TEST_C(DequeTests, DequeIteratorNext) { int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int f = 6; deque_add(deque, &a); deque_add(deque, &b); deque_add(deque, &c); deque_add(deque, &d); deque_add(deque, &e); deque_add(deque, &f); DequeIter iter; deque_iter_init(&iter, deque); size_t i = 0; void *el; while (deque_iter_next(&iter, &el) != CC_ITER_END) { void *k; deque_get_at(deque, i, &k); CHECK_EQUAL_C_POINTER(k, el); i++; CHECK_EQUAL_C_INT(i, iter.index); } };
TEST(TestHarness_c, checkBits) { CHECK_EQUAL_C_POINTER(NULL, NULL); fixture->setTestFunction(_failBitsMethod); fixture->runAllTests(); fixture->assertPrintContains("expected <00000000 00000001>\n\tbut was <00000000 00000011>"); fixture->assertPrintContains("arness_c"); CHECK(!hasDestructorOfTheDestructorCheckedBeenCalled) }
TEST(TestHarness_c, checkPointer) { CHECK_EQUAL_C_POINTER(NULLPTR, NULLPTR); fixture->setTestFunction(_failPointerMethod); fixture->runAllTests(); fixture->assertPrintContains("expected <0x0>\n but was <0x1>"); fixture->assertPrintContains("arness_c"); CHECK(!hasDestructorOfTheDestructorCheckedBeenCalled); }
TEST_C(StackTestsWithDefaults, StackPop) { int a = 1; int b = 2; int c = 3; stack_push(s, (void*)&a); stack_push(s, (void*)&b); stack_push(s, (void*)&c); int *pop; int *peek; stack_pop(s, (void*)&pop); CHECK_EQUAL_C_POINTER(&c, pop); stack_peek(s, (void*)&peek); CHECK_EQUAL_C_POINTER(&b, peek); };
TEST_C(StackTestsWithDefaults, StackPush) { int a = 1; int b = 2; int c = 3; int *p; stack_push(s, (void*)&a); stack_peek(s, (void*)&p); CHECK_EQUAL_C_POINTER(&a, p); stack_push(s, (void*) &b); stack_peek(s, (void*)&p); CHECK_EQUAL_C_POINTER(&b, p); stack_push(s, (void*)&c); stack_peek(s, (void*)&p); CHECK_EQUAL_C_POINTER(&c, p); };
TEST_C(DequeTests, DequeAddLast) { int a = 1; int b = 2; int c = 3; deque_add_last(deque, &a); deque_add_last(deque, &b); deque_add_last(deque, &c); CHECK_EQUAL_C_INT(3, deque_size(deque)); const void * const* u= deque_get_buffer(deque); const void *e = u[0]; CHECK_EQUAL_C_POINTER(e, &a); e = u[1]; CHECK_EQUAL_C_POINTER(e, &b); e = u[2]; CHECK_EQUAL_C_POINTER(e, &c); };
TEST_C(DequeTests, DequeAddFirst) { int a = 1; int b = 2; int c = 3; deque_add_first(deque, &a); deque_add_first(deque, &b); deque_add_first(deque, &c); CHECK_EQUAL_C_INT(3, deque_size(deque)); size_t m = deque_capacity(deque); const void * const* u = deque_get_buffer(deque); const void *e = u[m - 1]; CHECK_EQUAL_C_POINTER(e, &a); e = u[m - 2]; CHECK_EQUAL_C_POINTER(e, &b); e = u[m - 3]; CHECK_EQUAL_C_POINTER(e, &c); };
static void _failPointerMethod() { HasTheDestructorBeenCalledChecker checker; CHECK_EQUAL_C_POINTER(NULL, (void *)0x1); }