Initial rework for tests
authorDidier 'Ptitjes <ptitjes@free.fr>
Mon, 27 Jul 2009 20:39:32 +0000 (22:39 +0200)
committerDidier 'Ptitjes <ptitjes@free.fr>
Mon, 27 Jul 2009 20:39:32 +0000 (22:39 +0200)
tests/Makefile.am
tests/testarraylist.vala

index 3f5879f..e7a82e0 100644 (file)
@@ -12,8 +12,8 @@ noinst_PROGRAMS = $(TEST_PROGS)
 progs_ldadd = $(GLIB_LIBS) ../gee/libgee.la
 
 TEST_PROGS += testarraylist
-testarraylist_VALASOURCES = testarraylist.vala
-testarraylist_SOURCES = testarraylist.c
+testarraylist_VALASOURCES = testarraylist.vala testcollection.vala testfixture.vala
+testarraylist_SOURCES = testarraylist.c testcollection.c testfixture.c
 $(testarraylist_SOURCES): $(testarraylist_VALASOURCES)
        $(VALAC) -C --basedir $(top_srcdir) --vapidir $(top_srcdir)/gee --pkg gee-1.0 $^
        touch $@
index 585f833..a6d1a97 100644 (file)
 using GLib;
 using Gee;
 
-void test_arraylist_get () {
-       var arraylistOfString = new ArrayList<string> ();
-       
-       // Check get for empty list
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
-               arraylistOfString.get (0);
-               return;
-       }
-       Test.trap_assert_failed ();
-       
-       // Check get for valid index in list with one element
-       arraylistOfString.add ("1");
-       assert (arraylistOfString.get (0) == "1");
-       
-       // Check get for indexes out of range
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
-               arraylistOfString.get (1);
-               return;
-       }
-       Test.trap_assert_failed ();
-       
-       // Check get for invalid index number
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
-               arraylistOfString.get (-1);
-               return;
-       }
-       Test.trap_assert_failed ();
-       
-       // Check get for valid indexes in list with multiple element
-       arraylistOfString.add ("2");
-       arraylistOfString.add ("3");
-       assert (arraylistOfString.get (0) == "1");
-       assert (arraylistOfString.get (1) == "2");
-       assert (arraylistOfString.get (2) == "3");
-       
-       // Check get if list is cleared and empty again
-       arraylistOfString.clear ();
-       
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
-               arraylistOfString.get (0);
-               return;
+public class ArrayListTests : CollectionTests {
+
+       public ArrayListTests () {
+               base ("ArrayList");
+
+               // Methods of List interface
+               add_test("get", test_arraylist_get);
+               add_test("set", test_arraylist_set);
+               add_test("insert", test_arraylist_insert);
+               add_test("remove_at", test_arraylist_remove_at);
+               add_test("index_of", test_arraylist_index_of);
+
+               // Methods of Collection interface
+               add_test("add", test_arraylist_add);
+               add_test("clear", test_arraylist_clear);
+               add_test("contains", test_arraylist_contains);
+               add_test("remove", test_arraylist_remove);
+               add_test("size", test_arraylist_size);
+
+               // Methods of Iterable interface
+               add_test("iterator", test_arraylist_iterator);
        }
-       Test.trap_assert_failed ();
-}
 
-void test_arraylist_set () {
-       var arraylistOfString = new ArrayList<string> ();
-       
-       // Check set when list is empty.
-       assert (arraylistOfString.size == 0);
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
-               arraylistOfString.set (0, "0");
-               return;
+       public override void setup () {
+               int_collection = new ArrayList<int> ();
+               string_collection = new ArrayList<string> (str_equal);
+               object_collection = new ArrayList<Object> ();
        }
-       Test.trap_assert_failed ();
-       assert (arraylistOfString.size == 0);
-       
-       // Check set when one item is in list
-       arraylistOfString.add ("1"); // Add item "1"
-       assert (arraylistOfString.size == 1);
-       assert (arraylistOfString.get (0) == "1");
-       
-       arraylistOfString.set (0, "2"); // Set the item to value 2
-       assert (arraylistOfString.size == 1);
-       assert (arraylistOfString.get (0) == "2");
-       
-       // Check set when index out of range
-       assert (arraylistOfString.size == 1);
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
-               arraylistOfString.set (1, "0");
-               return;
+
+       public override void teardown () {
+               int_collection = null;
+               string_collection = null;
+               object_collection = null;
        }
-       Test.trap_assert_failed ();
-       assert (arraylistOfString.size == 1);
-}
 
