Example #1
0
 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();
   }
 }
Example #2
0
 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();
 }
Example #3
0
 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);
   }  
 }