+ void testMakeUnoriented (){
+ GeneOrder go(_validPerm.begin(),_validPerm.end());
+ ComponentTree t(findComponents(go));
+ t.makeUnoriented();
+ ComponentTree::Node* n = t._root;
+
+ CPPUNIT_ASSERT_EQUAL((size_t)0u,count(n));
+ CPPUNIT_ASSERT_EQUAL((size_t)1u,count(n,true));
+ CPPUNIT_ASSERT_EQUAL((size_t)0u,n->_children.size());
+
+ GeneOrder go2(_validPerm4.begin(),_validPerm4.end());
+ ComponentTree t2(findComponents(go2));
+ t2.makeUnoriented();
+ n = t2._root;
+
+ CPPUNIT_ASSERT_EQUAL((size_t)4u,count(n));
+ CPPUNIT_ASSERT_EQUAL((size_t)6u,count(n,true));
+ CPPUNIT_ASSERT_EQUAL((size_t)2u,n->_children.size());
+ Component go22(4,7,1,4,7);
+ Component go23(-15,-12,-1,8,11);
+ Component go24(-12,-9,-1,11,14);
+ Component go25(7,16,0,7,16);
+ CPPUNIT_ASSERT(n->_children[0]->_comp == go22);
+ CPPUNIT_ASSERT(n->_children[1]->_comp == go25);
+ CPPUNIT_ASSERT(n->_children[1]->_children[0]->_children[0]->_comp == go23);
+ CPPUNIT_ASSERT(n->_children[1]->_children[0]->_children[1]->_comp == go24);
+ }
+
+ void testCountLeaves (){
+ GeneOrder go(_validPerm.begin(),_validPerm.end());
+ ComponentTree t(findComponents(go));
+ t.makeUnoriented();
+
+ CPPUNIT_ASSERT_EQUAL((size_t)0u,t.countLeaves());
+
+ GeneOrder go2(_validPerm4.begin(),_validPerm4.end());
+ ComponentTree t2(findComponents(go2));
+ t2.makeUnoriented();
+ ComponentTree::Node* n = t2._root;
+ CPPUNIT_ASSERT_EQUAL((size_t)2u,n->_children.size());
+ CPPUNIT_ASSERT_EQUAL(false,n->_children.empty());
+ CPPUNIT_ASSERT_EQUAL((size_t)3u,t2.countLeaves());
+ }
+ void testShortBranches (){
+ GeneOrder go(_validPerm.begin(),_validPerm.end());
+ ComponentTree t(findComponents(go));
+ t.makeUnoriented();
+
+ CPPUNIT_ASSERT_EQUAL((size_t)0u,t.shortBranches());
+
+ GeneOrder go2(_validPerm4.begin(),_validPerm4.end());
+ ComponentTree t2(findComponents(go2));
+ t2.makeUnoriented();
+ ComponentTree::Node* n = t2._root;
+ //CPPUNIT_ASSERT_EQUAL((size_t)1u,t2.shortBranches());
+ }
+