]> ruin.nu Git - germs.git/blobdiff - src/test/geneordertest.cpp
GeneOrder::reverse implemented
[germs.git] / src / test / geneordertest.cpp
index d8cf105f68b3dce230beba2f23aa5bf0dddb246f..bfa2dbdd4dc82bb7fee3ba67ebe02130a677bdc8 100644 (file)
@@ -2,6 +2,8 @@
 #include <cppunit/extensions/HelperMacros.h>
 
 #include <geneorder.h>
+
+#include <algorithm>
 using namespace std;
 
 /* 
@@ -17,6 +19,9 @@ class TESTNAME : public CPPUNIT_NS::TestFixture
 {
   CPPUNIT_TEST_SUITE( TESTNAME );
   CPPUNIT_TEST( testCreate );
+  CPPUNIT_TEST( testCopyCreate );
+  CPPUNIT_TEST( testAssign );
+  CPPUNIT_TEST( testReverse );
   CPPUNIT_TEST_SUITE_END();
 
 protected:
@@ -51,6 +56,40 @@ protected:
                CPPUNIT_ASSERT_NO_THROW(GeneOrder go(_bigvalidPerm.begin(),_bigvalidPerm.end()));
                CPPUNIT_ASSERT_THROW(GeneOrder go(_invalidPerm.begin(),_invalidPerm.end()),invalid_argument);
        }
+       void testCopyCreate (){
+               GeneOrder go(_bigvalidPerm.begin(),_bigvalidPerm.end());
+               GeneOrder go2(go);
+               CPPUNIT_ASSERT(equal(go.begin(),go.end(),go2.begin()));
+               GeneOrder go3(_validPerm.begin(),_validPerm.end());
+               CPPUNIT_ASSERT(!equal(go3.begin(),go3.end(),go2.begin()));
+       }
+       void testAssign (){
+               GeneOrder go(_bigvalidPerm.begin(),_bigvalidPerm.end());
+               GeneOrder go2(_validPerm.begin(),_validPerm.end());
+               go2 = go;
+               CPPUNIT_ASSERT(equal(go.begin(),go.end(),go2.begin()));
+               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 );