TEST_F(Directed, Rotate) { size_t const test_size = 4; test_item_t data[test_size]; for(size_t i = 0; i < test_size; ++i) { data[i].data = i; AddQ(&q, data + i); } std::cout << q << '\n'; for(int i = 0; i < 2; ++i) { ASSERT_EQ(0, PeekQ(&q)->data); ASSERT_EQ(3, RotateQ(&q)->data); std::cout << q << '\n'; ASSERT_EQ(2, RotateQ(&q)->data); std::cout << q << '\n'; ASSERT_EQ(1, RotateQ(&q)->data); std::cout << q << '\n'; ASSERT_EQ(0, RotateQ(&q)->data); std::cout << q << '\n'; } }
TEST test_RotateQ(){ Queue q; InitQueue(&q); Node *newItem1, *newItem2, *newItem3, *newItem4; newItem1 = NewItem(); newItem2 = NewItem(); newItem3 = NewItem(); newItem4 = NewItem(); AddQueue(&q, newItem1); AddQueue(&q, newItem2); AddQueue(&q, newItem3); AddQueue(&q, newItem4); //Queue is 1 2 3 4 ASSERT(q.head == newItem1); ASSERT(q.tail == newItem4); RotateQ(&q); //Queue is 2 3 4 1 ASSERT(q.head == newItem2); ASSERT(q.tail == newItem1); RotateQ(&q); //Queue is 3 4 1 2 ASSERT(q.head == newItem3); ASSERT(q.tail == newItem2); RotateQ(&q); //Queue is 4 1 2 3 ASSERT(q.head == newItem4); ASSERT(q.tail == newItem3); RotateQ(&q); //Queue is 1 2 3 4 ASSERT(q.head == newItem1); ASSERT(q.tail == newItem4); FreeItem(newItem1); FreeItem(newItem2); FreeItem(newItem3); FreeItem(newItem4); PASS(); }
TEST_F(Directed, RotateOne) { test_item_t t; t.data = 9; AddQ(&q, &t); repeat_n(100, [&](size_t i){ ASSERT_EQ(9, RotateQ(&q)->data); }); }
TEST_F(Directed, RotateTwo) { InitQ(&q); test_item_t t1; t1.data = 0; AddQ(&q, &t1); test_item_t t2; t2.data = 1; AddQ(&q, &t2); repeat_n(100000, [&](size_t i){ ASSERT_EQ((i+1)%2, RotateQ(&q)->data); }); }
TEST_F(Directed, CreateBadCondition) { InitQ(&q); q.head = (list_value_type*)1; RotateQ(&q); }
TEST_F(Directed, RotateEmpty) { InitQ(&q); RotateQ(&q); }
TEST_F(Directed, CreateBadCondition) { InitQ(&q); q.head = (list_parameter_t*)1; RotateQ(&q); }