| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | 
							- #include "PriorityPieceSelector.h"
 
- #include <cppunit/extensions/HelperMacros.h>
 
- #include "array_fun.h"
 
- #include "BitfieldMan.h"
 
- #include "MockPieceSelector.h"
 
- #include "a2functional.h"
 
- namespace aria2 {
 
- class PriorityPieceSelectorTest:public CppUnit::TestFixture {
 
-   CPPUNIT_TEST_SUITE(PriorityPieceSelectorTest);
 
-   CPPUNIT_TEST(testSelect);
 
-   CPPUNIT_TEST_SUITE_END();
 
- public:
 
-   void testSelect();
 
- };
 
- CPPUNIT_TEST_SUITE_REGISTRATION(PriorityPieceSelectorTest);
 
- void PriorityPieceSelectorTest::testSelect()
 
- {
 
-   constexpr size_t pieceLength = 1_k;
 
-   size_t A[] = { 1,200};
 
-   BitfieldMan bf(pieceLength, pieceLength*256);
 
-   for(auto i : A) {
 
-     bf.setBit(i);
 
-   }
 
-   PriorityPieceSelector selector
 
-     (std::shared_ptr<PieceSelector>(new MockPieceSelector()));
 
-   selector.setPriorityPiece(std::begin(A), std::end(A));
 
-   size_t index;
 
-   CPPUNIT_ASSERT(selector.select(index, bf.getBitfield(), bf.countBlock()));
 
-   CPPUNIT_ASSERT_EQUAL((size_t)1, index);
 
-   bf.unsetBit(1);
 
-   CPPUNIT_ASSERT(selector.select(index, bf.getBitfield(), bf.countBlock()));
 
-   CPPUNIT_ASSERT_EQUAL((size_t)200, index);
 
-   bf.unsetBit(200);
 
-   CPPUNIT_ASSERT(!selector.select(index, bf.getBitfield(), bf.countBlock()));
 
- }
 
- } // namespace aria2
 
 
  |