X-Git-Url: https://ruin.nu/git/?p=germs.git;a=blobdiff_plain;f=src%2Ftest%2Fgeneordertest.cpp;h=bfa2dbdd4dc82bb7fee3ba67ebe02130a677bdc8;hp=3ae18abb39894df004acb0f8a8e870da22b71428;hb=959f25585c048a9cda1653ef4c5ea2c1a7007b67;hpb=d0aaa94cd823b8eea279ea4ec2ca99cc7a15b17b diff --git a/src/test/geneordertest.cpp b/src/test/geneordertest.cpp index 3ae18ab..bfa2dbd 100644 --- a/src/test/geneordertest.cpp +++ b/src/test/geneordertest.cpp @@ -20,6 +20,8 @@ class TESTNAME : public CPPUNIT_NS::TestFixture CPPUNIT_TEST_SUITE( TESTNAME ); CPPUNIT_TEST( testCreate ); CPPUNIT_TEST( testCopyCreate ); + CPPUNIT_TEST( testAssign ); + CPPUNIT_TEST( testReverse ); CPPUNIT_TEST_SUITE_END(); protected: @@ -57,10 +59,37 @@ protected: void testCopyCreate (){ GeneOrder go(_bigvalidPerm.begin(),_bigvalidPerm.end()); GeneOrder go2(go); - CPPUNIT_ASSERT(equal(go.list().begin(),go.list().end(),go2.list().begin())); + CPPUNIT_ASSERT(equal(go.begin(),go.end(),go2.begin())); GeneOrder go3(_validPerm.begin(),_validPerm.end()); - CPPUNIT_ASSERT(!equal(go3.list().begin(),go3.list().end(),go2.list().begin())); + CPPUNIT_ASSERT(!equal(go3.begin(),go3.end(),go2.begin())); } + void testAssign (){ + GeneOrder go(_bigvalidPerm.begin(),_bigvalidPerm.end()); + GeneOrder go2(_validPerm.begin(),_validPerm.end()); + go2 = go; + CPPUNIT_ASSERT(equal(go.begin(),go.end(),go2.begin())); + GeneOrder go3(_validPerm.begin(),_validPerm.end()); + CPPUNIT_ASSERT(!equal(go3.begin(),go3.end(),go2.begin())); + } + void testReverse(){ + int validPerm[] = {1,2,3,4,5,6,7}; + GeneOrder go(validPerm,validPerm+7); + int validPerm2[] = {1,-6,-5,-4,-3,-2,7}; + GeneOrder go2(validPerm2,validPerm2+7); + go2.reverse(2,6); + CPPUNIT_ASSERT(equal(go.begin(),go.end(),go2.begin())); + + int validPerm3[] = {1,6,-5,-4,-3,2,7}; + GeneOrder go3(validPerm3,validPerm3+7); + + go3.reverse(2,6); + CPPUNIT_ASSERT(!equal(go.begin(),go.end(),go3.begin())); + + CPPUNIT_ASSERT_THROW(go.reverse(2,1),out_of_range); + CPPUNIT_ASSERT_THROW(go.reverse(1,9),out_of_range); + CPPUNIT_ASSERT_THROW(go.reverse(-1,3),out_of_range); + } + }; CPPUNIT_TEST_SUITE_REGISTRATION( TESTNAME );