TEST_F(Directed, DelMovesCurrentToNext) { Q RunQ; InitQ(&RunQ); list_value_type items[4]; items[0].data = 1; items[1].data = 2; items[2].data = 3; items[3].data = 4; for(int i = 0; i < 4; ++i) AddQ(&RunQ, items + i); std::cout << RunQ << '\n'; ASSERT_EQ(1, RunQ.curr->data); DelQ(&RunQ); std::cout << RunQ << '\n'; ASSERT_EQ(4, RunQ.curr->data); DelQ(&RunQ); std::cout << RunQ << '\n'; ASSERT_EQ(3, RunQ.curr->data); DelQ(&RunQ); std::cout << RunQ << '\n'; ASSERT_EQ(2, RunQ.curr->data); DelQ(&RunQ); std::cout << RunQ << '\n'; ASSERT_EQ(2, RunQ.curr->data); DelQ(&RunQ); //Shouldn't crash }
int cMsgList::DeliverMessagesSinceSync(unsigned sync) { db_iterator it; int n = 0; cUser *user = NULL; nMySQL::cQuery DelQ(mQuery); SetBaseTo(&mModel); mQuery.Clear(); SelectFields(mQuery.OStream()); mQuery.OStream() << "WHERE date_sent >=" << sync; for(it = db_begin(); it != db_end(); ++it, ++n ) { if (!user || user->mNick != mModel.mReceiver) user = mServer->mUserList.GetUserByNick(mModel.mReceiver); if(user) { DeliverModelToUser(user); DelQ.Clear(); DelQ.OStream() << "DELETE FROM " << mMySQLTable.mName; WherePKey(DelQ.OStream()); DelQ.Query(); } } DelQ.Clear(); mQuery.Clear(); return n; }
TEST_F(Directed, PutGet) { int i = 8; test_item_t t; t.data = i; AddQ(&q, &t); ASSERT_EQ(8, DelQ(&q)->data); ASSERT_EQ(0, size_(&q)); }
main() { node *temp = NULL; node *head = NULL; /* AddQ(&head,11); AddQ(&head,13); AddQ(&head,17); AddQ(&head,19); AddQ(&head,71); AddQ(&head,91); printCDLL(&head); printf("\n"); printCDLLReverse(&head); printf("\n"); RotateQ(&head); RotateQ(&head); printCDLL(&head); printf("\n"); printCDLLReverse(&head); */ AddQ(&head,91); printCDLL(&head); while(head -> right != head) { printf("%d ",DelQ(&head)->data); } if( (temp = DelQ(&head)) != NULL) printf("%d ",temp->data); if( (temp = DelQ(&head)) != NULL) printf("%d ",temp->data); }
TEST_F(Directed, Add) { repeat_n(100, [&](size_t i) { test_item_t* t = new test_item_t; t->data = i; AddQ(&q, t); ASSERT_EQ(i+1, size_(&q)); }); ASSERT_EQ(100, size_(&q)); repeat_n(100, [&](size_t i){ DelQ(&q); }); ASSERT_EQ(0, size_(&q)); }
TEST_F(Model, AddDel) { test_item_t data[test_size]; repeat_n(test_size, [&](size_t i) { data[i].data = i; AddQ(&q, &data[i]); }); for(size_t i = test_size; i > test_size; --i) { ASSERT_EQ(i, DelQ(&q)->data); } }
TEST_F(Directed, DeleteEmpty) { InitQ(&q); DelQ(&q); }