static void test_pushpop() { size_t nb = (size_t) pasl::util::cmdline::parse_or_default_int64("nb", 35); Seq s; printf("------------\nStarting\n"); for (int i = 0; i < nb; i++) { printf("-------------\nPushing front %d\n", i); s.push_front(ItemGenerator::from_int(i)); print_seq(s); s.check(); } std::cout << "-----" << std::endl; std::cout << "size=" << s.size() << std::endl; print_seq(s); Seq xxx = s; print_seq(xxx); std::cout << "-----" << std::endl; for (int i = nb-1; i >= 0; i--) { print_seq(s); printf("-------------\nPopping %s %d\n", ((lifo) ? "front" : "back"), i); Item r; if (mode == lifo) r = s.pop_front(); else r = s.pop_back(); printf(" =%d\n", ItemGenerator::to_int(r)); ItemGenerator::free(r); s.check(); } }
static void test_concat() { Seq s; Seq t; size_t nbs = (size_t) pasl::util::cmdline::parse_or_default_int64("nbs", 2); size_t nbt = (size_t) pasl::util::cmdline::parse_or_default_int64("nbt", 5); push(s, nbs, 0); print_seq(s); push(t, nbt, nbs); print_seq(t); s.concat(t); printf("ok\n"); print_seq(s); printf("ok\n"); s.check(); }
static void test_split_concat() { size_t nb = (size_t) pasl::util::cmdline::parse_or_default_int64("nb", 15); for (int i = 1; i < nb; i++) { printf("%d\n", i); Seq t; Seq u; push(t, i, 0); for (size_t pos = 0; pos < i; pos++) { printf("*****========Splitting %lu=====*****\n", pos); t.split(pos, u); // print_seq(t); // print_seq(u); printf("*****========Concatenating %lu=====*****\n", pos); t.concat(u); // print_seq(t); assert(t.size() == i); t.check(); } // print_seq(t); } }