X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=src%2Ftest%2Fcomponenttreetest.cpp;h=3bde9b196eb94ebaee11cd650b14eb6d71e70ec3;hb=b0334271ff31ca880f1d481665284a6d3b057162;hp=3e0b5051a57c62f15ddb7552f2cfb4dbd80a473e;hpb=dcd966c5fca7dca53ca1f605f70f13f019d29771;p=germs.git diff --git a/src/test/componenttreetest.cpp b/src/test/componenttreetest.cpp index 3e0b505..3bde9b1 100644 --- a/src/test/componenttreetest.cpp +++ b/src/test/componenttreetest.cpp @@ -23,6 +23,7 @@ class TESTNAME : public CPPUNIT_NS::TestFixture { CPPUNIT_TEST_SUITE( TESTNAME ); CPPUNIT_TEST( testCreate ); + CPPUNIT_TEST( testMakeUnoriented ); CPPUNIT_TEST_SUITE_END(); protected: @@ -91,9 +92,40 @@ protected: CPPUNIT_ASSERT(n->_children[0]->_comp == go21); CPPUNIT_ASSERT(n->_children[1]->_comp == go22); CPPUNIT_ASSERT(n->_children[2]->_comp == go25); + CPPUNIT_ASSERT(n->_children[0]->_children[0]->_children[0]->_comp == go20); + CPPUNIT_ASSERT(n->_children[2]->_children[0]->_children[0]->_comp == go23); + CPPUNIT_ASSERT(n->_children[2]->_children[0]->_children[1]->_comp == go24); } + 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); + } + }; CPPUNIT_TEST_SUITE_REGISTRATION( TESTNAME );