-void test_arraylist_insert () {
-       var arraylistOfString = new ArrayList<string> ();
-       
-       // Check inserting in empty list
-       // Inserting at index 1
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
-               arraylistOfString.insert (1, "0");
-               return;
+       void test_arraylist_get () {
+               var arraylistOfString = string_collection as Gee.List<string>;
+
+               // Check get for empty list
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.get (0);
+                       return;
+               }
+               Test.trap_assert_failed ();
+
+               // Check get for valid index in list with one element
+               arraylistOfString.add ("1");
+               assert (arraylistOfString.get (0) == "1");
+
+               // Check get for indexes out of range
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.get (1);
+                       return;
+               }
+               Test.trap_assert_failed ();
+
+               // Check get for invalid index number
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.get (-1);
+                       return;
+               }
+               Test.trap_assert_failed ();
+
+               // Check get for valid indexes in list with multiple element
+               arraylistOfString.add ("2");
+               arraylistOfString.add ("3");
+               assert (arraylistOfString.get (0) == "1");
+               assert (arraylistOfString.get (1) == "2");
+               assert (arraylistOfString.get (2) == "3");
+
+               // Check get if list is cleared and empty again
+               arraylistOfString.clear ();
+
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.get (0);
+                       return;
+               }
+               Test.trap_assert_failed ();
        }
-       Test.trap_assert_failed ();
-       
-       // Inserting at index 0
-       assert (arraylistOfString.size == 0);
-       arraylistOfString.insert (0, "10");
-       assert (arraylistOfString.size == 1);
-       assert (arraylistOfString.get (0) == "10");
-       
-       // Check insert to the beginning
-       arraylistOfString.insert (0, "5");
-       assert (arraylistOfString.get (0) == "5");
-       assert (arraylistOfString.get (1) == "10");
-       
-       // Check insert in between
-       arraylistOfString.insert (1, "7");
-       assert (arraylistOfString.get (0) == "5");
-       assert (arraylistOfString.get (1) == "7");
-       assert (arraylistOfString.get (2) == "10");
-       
-       // Check insert into index out of current range
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
-               arraylistOfString.insert (4, "20");
-               return;
+
+       void test_arraylist_set () {
+               var arraylistOfString = string_collection as Gee.List<string>;
+
+               // Check set when list is empty.
+               assert (arraylistOfString.size == 0);
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.set (0, "0");
+                       return;
+               }
+               Test.trap_assert_failed ();
+               assert (arraylistOfString.size == 0);
+
+               // Check set when one item is in list
+               arraylistOfString.add ("1"); // Add item "1"
+               assert (arraylistOfString.size == 1);
+               assert (arraylistOfString.get (0) == "1");
+
+               arraylistOfString.set (0, "2"); // Set the item to value 2
+               assert (arraylistOfString.size == 1);
+               assert (arraylistOfString.get (0) == "2");
+
+               // Check set when index out of range
+               assert (arraylistOfString.size == 1);
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.set (1, "0");
+                       return;
+               }
+               Test.trap_assert_failed ();
+               assert (arraylistOfString.size == 1);
        }
-       Test.trap_assert_failed ();
-       
-       // Check insert to the end
-       arraylistOfString.insert (3, "20");
-       assert (arraylistOfString.get (0) == "5");
-       assert (arraylistOfString.get (1) == "7");
-       assert (arraylistOfString.get (2) == "10");
-       assert (arraylistOfString.get (3) == "20");
-       
-       // Check insert into invalid index
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
-               arraylistOfString.insert (-1, "0");
-               return;
+
+       void test_arraylist_insert () {
+               var arraylistOfString = string_collection as Gee.List<string>;
+
+               // Check inserting in empty list
+               // Inserting at index 1
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.insert (1, "0");
+                       return;
+               }
+               Test.trap_assert_failed ();
+
+               // Inserting at index 0
+               assert (arraylistOfString.size == 0);
+               arraylistOfString.insert (0, "10");
+               assert (arraylistOfString.size == 1);
+               assert (arraylistOfString.get (0) == "10");
+
+               // Check insert to the beginning
+               arraylistOfString.insert (0, "5");
+               assert (arraylistOfString.get (0) == "5");
+               assert (arraylistOfString.get (1) == "10");
+
+               // Check insert in between
+               arraylistOfString.insert (1, "7");
+               assert (arraylistOfString.get (0) == "5");
+               assert (arraylistOfString.get (1) == "7");
+               assert (arraylistOfString.get (2) == "10");
+
+               // Check insert into index out of current range
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.insert (4, "20");
+                       return;
+               }
+               Test.trap_assert_failed ();
+
+               // Check insert to the end
+               arraylistOfString.insert (3, "20");
+               assert (arraylistOfString.get (0) == "5");
+               assert (arraylistOfString.get (1) == "7");
+               assert (arraylistOfString.get (2) == "10");
+               assert (arraylistOfString.get (3) == "20");
+
+               // Check insert into invalid index
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.insert (-1, "0");
+                       return;
+               }
+               Test.trap_assert_failed ();
+
        }
