1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <rak/partial_queue.h>
#include <rak/timer.h>
void
test_fill() {
rak::partial_queue queue;
queue.enable(8);
queue.clear();
std::cout << "test_fill()" << std::endl;
std::cout << " inserting: ";
int i = 0;
while (true) {
uint8_t k = rand() % 256;
if (queue.insert(k, k))
std::cout << '[' << (uint32_t)k << ']' << ' ';
// else
// std::cout << '<' << (uint32_t)k << '>' << ' ';
if (queue.is_full() && ++i == 100)
break;
}
std::cout << std::endl
<< " popping: ";
while (queue.prepare_pop()) {
std::cout << queue.pop() << ' ';
}
std::cout << std::endl;
}
void
test_random() {
rak::partial_queue queue;
queue.enable(8);
queue.clear();
std::cout << "test_random()" << std::endl;
std::cout << " inserting: ";
for (int i = 0; i < 10 && !queue.is_full(); ++i) {
uint8_t k = rand() % 256;
if (queue.insert(k, k))
std::cout << '[' << (uint32_t)k << ']' << ' ';
else
std::cout << '<' << (uint32_t)k << '>' << ' ';
}
std::cout << std::endl
<< " popping: ";
while (queue.prepare_pop()) {
if (rand() % 2) {
std::cout << queue.pop() << ' ';
} else {
uint8_t k = rand() % 128;
if (queue.insert(k, k))
std::cout << '[' << (uint32_t)k << ']' << ' ';
else
std::cout << '<' << (uint32_t)k << '>' << ' ';
}
}
std::cout << std::endl;
}
int
main(int argc, char** argv) {
srand(rak::timer::current().usec());
std::cout << "sizeof(rak::partial_queue): " << sizeof(rak::partial_queue) << std::endl;
test_fill();
test_random();
return 0;
}
|