~ubuntu-branches/ubuntu/maverick/libtorrent-rasterbar/maverick

« back to all changes in this revision

Viewing changes to test/test_piece_picker.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Christophe Sauthier
  • Date: 2010-08-10 12:59:37 UTC
  • mfrom: (1.3.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20100810125937-jbcmmf17y8yo9hgz
Tags: 0.15.0-0ubuntu1
* New upstream version.
* debian/patches/100_fix_html_docs.patch: refreshed.
* debian/control: bump up standards-version to 3.9.1 (no changes).

Show diffs side-by-side

added added

removed removed

Lines of Context:
225
225
        int tmp3;
226
226
        tcp::endpoint endp;
227
227
        piece_picker::downloading_piece st;
228
 
        policy::peer peer_struct(endp, policy::peer::connectable, 0);
 
228
        policy::ipv4_peer peer_struct(endp, true, 0);
229
229
        std::vector<piece_block> picked;
230
230
        boost::shared_ptr<piece_picker> p;
231
231
        const std::vector<int> empty_vector;
380
380
        // there are 2 pieces with availability 2 and 5 with availability 3
381
381
        print_title("test distributed copies");
382
382
        p = setup_picker("1233333", "*      ", "", "");
383
 
        float dc = p->distributed_copies();
384
 
        TEST_CHECK(fabs(dc - (2.f + 5.f / 7.f)) < 0.01f);
 
383
        std::pair<int, int> dc = p->distributed_copies();
 
384
        TEST_CHECK(dc == std::make_pair(2, 5000 / 7));
385
385
 
386
386
// ========================================================
387
387
        
659
659
        p = setup_picker("1111111", "       ", "", "");
660
660
        p->mark_as_downloading(piece_block(2,2), &tmp1, piece_picker::slow);
661
661
        picked = pick_pieces(p, "*******", 7 * blocks_per_piece - 1, 0, &tmp2
662
 
                , piece_picker::fast, options, empty_vector);
 
662
                , piece_picker::fast, options | piece_picker::speed_affinity, empty_vector);
663
663
        TEST_CHECK(picked.size() == 7 * blocks_per_piece - 1);
664
664
        TEST_CHECK(std::find(picked.begin(), picked.end(), piece_block(2,2)) == picked.end());
665
665
        // piece 2 sould be the last one (least matching piece to pick)
673
673
        p->mark_as_downloading(piece_block(2,2), &tmp1, piece_picker::medium);
674
674
        p->mark_as_downloading(piece_block(4,2), &tmp1, piece_picker::fast);
675
675
        picked = pick_pieces(p, "*******", 2 * blocks_per_piece, 0, 0
676
 
                , piece_picker::fast, piece_picker::prioritize_partials, empty_vector);
 
676
                , piece_picker::fast, piece_picker::prioritize_partials | piece_picker::speed_affinity
 
677
                , empty_vector);
677
678
        TEST_CHECK(picked.size() == 2 * blocks_per_piece);
678
679
        TEST_CHECK(picked[0].piece_index == 4);
679
680
        TEST_CHECK(picked[blocks_per_piece - 1].piece_index == 2);
747
748
        print_title("test have_all and have_none");
748
749
        p = setup_picker("0123333", "*      ", "", "");
749
750
        dc = p->distributed_copies();
750
 
        std::cout << "distributed copies: " << dc << std::endl;
751
 
        TEST_CHECK(fabs(dc - (1.f + 5.f / 7.f)) < 0.01f);
 
751
        std::cout << "distributed copies: " << dc.first << "." << (dc.second / 1000.f) << std::endl;
 
752
        TEST_CHECK(dc == std::make_pair(1, 5000 / 7));
752
753
        p->inc_refcount_all();
753
754
        dc = p->distributed_copies();
754
 
        std::cout << "distributed copies: " << dc << std::endl;
755
 
        TEST_CHECK(fabs(dc - (2.f + 5.f / 7.f)) < 0.01f);
 
755
        TEST_CHECK(dc == std::make_pair(2, 5000 / 7));
756
756
        p->dec_refcount_all();
757
757
        dc = p->distributed_copies();
758
 
        std::cout << "distributed copies: " << dc << std::endl;
759
 
        TEST_CHECK(fabs(dc - (1.f + 5.f / 7.f)) < 0.01f);
 
758
        std::cout << "distributed copies: " << dc.first << "." << (dc.second / 1000.f) << std::endl;
 
759
        TEST_CHECK(dc == std::make_pair(1, 5000 / 7));
760
760
        p->inc_refcount(0);
761
761
        p->dec_refcount_all();
762
762
        dc = p->distributed_copies();
763
 
        std::cout << "distributed copies: " << dc << std::endl;
764
 
        TEST_CHECK(fabs(dc - (0.f + 6.f / 7.f)) < 0.01f);
 
763
        std::cout << "distributed copies: " << dc.first << "." << (dc.second / 1000.f) << std::endl;
 
764
        TEST_CHECK(dc == std::make_pair(0, 6000 / 7));
765
765
        TEST_CHECK(test_pick(p) == 2);
766
766
 
767
767
// ========================================================
770
770
        print_title("test have_all and have_none with sequential download");
771
771
        p = setup_picker("0123333", "*      ", "", "");
772
772
        dc = p->distributed_copies();
773
 
        std::cout << "distributed copies: " << dc << std::endl;
774
 
        TEST_CHECK(fabs(dc - (1.f + 5.f / 7.f)) < 0.01f);
 
773
        std::cout << "distributed copies: " << dc.first << "." << (dc.second / 1000.f) << std::endl;
 
774
        TEST_CHECK(dc == std::make_pair(1, 5000 / 7));
775
775
        p->inc_refcount_all();
776
776
        dc = p->distributed_copies();
777
 
        std::cout << "distributed copies: " << dc << std::endl;
778
 
        TEST_CHECK(fabs(dc - (2.f + 5.f / 7.f)) < 0.01f);
 
777
        std::cout << "distributed copies: " << dc.first << "." << (dc.second / 1000.f) << std::endl;
 
778
        TEST_CHECK(dc == std::make_pair(2, 5000 / 7));
779
779
        TEST_CHECK(test_pick(p) == 1);
780
780
 
781
781
// ========================================================