예제 #1
0
파일: Deque.cpp 프로젝트: cheekiatng/webkit
TEST(WTF_Deque, Remove)
{
    Deque<int> deque;
    deque.append(11);
    deque.prepend(10);
    deque.append(12);
    deque.append(13);

    EXPECT_EQ(10, deque.first());
    EXPECT_EQ(13, deque.last());

    deque.removeLast();
    EXPECT_EQ(10, deque.first());
    EXPECT_EQ(12, deque.last());

    deque.removeFirst();
    EXPECT_EQ(11, deque.first());
    EXPECT_EQ(12, deque.last());

    deque.removeFirst();
    EXPECT_EQ(12, deque.first());
    EXPECT_EQ(12, deque.last());

    deque.removeLast();
    EXPECT_TRUE(deque.isEmpty());
}
예제 #2
0
void main ( void )
{
	Deque<int> intQ;

	printf ( "isEmpty(1): %d\n", intQ.isEmpty ( ) ? 1 : 0 );
	intQ.insertFirst ( 4 );
	cout << intQ <<endl;
	printf ( "removeLast(4): %d\n", intQ.removeLast ( ) );
	cout << intQ <<endl;
	intQ.insertFirst ( 5 );
	intQ.insertFirst ( 12 );
	intQ.insertLast ( 7 );
	intQ.insertLast ( 13 );
	cout << intQ <<endl;
	printf ( "first(12): %d\n", intQ.first ( ) );
	printf ( "last(13): %d\n", intQ.last ( ) );
	printf ( "size(4): %d\n", intQ.size ( ) );
	printf ( "isEmpty(0): %d\n", intQ.isEmpty ( ) ? 1 : 0 );
	printf ( "removeLast(13) :%d\n", intQ.removeLast ( ) );
	printf ( "removeLast(7) :%d\n", intQ.removeLast ( ) );
	printf ( "removeLast(5) :%d\n", intQ.removeLast ( ) );
	cout << intQ <<endl;
	printf ( "removeFirst(12) :%d\n", intQ.removeFirst ( ) );
	cout << intQ <<endl;
	printf ( "size(0): %d\n", intQ.size ( ) );
	printf ( "isEmpty(1): %d\n", intQ.isEmpty ( ) ? 1 : 0 );
	intQ.removeLast ( );

}
예제 #3
0
파일: Deque.cpp 프로젝트: cheekiatng/webkit
TEST(WTF_Deque, MoveOnly)
{
    Deque<MoveOnly> deque;

    deque.append(MoveOnly(1));
    deque.prepend(MoveOnly(0));

    EXPECT_EQ(0U, deque.first().value());
    EXPECT_EQ(1U, deque.last().value());

    auto first = deque.takeFirst();
    EXPECT_EQ(0U, first.value());

    auto last = deque.takeLast();
    EXPECT_EQ(1U, last.value());
}