]> ruin.nu Git - germs.git/blobdiff - src/test/genesortertest.cpp
genesorter now uses models to score actions, specific actions are now derived from...
[germs.git] / src / test / genesortertest.cpp
index 157e3c40be6c8764476a10b829babc58545766cf..c84ead8356fd26bf03e22000277e414180fd60cd 100644 (file)
@@ -5,6 +5,8 @@
 #include <geneorder.h>
 #include <genealgorithms.h>
 #include <reverseaction.h>
+#include <models.h>
+#include <model.h>
 
 #include <algorithm>
 #include <iterator>
@@ -56,34 +58,41 @@ protected:
        void testSort (){
                GeneSorter so;
                GeneOrder go(_validPerm.begin(),_validPerm.end());
-               GeneSorter::ActionList al = so.sort(go);
-               CPPUNIT_ASSERT_EQUAL(0ul,al.size());
+               GeneSorter::ActionList al = so.sort(go,Model(new Models::ModelImpl));
+               CPPUNIT_ASSERT_EQUAL((size_t)0u,al.size());
 
                GeneOrder go2(_validPerm2.begin(),_validPerm2.end());
-               al = so.sort(go2);
-               CPPUNIT_ASSERT_EQUAL(1ul,al.size());
+               al = so.sort(go2,Model(new Models::ModelImpl));
+               CPPUNIT_ASSERT_EQUAL((size_t)1u,al.size());
                CPPUNIT_ASSERT(al[0] == ReverseAction(2,3));
 
                al[0](go2);
                CPPUNIT_ASSERT(equal(go.begin(),go.end(),go2.begin()));
 
                GeneOrder go3(_validPerm3.begin(),_validPerm3.end());
-               al = so.sort(go3);
-               CPPUNIT_ASSERT_EQUAL(5ul,al.size());
+               al = so.sort(go3,Model(new Models::ModelImpl));
+               CPPUNIT_ASSERT_EQUAL((size_t)5u,al.size());
+               for (size_t i = 0; i < al.size(); ++i)
+                       al[i](go3);
+               int perm[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
+               CPPUNIT_ASSERT(equal(go3.begin(),go3.end(),perm));
+
+               GeneOrder go4(_validPerm4.begin(),_validPerm4.end());
+               al = so.sort(go4,Model(new Models::ModelImpl));
+               CPPUNIT_ASSERT_EQUAL((size_t)13u,al.size());
                for (size_t i = 0; i < al.size(); ++i)
                        al[i](go3);
-               int perm[] = {0,1,2,3,4,5,6,7,8,9};
                CPPUNIT_ASSERT(equal(go3.begin(),go3.end(),perm));
        }
        void testSafeActions (){
                GeneSorter so;
                GeneOrder go(_validPerm.begin(),_validPerm.end());
                GeneSorter::ActionList al = so.safeActions(go);
-               CPPUNIT_ASSERT_EQUAL(0ul,al.size());
+               CPPUNIT_ASSERT_EQUAL((size_t)0u,al.size());
 
                GeneOrder go2(_validPerm2.begin(),_validPerm2.end());
                al = so.safeActions(go2);
-               CPPUNIT_ASSERT_EQUAL(2ul,al.size());
+               CPPUNIT_ASSERT_EQUAL((size_t)2u,al.size());
                CPPUNIT_ASSERT(al[0] == ReverseAction(2,3));
                CPPUNIT_ASSERT(al[1] == ReverseAction(2,3));
                CPPUNIT_ASSERT(!(al[0] == ReverseAction(2,5)));