-       Test.trap_assert_failed ();
-       
-}
 
-void test_arraylist_remove_at () {
-       var arraylistOfString = new ArrayList<string> ();
-       
-       // Check removing in empty list
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+       void test_arraylist_remove_at () {
+               var arraylistOfString = string_collection as Gee.List<string>;
+
+               // Check removing in empty list
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.remove_at (0);
+                       return;
+               }
+               Test.trap_assert_failed ();
+
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.remove_at (1);
+                       return;
+               }
+               Test.trap_assert_failed ();
+
+               // add 5 items
+               arraylistOfString.add ("1");
+               arraylistOfString.add ("2");
+               arraylistOfString.add ("3");
+               arraylistOfString.add ("4");
+               arraylistOfString.add ("5");
+               assert (arraylistOfString.size == 5);
+
+               // Check remove_at first
                arraylistOfString.remove_at (0);
-               return;
-       }
-       Test.trap_assert_failed ();
-       
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+               assert (arraylistOfString.size == 4);
+               assert (arraylistOfString.get (0) == "2");
+               assert (arraylistOfString.get (1) == "3");
+               assert (arraylistOfString.get (2) == "4");
+               assert (arraylistOfString.get (3) == "5");
+
+               // Check remove_at last
+               arraylistOfString.remove_at (3);
+               assert (arraylistOfString.size == 3);
+               assert (arraylistOfString.get (0) == "2");
+               assert (arraylistOfString.get (1) == "3");
+               assert (arraylistOfString.get (2) == "4");
+
+               // Check remove_at in between
                arraylistOfString.remove_at (1);
-               return;
+               assert (arraylistOfString.size == 2);
+               assert (arraylistOfString.get (0) == "2");
+               assert (arraylistOfString.get (1) == "4");
+
+               // Check remove_at when index out of range
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.remove_at (2);
+                       return;
+               }
+               Test.trap_assert_failed ();
+
+               // Check remove_at when invalid index
+               if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
+                       arraylistOfString.remove_at (-1);
+                       return;
+               }
+               Test.trap_assert_failed ();
+       }
+
+       void test_arraylist_index_of () {
+               var arraylistOfString = string_collection as Gee.List<string>;
+               // Check empty list
+               assert (arraylistOfString.index_of ("one") == -1);
+
+               // Check one item
+               arraylistOfString.add ("one");
+               assert (arraylistOfString.index_of ("one") == 0);
+               assert (arraylistOfString.index_of ("two") == -1);
+
+               // Check more items
+               arraylistOfString.add ("two");
+               arraylistOfString.add ("three");
+               arraylistOfString.add ("four");
+               assert (arraylistOfString.index_of ("one") == 0);
+               assert (arraylistOfString.index_of ("two") == 1);
+               assert (arraylistOfString.index_of ("three") == 2);
+               assert (arraylistOfString.index_of ("four") == 3);
+               assert (arraylistOfString.index_of ("five") == -1);
+
+               // Check list of ints
+               var arraylistOfInt = int_collection as Gee.List<int>;
+
+               // Check more items
+               arraylistOfInt.add (1);
+               arraylistOfInt.add (2);
+               arraylistOfInt.add (3);
+               assert (arraylistOfInt.index_of (1) == 0);
+               assert (arraylistOfInt.index_of (2) == 1);
+               assert (arraylistOfInt.index_of (3) == 2);
+               assert (arraylistOfInt.index_of (4) == -1);
+
+               // Check list of objects
+               var arraylistOfObjects = object_collection as Gee.List<Object>;
+
+               var object1 = new Object ();
+               var object2 = new Object ();
+               var object3 = new Object ();
+
+               arraylistOfObjects.add (object1);
+               arraylistOfObjects.add (object2);
+               arraylistOfObjects.add (object3);
+
+               assert (arraylistOfObjects.index_of (object1) == 0);
+               assert (arraylistOfObjects.index_of (object2) == 1);
+               assert (arraylistOfObjects.index_of (object3) == 2);
+
        }
