X-Git-Url: https://ruin.nu/git/?p=germs.git;a=blobdiff_plain;f=src%2Ftest%2Fgeneordertest.cpp;h=bfa2dbdd4dc82bb7fee3ba67ebe02130a677bdc8;hp=0d37456450a0521d1195a37a3f932fe220754150;hb=959f25585c048a9cda1653ef4c5ea2c1a7007b67;hpb=c61e2ad3a56b4f58b6c4864600b4cd1397c8b079 diff --git a/src/test/geneordertest.cpp b/src/test/geneordertest.cpp index 0d37456..bfa2dbd 100644 --- a/src/test/geneordertest.cpp +++ b/src/test/geneordertest.cpp @@ -21,6 +21,7 @@ class TESTNAME : public CPPUNIT_NS::TestFixture CPPUNIT_TEST( testCreate ); CPPUNIT_TEST( testCopyCreate ); CPPUNIT_TEST( testAssign ); + CPPUNIT_TEST( testReverse ); CPPUNIT_TEST_SUITE_END(); protected: @@ -58,18 +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.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 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 );