1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-22 11:35:06 +00:00
serenity/AK/Tests/TestQueue.cpp
Andreas Kling c699d9d79d AK: Add a simple Queue<T> class.
The underlying data structure is a singly-linked list of Vector<T>.
We never shift any of the vector contents around, but we batch the memory
allocations into 1000-element segments.
2019-06-15 10:35:35 +02:00

31 lines
711 B
C++

#include "TestHelpers.h"
#include <AK/AKString.h>
#include <AK/Queue.h>
int main()
{
EXPECT(Queue<int>().is_empty());
EXPECT(Queue<int>().size() == 0);
Queue<int> ints;
ints.enqueue(1);
ints.enqueue(2);
ints.enqueue(3);
EXPECT(ints.size() == 3);
EXPECT(ints.dequeue() == 1);
EXPECT(ints.size() == 2);
EXPECT(ints.dequeue() == 2);
EXPECT(ints.size() == 1);
EXPECT(ints.dequeue() == 3);
EXPECT(ints.size() == 0);
Queue<String> strings;
strings.enqueue("ABC");
strings.enqueue("DEF");
EXPECT(strings.size() == 2);
EXPECT(strings.dequeue() == "ABC");
EXPECT(strings.dequeue() == "DEF");
EXPECT(strings.is_empty());
return 0;
}