-       Test.trap_assert_failed ();
-       
-       // add 5 items
-       arraylistOfString.add ("1");
-       arraylistOfString.add ("2");
-       arraylistOfString.add ("3");
-       arraylistOfString.add ("4");
-       arraylistOfString.add ("5");
-       assert (arraylistOfString.size == 5);
-       
-       // Check remove_at first
-       arraylistOfString.remove_at (0);
-       assert (arraylistOfString.size == 4);
-       assert (arraylistOfString.get (0) == "2");
-       assert (arraylistOfString.get (1) == "3");
-       assert (arraylistOfString.get (2) == "4");
-       assert (arraylistOfString.get (3) == "5");
-       
-       // Check remove_at last
-       arraylistOfString.remove_at (3);
-       assert (arraylistOfString.size == 3);
-       assert (arraylistOfString.get (0) == "2");
-       assert (arraylistOfString.get (1) == "3");
-       assert (arraylistOfString.get (2) == "4");
-       
-       // Check remove_at in between
-       arraylistOfString.remove_at (1);
-       assert (arraylistOfString.size == 2);
-       assert (arraylistOfString.get (0) == "2");
-       assert (arraylistOfString.get (1) == "4");
-       
-       // Check remove_at when index out of range
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
-               arraylistOfString.remove_at (2);
-               return;
+
+       void test_arraylist_add () {
+               var arraylistOfString = string_collection as Gee.List<string>;
+
+               arraylistOfString.add ("42");
+               assert (arraylistOfString.contains ("42"));
+               assert (arraylistOfString.size == 1);
+
+               // check for correct order of elements
+               arraylistOfString.add ("43");
+               arraylistOfString.add ("44");
+               arraylistOfString.add ("45");
+               assert (arraylistOfString.get (0) == "42");
+               assert (arraylistOfString.get (1) == "43");
+               assert (arraylistOfString.get (2) == "44");
+               assert (arraylistOfString.get (3) == "45");
+               assert (arraylistOfString.size == 4);
+
+               // check adding of ints
+               var arrayListOfInt = int_collection as Gee.List<int>;
+
+               arrayListOfInt.add (42);
+               assert (arrayListOfInt.contains (42));
+               assert (arrayListOfInt.size == 1);
+
+               // check adding of objects
+               var arrayListOfGLibObject = new ArrayList<Object> ();
+
+               var fooObject = new Object();
+               arrayListOfGLibObject.add (fooObject);
+               assert (arrayListOfGLibObject.contains (fooObject));
+               assert (arrayListOfGLibObject.size == 1);
+
        }
-       Test.trap_assert_failed ();
-       
-       // Check remove_at when invalid index
-       if (Test.trap_fork (0, TestTrapFlags.SILENCE_STDOUT | TestTrapFlags.SILENCE_STDERR)) {
-               arraylistOfString.remove_at (-1);
-               return;
+
+       void test_arraylist_clear () {
+               var arraylistOfString = string_collection as Collection<string>;
+               assert (arraylistOfString.size == 0);
+
+               // Check clear on empty list
+               arraylistOfString.clear();
+               assert (arraylistOfString.size == 0);
+
+               // Check clear one item
+               arraylistOfString.add ("1");
+               assert (arraylistOfString.size == 1);
+               arraylistOfString.clear();
+               assert (arraylistOfString.size == 0);
+
+               // Check clear multiple items
+               arraylistOfString.add ("1");
+               arraylistOfString.add ("2");
+               arraylistOfString.add ("3");
+               assert (arraylistOfString.size == 3);
+               arraylistOfString.clear();
+               assert (arraylistOfString.size == 0);
        }
-       Test.trap_assert_failed ();
-}
 
