123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #include "SegList.h"
- #include <cppunit/extensions/HelperMacros.h>
- namespace aria2 {
- class SegListTest:public CppUnit::TestFixture {
- CPPUNIT_TEST_SUITE(SegListTest);
- CPPUNIT_TEST(testNext);
- CPPUNIT_TEST(testPeek);
- CPPUNIT_TEST(testClear);
- CPPUNIT_TEST(testNormalize);
- CPPUNIT_TEST_SUITE_END();
- public:
- void testNext();
- void testPeek();
- void testClear();
- void testNormalize();
- };
- CPPUNIT_TEST_SUITE_REGISTRATION(SegListTest);
- void SegListTest::testNext()
- {
- SegList<int> sgl;
- sgl.add(-500, -498);
- sgl.add(5, 10);
- sgl.add(1, 5);
- for(int i = -500; i < -498; ++i) {
- CPPUNIT_ASSERT(sgl.hasNext());
- CPPUNIT_ASSERT_EQUAL(i, sgl.next());
- }
- for(int i = 5; i < 10; ++i) {
- CPPUNIT_ASSERT(sgl.hasNext());
- CPPUNIT_ASSERT_EQUAL(i, sgl.next());
- }
- for(int i = 1; i < 5; ++i) {
- CPPUNIT_ASSERT(sgl.hasNext());
- CPPUNIT_ASSERT_EQUAL(i, sgl.next());
- }
- CPPUNIT_ASSERT(!sgl.hasNext());
- CPPUNIT_ASSERT_EQUAL(0, sgl.next());
- }
- void SegListTest::testPeek()
- {
- SegList<int> sgl;
- sgl.add(1, 3);
- sgl.add(4, 5);
- CPPUNIT_ASSERT_EQUAL(1, sgl.peek());
- CPPUNIT_ASSERT_EQUAL(1, sgl.peek());
- CPPUNIT_ASSERT_EQUAL(1, sgl.next());
- CPPUNIT_ASSERT_EQUAL(2, sgl.peek());
- CPPUNIT_ASSERT_EQUAL(2, sgl.next());
- CPPUNIT_ASSERT_EQUAL(4, sgl.peek());
- CPPUNIT_ASSERT_EQUAL(4, sgl.next());
- CPPUNIT_ASSERT(!sgl.hasNext());
- }
- void SegListTest::testClear()
- {
- SegList<int> sgl;
- sgl.add(1, 3);
- CPPUNIT_ASSERT_EQUAL(1, sgl.next());
- sgl.clear();
- CPPUNIT_ASSERT(!sgl.hasNext());
- sgl.add(2, 3);
- CPPUNIT_ASSERT_EQUAL(2, sgl.next());
- }
- void SegListTest::testNormalize()
- {
- SegList<int> sgl;
- sgl.add(10, 15);
- sgl.add(0, 1);
- sgl.add(1, 5);
- sgl.add(14, 16);
- sgl.add(2, 4);
- sgl.add(20, 21);
- sgl.normalize();
- for(int i = 0; i < 5; ++i) {
- CPPUNIT_ASSERT(sgl.hasNext());
- CPPUNIT_ASSERT_EQUAL(i, sgl.next());
- }
- for(int i = 10; i < 16; ++i) {
- CPPUNIT_ASSERT(sgl.hasNext());
- CPPUNIT_ASSERT_EQUAL(i, sgl.next());
- }
- CPPUNIT_ASSERT(sgl.hasNext());
- CPPUNIT_ASSERT_EQUAL(20, sgl.next());
- CPPUNIT_ASSERT(!sgl.hasNext());
- }
- } // namespace aria2
|