13 #include "cmdline.hpp"
16 #ifndef _PASL_TEST_SEQ_H_
17 #define _PASL_TEST_SEQ_H_
19 template <
class Seq,
class Item,
class ItemGenerator = Item>
26 static void push(Seq& s,
int nb,
int offset) {
27 for (
int i = 0; i < nb; i++) {
29 Item x = ItemGenerator::from_int(j);
38 s.template print<ItemGenerator>();
46 template<fifo_or_lifo mode>
48 size_t nb = (size_t) pasl::util::cmdline::parse_or_default_int64(
"nb", 35);
50 printf(
"------------\nStarting\n");
51 for (
int i = 0; i < nb; i++) {
52 printf(
"-------------\nPushing front %d\n", i);
53 s.push_front(ItemGenerator::from_int(i));
57 std::cout <<
"-----" << std::endl;
58 std::cout <<
"size=" << s.size() << std::endl;
62 std::cout <<
"-----" << std::endl;
63 for (
int i = nb-1; i >= 0; i--) {
65 printf(
"-------------\nPopping %s %d\n", ((
lifo) ?
"front" :
"back"), i);
71 printf(
" =%d\n", ItemGenerator::to_int(r));
72 ItemGenerator::free(r);
82 size_t nbs = (size_t) pasl::util::cmdline::parse_or_default_int64(
"nbs", 2);
83 size_t nbt = (size_t) pasl::util::cmdline::parse_or_default_int64(
"nbt", 5);
99 size_t nb = (size_t) pasl::util::cmdline::parse_or_default_int64(
"nb", 32);
100 for (
size_t i = 0; i <= nb; i++) {
101 printf(
"======= Splitting at %lu ======\n", i);
167 size_t nb = (size_t) pasl::util::cmdline::parse_or_default_int64(
"nb", 15);
168 for (
int i = 1; i < nb; i++) {
173 for (
size_t pos = 0; pos < i; pos++) {
174 printf(
"*****========Splitting %lu=====*****\n", pos);
178 printf(
"*****========Concatenating %lu=====*****\n", pos);
181 assert(t.size() == i);
193 pasl::util::cmdline::argmap<thunk_t> c;
194 c.add(
"push_pop_lifo", [&]() { test_pushpop<lifo>(); });
195 c.add(
"push_pop_fifo", [&]() { test_pushpop<fifo>(); });
199 pasl::util::cmdline::dispatch_by_argmap_with_default_all(c,
"only");
static void test_pushpop()
static void test_concat()
static void print_seq(Seq &s)
static void execute_test()
static void test_split_concat()
std::function< void()> thunk_t
static void push(Seq &s, int nb, int offset)