-void test_arraylist_index_of () {
-       var arraylistOfString = new ArrayList<string> (str_equal);
-       // Check empty list
-       assert (arraylistOfString.index_of ("one") == -1);
-       
-       // Check one item
-       arraylistOfString.add ("one");
-       assert (arraylistOfString.index_of ("one") == 0);
-       assert (arraylistOfString.index_of ("two") == -1);
-       
-       // Check more items
-       arraylistOfString.add ("two");
-       arraylistOfString.add ("three");
-       arraylistOfString.add ("four");
-       assert (arraylistOfString.index_of ("one") == 0);
-       assert (arraylistOfString.index_of ("two") == 1);
-       assert (arraylistOfString.index_of ("three") == 2);
-       assert (arraylistOfString.index_of ("four") == 3);
-       assert (arraylistOfString.index_of ("five") == -1);
-       
-       // Check list of ints
-       var arraylistOfInt = new ArrayList<int> ();
-       
-       // Check more items
-       arraylistOfInt.add (1);
-       arraylistOfInt.add (2);
-       arraylistOfInt.add (3);
-       assert (arraylistOfInt.index_of (1) == 0);
-       assert (arraylistOfInt.index_of (2) == 1);
-       assert (arraylistOfInt.index_of (3) == 2);
-       assert (arraylistOfInt.index_of (4) == -1);
-       
-       // Check list of objects
-       var arraylistOfObjects = new ArrayList<Object> ();
-       
-       var object1 = new Object ();
-       var object2 = new Object ();
-       var object3 = new Object ();
-       
-       arraylistOfObjects.add (object1);
-       arraylistOfObjects.add (object2);
-       arraylistOfObjects.add (object3);
-       
-       assert (arraylistOfObjects.index_of (object1) == 0);
-       assert (arraylistOfObjects.index_of (object2) == 1);
-       assert (arraylistOfObjects.index_of (object3) == 2);
-       
-}
+       void test_arraylist_contains () {
+               var arraylistOfString = string_collection as Gee.List<string>;
 
-void test_arraylist_add () {
-       var arraylistOfString = new ArrayList<string> (str_equal);
-
-       arraylistOfString.add ("42");
-       assert (arraylistOfString.contains ("42"));
-       assert (arraylistOfString.size == 1);
-       
-       // check for correct order of elements
-       arraylistOfString.add ("43");
-       arraylistOfString.add ("44");
-       arraylistOfString.add ("45");
-       assert (arraylistOfString.get (0) == "42");
-       assert (arraylistOfString.get (1) == "43");
-       assert (arraylistOfString.get (2) == "44");
-       assert (arraylistOfString.get (3) == "45");
-       assert (arraylistOfString.size == 4);
-       
-       // check adding of ints
-       var arrayListOfInt = new ArrayList<int> ();
-
-       arrayListOfInt.add (42);
-       assert (arrayListOfInt.contains (42));
-       assert (arrayListOfInt.size == 1);
-       
-       // check adding of objects
-       var arrayListOfGLibObject = new ArrayList<Object> ();
-       
-       var fooObject = new Object();
-       arrayListOfGLibObject.add (fooObject);
-       assert (arrayListOfGLibObject.contains (fooObject));
-       assert (arrayListOfGLibObject.size == 1);
-       
-}
+               // Check on empty list
+               assert (!arraylistOfString.contains("1"));
 
-void test_arraylist_clear () {
-       var arraylistOfString = new ArrayList<string> (str_equal);
-       assert (arraylistOfString.size == 0);
-       
-       // Check clear on empty list
-       arraylistOfString.clear();
-       assert (arraylistOfString.size == 0);
-       
-       // Check clear one item
-       arraylistOfString.add ("1");
-       assert (arraylistOfString.size == 1);
-       arraylistOfString.clear();
-       assert (arraylistOfString.size == 0);
-       
-       // Check clear multiple items
-       arraylistOfString.add ("1");
-       arraylistOfString.add ("2");
-       arraylistOfString.add ("3");
-       assert (arraylistOfString.size == 3);
-       arraylistOfString.clear();
-       assert (arraylistOfString.size == 0);
-}
+               // Check items
+               arraylistOfString.add ("10");
+               assert (arraylistOfString.contains("10"));
+               assert (!arraylistOfString.contains("20"));
+               assert (!arraylistOfString.contains("30"));
 
-void test_arraylist_contains () {
-       var arraylistOfString = new ArrayList<string> (str_equal);
-       
-       // Check on empty list
-       assert (!arraylistOfString.contains("1"));
-       
-       // Check items
-       arraylistOfString.add ("10");
-       assert (arraylistOfString.contains("10"));
-       assert (!arraylistOfString.contains("20"));
-       assert (!arraylistOfString.contains("30"));
-       
-       arraylistOfString.add ("20");
-       assert (arraylistOfString.contains("10"));
-       assert (arraylistOfString.contains("20"));
-       assert (!arraylistOfString.contains("30"));
-       
-       arraylistOfString.add ("30");
-       assert (arraylistOfString.contains("10"));
-       assert (arraylistOfString.contains("20"));
-       assert (arraylistOfString.contains("30"));
-       
-       // Clear and recheck
-       arraylistOfString.clear();
-       assert (!arraylistOfString.contains("10"));
-       assert (!arraylistOfString.contains("20"));
-       assert (!arraylistOfString.contains("30"));
-       
-       var arraylistOfInt = new ArrayList<int> ();
-       
-       // Check items
-       arraylistOfInt.add (10);
-       assert (arraylistOfInt.contains(10));
-       assert (!arraylistOfInt.contains(20));
-       assert (!arraylistOfInt.contains(30));
-       
-       arraylistOfInt.add (20);
-       assert (arraylistOfInt.contains(10));
-       assert (arraylistOfInt.contains(20));
-       assert (!arraylistOfInt.contains(30));
-       
-       arraylistOfInt.add (30);
-       assert (arraylistOfInt.contains(10));
-       assert (arraylistOfInt.contains(20));
-       assert (arraylistOfInt.contains(30));
-       
-       // Clear and recheck
-       arraylistOfInt.clear();
-       assert (!arraylistOfInt.contains(10));
-       assert (!arraylistOfInt.contains(20));
-       assert (!arraylistOfInt.contains(30));
-}
+               arraylistOfString.add ("20");
+               assert (arraylistOfString.contains("10"));
+               assert (arraylistOfString.contains("20"));
+               assert (!arraylistOfString.contains("30"));
 
-void test_arraylist_remove () {
-       var arraylistOfString = new ArrayList<string> (str_equal);
-       
-       // Check remove if list is empty
-       arraylistOfString.remove("42");
-       
-       // Add 5 same elements
-       arraylistOfString.add ("42");
-       arraylistOfString.add ("42");
-       arraylistOfString.add ("42");
-       arraylistOfString.add ("42");
-       arraylistOfString.add ("42");
-       
-       // Check remove one element
-       arraylistOfString.remove ("42");
-       assert (arraylistOfString.size == 4);
-       assert (arraylistOfString.contains ("42"));
-       
-       // Check remove another one element
-       arraylistOfString.remove ("42");
-       assert (arraylistOfString.size == 3);
-       assert (arraylistOfString.contains ("42"));
-       
-       // Clear the list to start from scratch
-       arraylistOfString.clear();
-       
-       // Add 5 different elements
-       arraylistOfString.add ("42");
-       arraylistOfString.add ("43");
-       arraylistOfString.add ("44");
-       arraylistOfString.add ("45");
-       arraylistOfString.add ("46");
-       assert (arraylistOfString.size == 5);
-       
-       // Check remove first
-       arraylistOfString.remove("42");
-       assert (arraylistOfString.size == 4);
-       assert (arraylistOfString.get (0) == "43");
-       assert (arraylistOfString.get (1) == "44");
-       assert (arraylistOfString.get (2) == "45");
-       assert (arraylistOfString.get (3) == "46");
-       
-       // Check remove last
-       arraylistOfString.remove("46");
-       assert (arraylistOfString.size == 3);
-       assert (arraylistOfString.get (0) == "43");
-       assert (arraylistOfString.get (1) == "44");
-       assert (arraylistOfString.get (2) == "45");
-       
-       // Check remove in between
-       arraylistOfString.remove("44");
-       assert (arraylistOfString.size == 2);
-       assert (arraylistOfString.get (0) == "43");
-       assert (arraylistOfString.get (1) == "45");
-
-       // Check removing of int element
-       var arraylistOfInt = new ArrayList<int> ();
-       
-       // Add 5 different elements
-       arraylistOfInt.add (42);
-       arraylistOfInt.add (43);
-       arraylistOfInt.add (44);
-       arraylistOfInt.add (45);
-       arraylistOfInt.add (46);
-       assert (arraylistOfInt.size == 5);
-       
-       // Remove first
-       arraylistOfInt.remove(42);
-       assert (arraylistOfInt.size == 4);
-       assert (arraylistOfInt.get (0) == 43);
-       assert (arraylistOfInt.get (1) == 44);
-       assert (arraylistOfInt.get (2) == 45);
-       assert (arraylistOfInt.get (3) == 46);
-       
-       // Remove last
-       arraylistOfInt.remove(46);
-       assert (arraylistOfInt.size == 3);
-       assert (arraylistOfInt.get (0) == 43);
-       assert (arraylistOfInt.get (1) == 44);
-       assert (arraylistOfInt.get (2) == 45);
-       
-       // Remove in between
-       arraylistOfInt.remove(44);
-       assert (arraylistOfInt.size == 2);
-       assert (arraylistOfInt.get (0) == 43);
-       assert (arraylistOfInt.get (1) == 45);
-}
+               arraylistOfString.add ("30");
+               assert (arraylistOfString.contains("10"));
+               assert (arraylistOfString.contains("20"));
+               assert (arraylistOfString.contains("30"));
 
-void test_arraylist_size () {
-       var arraylist = new ArrayList<string> ();
-       
-       // Check empty list
-       assert (arraylist.size == 0);
-       
-       // Check when one item
-       arraylist.add ("1");
-       assert (arraylist.size == 1);
-       
-       // Check when more items
-       arraylist.add ("2");
-       assert (arraylist.size == 2);
-       
-       // Check when items cleared
-       arraylist.clear();
-       assert (arraylist.size == 0);
-}
+               // Clear and recheck
+               arraylistOfString.clear();
+               assert (!arraylistOfString.contains("10"));
+               assert (!arraylistOfString.contains("20"));
+               assert (!arraylistOfString.contains("30"));
 
-void test_arraylist_iterator () {
-       var arraylistOfString = new ArrayList<string> ();
-       
-       // Check iterate empty list
-       var iterator = arraylistOfString.iterator ();
-       assert (!iterator.next());
-       
-       // Check iterate list
-       arraylistOfString.add ("42");
-       arraylistOfString.add ("43");
-       arraylistOfString.add ("44");
-       
-       iterator = arraylistOfString.iterator ();
-       assert (iterator.next());
-       assert (iterator.get () == "42");
-       assert (iterator.next());
-       assert (iterator.get () == "43");
-       assert (iterator.next());
-       assert (iterator.get () == "44");
-       assert (!iterator.next());
-}
+               var arraylistOfInt = int_collection as Gee.List<int>;
+
+               // Check items
+               arraylistOfInt.add (10);
+               assert (arraylistOfInt.contains(10));
+               assert (!arraylistOfInt.contains(20));
+               assert (!arraylistOfInt.contains(30));
+
+               arraylistOfInt.add (20);
+               assert (arraylistOfInt.contains(10));
+               assert (arraylistOfInt.contains(20));
+               assert (!arraylistOfInt.contains(30));
+
+               arraylistOfInt.add (30);
+               assert (arraylistOfInt.contains(10));
+               assert (arraylistOfInt.contains(20));
+               assert (arraylistOfInt.contains(30));
+
+               // Clear and recheck
+               arraylistOfInt.clear();
+               assert (!arraylistOfInt.contains(10));
+               assert (!arraylistOfInt.contains(20));
+               assert (!arraylistOfInt.contains(30));
+       }
+
+       void test_arraylist_remove () {
+               var arraylistOfString = string_collection as Gee.List<string>;
 
-void test_arraylist_to_array () {
-       var arraylistOfString = new ArrayList<string> ();
+               // Check remove if list is empty
+               arraylistOfString.remove("42");
 
-       // Check iterate list
-       arraylistOfString.add ("42");
-       arraylistOfString.add ("43");
-       arraylistOfString.add ("44");
+               // Add 5 same elements
+               arraylistOfString.add ("42");
+               arraylistOfString.add ("42");
+               arraylistOfString.add ("42");
+               arraylistOfString.add ("42");
+               arraylistOfString.add ("42");
 
-       string[] array = (string[]) arraylistOfString.to_array ();
-       assert (array[0] == "42");
-       assert (array[1] == "43");
-       assert (array[2] == "44");
+               // Check remove one element
+               arraylistOfString.remove ("42");
+               assert (arraylistOfString.size == 4);
+               assert (arraylistOfString.contains ("42"));
+
+               // Check remove another one element
+               arraylistOfString.remove ("42");
+               assert (arraylistOfString.size == 3);
+               assert (arraylistOfString.contains ("42"));
+
+               // Clear the list to start from scratch
+               arraylistOfString.clear();
+
+               // Add 5 different elements
+               arraylistOfString.add ("42");
+               arraylistOfString.add ("43");
+               arraylistOfString.add ("44");
+               arraylistOfString.add ("45");
+               arraylistOfString.add ("46");
+               assert (arraylistOfString.size == 5);
+
+               // Check remove first
+               arraylistOfString.remove("42");
+               assert (arraylistOfString.size == 4);
+               assert (arraylistOfString.get (0) == "43");
+               assert (arraylistOfString.get (1) == "44");
+               assert (arraylistOfString.get (2) == "45");
+               assert (arraylistOfString.get (3) == "46");
+
+               // Check remove last
+               arraylistOfString.remove("46");
+               assert (arraylistOfString.size == 3);
+               assert (arraylistOfString.get (0) == "43");
+               assert (arraylistOfString.get (1) == "44");
+               assert (arraylistOfString.get (2) == "45");
+
+               // Check remove in between
+               arraylistOfString.remove("44");
+               assert (arraylistOfString.size == 2);
+               assert (arraylistOfString.get (0) == "43");
+               assert (arraylistOfString.get (1) == "45");
+
+               // Check removing of int element
+               var arraylistOfInt = int_collection as Gee.List<int>;
+
+               // Add 5 different elements
+               arraylistOfInt.add (42);
+               arraylistOfInt.add (43);
+               arraylistOfInt.add (44);
+               arraylistOfInt.add (45);
+               arraylistOfInt.add (46);
+               assert (arraylistOfInt.size == 5);
+
+               // Remove first
+               arraylistOfInt.remove(42);
+               assert (arraylistOfInt.size == 4);
+               assert (arraylistOfInt.get (0) == 43);
+               assert (arraylistOfInt.get (1) == 44);
+               assert (arraylistOfInt.get (2) == 45);
+               assert (arraylistOfInt.get (3) == 46);
+
+               // Remove last
+               arraylistOfInt.remove(46);
+               assert (arraylistOfInt.size == 3);
+               assert (arraylistOfInt.get (0) == 43);
+               assert (arraylistOfInt.get (1) == 44);
+               assert (arraylistOfInt.get (2) == 45);
+
+               // Remove in between
+               arraylistOfInt.remove(44);
+               assert (arraylistOfInt.size == 2);
+               assert (arraylistOfInt.get (0) == 43);
+               assert (arraylistOfInt.get (1) == 45);
+       }
+
+       void test_arraylist_size () {
+               var arraylist = string_collection as Gee.List<string>;
+
+               // Check empty list
+               assert (arraylist.size == 0);
+
+               // Check when one item
+               arraylist.add ("1");
+               assert (arraylist.size == 1);
+
+               // Check when more items
+               arraylist.add ("2");
+               assert (arraylist.size == 2);
+
+               // Check when items cleared
+               arraylist.clear();
+               assert (arraylist.size == 0);
+       }
+
+       void test_arraylist_iterator () {
+               var arraylistOfString = string_collection as Gee.List<string>;
+
+               // Check iterate empty list
+               var iterator = arraylistOfString.iterator ();
+               assert (!iterator.next());
+
+               // Check iterate list
+               arraylistOfString.add ("42");
+               arraylistOfString.add ("43");
+               arraylistOfString.add ("44");
+
+               iterator = arraylistOfString.iterator ();
+               assert (iterator.next());
+               assert (iterator.get () == "42");
+               assert (iterator.next());
+               assert (iterator.get () == "43");
+               assert (iterator.next());
+               assert (iterator.get () == "44");
+               assert (!iterator.next());
+       }
 }
 
 void main (string[] args) {
        Test.init (ref args);
-       
-       // Methods of List interface
-       Test.add_func ("/Arraylist/List/get", test_arraylist_get);
-       Test.add_func ("/Arraylist/List/set", test_arraylist_set);
-       Test.add_func ("/Arraylist/List/insert", test_arraylist_insert);
-       Test.add_func ("/Arraylist/List/remove_at", test_arraylist_remove_at);
-       Test.add_func ("/Arraylist/List/index_of", test_arraylist_index_of);
-       
-       // Methods of Collection interface
-       Test.add_func ("/Arraylist/Collection/add", test_arraylist_add);
-       Test.add_func ("/Arraylist/Collection/clear", test_arraylist_clear);
-       Test.add_func ("/Arraylist/Collection/contains", test_arraylist_contains);
-       Test.add_func ("/Arraylist/Collection/remove", test_arraylist_remove);
-       Test.add_func ("/Arraylist/Collection/size", test_arraylist_size);
-       Test.add_func ("/Arraylist/Collection/to_array", test_arraylist_to_array);
-       
-       // Methods of Iterable interface
-       Test.add_func ("/Arraylist/Iterable/iterator", test_arraylist_iterator);
-       
+
+       ArrayListTests tests = new ArrayListTests ();
+
+       TestSuite.get_root ().add_suite (tests.get_suite ());
+
        Test.run ();
 }