#include <algorithm>
#include <set>
#include <cstdlib>
+#include <iostream>
using namespace std;
std::pair<int,int> longestSequences(const GeneOrder& go){
return vector<Component>();
}
+//TODO: Think of a better than O(n^2) implementation
std::vector<Interval> findIntervals(const GeneOrder& go){
- return vector<Interval>();
+ vector<Interval> intervals;
+ for (size_t i = 0; i < go.size() - 1; ++i){
+ size_t f = 0;
+ size_t s = 0;
+ bool found = false;
+ size_t n = 0;
+ for (GeneOrder::iterator g = go.begin(); g != go.end(); ++g, ++n){
+ if (static_cast<size_t>(abs(*g)) == i){
+ f = n;
+ if (*g >= 0)
+ ++f;
+ if (found)
+ break;
+ found = true;
+ }
+ if(static_cast<size_t>(abs(*g)) == i+1){
+ s = n;
+ if (*g < 0)
+ ++s;
+ if (found)
+ break;
+ found = true;
+ }
+ }
+ intervals.push_back(Interval(f,s));
+ }
+ return intervals;
}
CPPUNIT_ASSERT(go12 == v[2]);
GeneOrder go2(_validPerm2.begin(),_validPerm2.end());
- v = findIntervals(go);
+ v = findIntervals(go2);
CPPUNIT_ASSERT_EQUAL(9ul,v.size());
Interval go20(1,3);
Interval go22(1,4);