CPPUNIT_TEST( testFindIntervalsAtPoints );
CPPUNIT_TEST( testCountCycles );
CPPUNIT_TEST( testFindComponents );
+ CPPUNIT_TEST( testInversionDistance );
CPPUNIT_TEST_SUITE_END();
protected:
void testRobinsonSchensted (){
GeneOrder go(_validPerm.begin(),_validPerm.end());
vector<vector<int> > v = robinsonSchensted(go);
- CPPUNIT_ASSERT_EQUAL(1ul,v.size());
+ CPPUNIT_ASSERT_EQUAL((size_t)1u,v.size());
int go11[] = {0,1,2,3,4};
CPPUNIT_ASSERT(equal(v[0].begin(),v[0].end(),go11));
v = robinsonSchensted(go2);
int first[] = {0,1,3,5,6,7,9};
int second[] = {2,4,8};
- CPPUNIT_ASSERT_EQUAL(2ul,v.size());
+ CPPUNIT_ASSERT_EQUAL((size_t)2u,v.size());
CPPUNIT_ASSERT(equal(v[0].begin(),v[0].end(),first));
CPPUNIT_ASSERT(equal(v[1].begin(),v[1].end(),second));
}
}
void testFindIntervals (){
GeneOrder go(_validPerm.begin(),_validPerm.end());
- vector<pair<size_t,size_t> > v = findIntervals(go);
- CPPUNIT_ASSERT_EQUAL(4ul,v.size());
+ vector<Interval> v = findIntervals(go);
+ CPPUNIT_ASSERT_EQUAL((size_t)4u,v.size());
Interval go10(1,1);
Interval go12(3,3);
CPPUNIT_ASSERT(go10 == v[0]);
CPPUNIT_ASSERT(go12 == v[2]);
- GeneOrder go2(_validPerm3.begin(),_validPerm3.end());
+ GeneOrder go2(_validPerm2.begin(),_validPerm2.end());
+ v = findIntervals(go2);
+ CPPUNIT_ASSERT_EQUAL((size_t)9u,v.size());
+ Interval go20(1,3,true);
+ Interval go21(2,2);
+ Interval go22(1,4,true);
+ Interval go23(5,3);
+ Interval go25(6,7);
+ Interval go26(8,8);
+ Interval go27(9,7,true);
+ CPPUNIT_ASSERT(go20 == v[0]);
+ CPPUNIT_ASSERT(go21 == v[1]);
+ CPPUNIT_ASSERT(go22 == v[2]);
+ CPPUNIT_ASSERT(go23 == v[3]);
+ CPPUNIT_ASSERT(go25 == v[5]);
+ CPPUNIT_ASSERT(go26 == v[6]);
+ CPPUNIT_ASSERT(go27 == v[7]);
+
+ /*GeneOrder go2(_validPerm3.begin(),_validPerm3.end());
v = findIntervals(go2);
CPPUNIT_ASSERT_EQUAL(16ul,v.size());
- Interval go20(1,2);
+ Interval go20(1,2,true);
Interval go22(4,2);
Interval go215(8,16);
CPPUNIT_ASSERT(go20 == v[0]);
CPPUNIT_ASSERT(go22 == v[2]);
- CPPUNIT_ASSERT(go215 == v[15]);
+ CPPUNIT_ASSERT(go215 == v[15]);*/
}
void testFindIntervalsAtPoints (){
GeneOrder go(_validPerm.begin(),_validPerm.end());
vector<Interval> v = findIntervals(go);
v = findIntervalsAtPoints(v);
- CPPUNIT_ASSERT_EQUAL(5ul,v.size());
+ CPPUNIT_ASSERT_EQUAL((size_t)5u,v.size());
Interval go10(0,0);
Interval go12(2,2);
CPPUNIT_ASSERT(go10 == v[1]);
GeneOrder go2(_validPerm3.begin(),_validPerm3.end());
v = findIntervals(go2);
v = findIntervalsAtPoints(v);
- CPPUNIT_ASSERT_EQUAL(17ul,v.size());
+ CPPUNIT_ASSERT_EQUAL((size_t)17u,v.size());
Interval go20(0,3);
Interval go22(1,1);
CPPUNIT_ASSERT(go20 == v[1]);
CPPUNIT_ASSERT_EQUAL(6,c);
}
+ void testInversionDistance (){
+ GeneOrder go(_validPerm.begin(),_validPerm.end());
+ size_t d = inversionDistance(go);
+ CPPUNIT_ASSERT_EQUAL((size_t)0u,d);
+
+ GeneOrder go2(_validPerm2.begin(),_validPerm2.end());
+ d = inversionDistance(go2);
+ CPPUNIT_ASSERT_EQUAL((size_t)5u,d);
+
+ GeneOrder go3(_validPerm3.begin(),_validPerm3.end());
+ d = inversionDistance(go3);
+ CPPUNIT_ASSERT_EQUAL((size_t)13u,d);
+ }
+
void testFindComponents (){
GeneOrder go(_validPerm.begin(),_validPerm.end());
vector<Component> v = findComponents(go);
- CPPUNIT_ASSERT_EQUAL(4ul,v.size());
+ CPPUNIT_ASSERT_EQUAL((size_t)4u,v.size());
Component go10(0,1,0);
Component go11(1,2,0);
Component go12(2,3,0);
GeneOrder go2(_validPerm3.begin(),_validPerm3.end());
v = findComponents(go2);
- CPPUNIT_ASSERT_EQUAL(6ul,v.size());
+ CPPUNIT_ASSERT_EQUAL((size_t)6u,v.size());
Component go20(1,2,0);
Component go21(0,4,0);
Component go22(4,7,1);