]> ruin.nu Git - germs.git/blobdiff - src/test/geneordertest.cpp
GeneOrder::reverse implemented
[germs.git] / src / test / geneordertest.cpp
index 8583b3b7731fe164776f5034c510995c8ad478ae..bfa2dbdd4dc82bb7fee3ba67ebe02130a677bdc8 100644 (file)
@@ -21,6 +21,7 @@ class TESTNAME : public CPPUNIT_NS::TestFixture
   CPPUNIT_TEST( testCreate );
   CPPUNIT_TEST( testCopyCreate );
   CPPUNIT_TEST( testAssign );
+  CPPUNIT_TEST( testReverse );
   CPPUNIT_TEST_SUITE_END();
 
 protected:
@@ -70,6 +71,25 @@ protected:
                GeneOrder go3(_validPerm.begin(),_validPerm.end());
                CPPUNIT_ASSERT(!equal(go3.begin(),go3.end(),go2.begin()));
        }
+       void testReverse(){
+               int validPerm[] = {1,2,3,4,5,6,7};
+               GeneOrder go(validPerm,validPerm+7);
+               int validPerm2[] = {1,-6,-5,-4,-3,-2,7};
+               GeneOrder go2(validPerm2,validPerm2+7);
+               go2.reverse(2,6);
+               CPPUNIT_ASSERT(equal(go.begin(),go.end(),go2.begin()));
+
+               int validPerm3[] = {1,6,-5,-4,-3,2,7};
+               GeneOrder go3(validPerm3,validPerm3+7);
+
+               go3.reverse(2,6);
+               CPPUNIT_ASSERT(!equal(go.begin(),go.end(),go3.begin()));
+
+               CPPUNIT_ASSERT_THROW(go.reverse(2,1),out_of_range);
+               CPPUNIT_ASSERT_THROW(go.reverse(1,9),out_of_range);
+               CPPUNIT_ASSERT_THROW(go.reverse(-1,3),out_of_range);
+       }
+
 };
 
 CPPUNIT_TEST_SUITE_REGISTRATION( TESTNAME );