added unit test for kademlia distance functions
This commit is contained in:
parent
7a2699823f
commit
7f06272454
|
@ -6,6 +6,7 @@
|
|||
#include "libtorrent/entry.hpp"
|
||||
#include "libtorrent/torrent_info.hpp"
|
||||
#include "libtorrent/escape_string.hpp"
|
||||
#include "libtorrent/kademlia/node_id.hpp"
|
||||
|
||||
#include <boost/tuple/tuple.hpp>
|
||||
#include <boost/tuple/tuple_comparison.hpp>
|
||||
|
@ -286,7 +287,34 @@ int test_main()
|
|||
|
||||
TEST_CHECK(ti.name() == "test1");
|
||||
|
||||
|
||||
// test kademlia functions
|
||||
|
||||
using namespace libtorrent::dht;
|
||||
|
||||
for (int i = 0; i < 160; i += 4)
|
||||
{
|
||||
for (int j = 0; j < 160; j += 4)
|
||||
{
|
||||
node_id a(0);
|
||||
a[(159-i) / 8] = 1 << (i & 7);
|
||||
node_id b(0);
|
||||
b[(159-j) / 8] = 1 << (j & 7);
|
||||
int dist = distance_exp(a, b);
|
||||
|
||||
TEST_CHECK(dist >= 0 && dist < 160);
|
||||
TEST_CHECK(dist == ((i == j)?0:std::max(i, j)));
|
||||
|
||||
for (int k = 0; k < 160; k += 4)
|
||||
{
|
||||
node_id c(0);
|
||||
c[(159-k) / 8] = 1 << (k & 7);
|
||||
|
||||
bool cmp = compare_ref(a, b, c);
|
||||
TEST_CHECK(cmp == (distance(a, c) < distance(b, c)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue