]> ruin.nu Git - germs.git/blobdiff - src/test/genealgorithmstest.cpp
good to have a inversion distance function
[germs.git] / src / test / genealgorithmstest.cpp
index f2bd11898b5a5a846d4364bc6073d903265d103c..b7dd4e16862e9452751ff509c41b1347f1052536 100644 (file)
@@ -26,6 +26,7 @@ class TESTNAME : public CPPUNIT_NS::TestFixture
   CPPUNIT_TEST( testFindIntervalsAtPoints );
   CPPUNIT_TEST( testCountCycles );
   CPPUNIT_TEST( testFindComponents );
+  CPPUNIT_TEST( testInversionDistance );
   CPPUNIT_TEST_SUITE_END();
 
 protected:
@@ -129,6 +130,20 @@ protected:
                CPPUNIT_ASSERT_EQUAL(6,c);
        }
 
+       void testInversionDistance (){
+               GeneOrder go(_validPerm.begin(),_validPerm.end());
+               size_t d = inversionDistance(go);
+               CPPUNIT_ASSERT_EQUAL(0ul,d);
+               
+               GeneOrder go2(_validPerm2.begin(),_validPerm2.end());
+               d = inversionDistance(go2);
+               CPPUNIT_ASSERT_EQUAL(5ul,d);
+
+               GeneOrder go3(_validPerm3.begin(),_validPerm3.end());
+               d = inversionDistance(go3);
+               CPPUNIT_ASSERT_EQUAL(13ul,d);
+       }
+
        void testFindComponents (){
                GeneOrder go(_validPerm.begin(),_validPerm.end());
                vector<Component> v = findComponents(go);