#include "queue.hpp"
TEST(Queue) {
Queue<int> q;
*(q.push()) = 1;
*(q.push()) = 2;
if (*(q.peek()) != 1) return false;
q.pop();
*(q.push()) = 3;
*(q.push()) = 4;
if (*(q.peek()) != 2) return false;
q.pop();
if (*(q.peek()) != 3) return false;
q.pop();
if (*(q.peek()) != 4) return false;
q.pop();
if (q.peek() != NULL) return false;
return true;
}
TEST(Stack) {
Stack<int> s;
s.push(1);
s.push(2);
s.push(3);
if (s.pop() != 3) return false;
if (s.pop() != 2) return false;
s.push(2);
s.push(3);
int i = 3;
for (int* it = s.iterator(); it; it = s.iterator_next(it)) {
if (*it != i--) return false;
}
do {
s.pop();
} while (!s.empty());
return true;
}