import list;

import std.stdio; 

const int LIST_SIZE = 10; 

int main()
{  
   DLlist!(int) list = new DLlist!(int); 
   
   writefln("Test 0: test adding and size incrementing");
   // add integers 1 through 10 to the list
   for (int i = 0; i < LIST_SIZE; i++)
   {
      list.add(i+1);
      writefln("size is ", list.size, " after adding ", i+1); 
   }

   writefln("Test 1: print 1 through ", LIST_SIZE, "...");
   while (!list.last)
   {
      writefln(list.data);
   }
   
   writefln("Test 2: print ", LIST_SIZE, " through 1...");
   while (!list.first)
   {
      writefln(list.data); 
   }

   writefln("Test 3: test remove and size decrementing");
   
   while (!list.first)
   {
      if (list.data > 3 && list.data < 9)
      {
         writefln("removing ", list.data);
         list.remove();
      }
   }

   writefln("Test 4: Printing the rest of the list...");
   while (!list.last)
   {
      writefln(list.data);
   }

   writefln("Test 5: list size before clear is ", list.size);
   list.clear(); // clear all data

   writefln("Size after is ", list.size); 

   return 0;
}
