RarestPieceSelectorTest.cc 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "RarestPieceSelector.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. #include "BitfieldMan.h"
  4. #include "PieceStatMan.h"
  5. namespace aria2 {
  6. class RarestPieceSelectorTest:public CppUnit::TestFixture {
  7. CPPUNIT_TEST_SUITE(RarestPieceSelectorTest);
  8. CPPUNIT_TEST(testSelect);
  9. CPPUNIT_TEST_SUITE_END();
  10. public:
  11. void setUp() {}
  12. void tearDown() {}
  13. void testAddPieceStats_index();
  14. void testAddPieceStats_bitfield();
  15. void testUpdatePieceStats();
  16. void testSubtractPieceStats();
  17. void testSelect();
  18. };
  19. CPPUNIT_TEST_SUITE_REGISTRATION(RarestPieceSelectorTest);
  20. void RarestPieceSelectorTest::testSelect()
  21. {
  22. SharedHandle<PieceStatMan> pieceStatMan(new PieceStatMan(10, false));
  23. RarestPieceSelector selector(pieceStatMan);
  24. BitfieldMan bf(1024, 10*1024);
  25. bf.setBitRange(0, 2);
  26. size_t index;
  27. pieceStatMan->addPieceStats(0);
  28. CPPUNIT_ASSERT(selector.select(index, bf.getBitfield(),
  29. bf.countBlock()));
  30. CPPUNIT_ASSERT_EQUAL((size_t)1, index);
  31. pieceStatMan->addPieceStats(1);
  32. CPPUNIT_ASSERT(selector.select(index, bf.getBitfield(),
  33. bf.countBlock()));
  34. CPPUNIT_ASSERT_EQUAL((size_t)2, index);
  35. }
  36. } // namespace aria2