linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #06050
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 3053: bloom filter tests
------------------------------------------------------------
revno: 3053
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Sat 2012-09-15 16:25:58 +0200
message:
bloom filter tests
added:
test/testbloom.cpp
modified:
changelog.txt
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'changelog.txt'
--- changelog.txt 2012-09-13 21:15:43 +0000
+++ changelog.txt 2012-09-15 14:25:58 +0000
@@ -1,4 +1,4 @@
-* Revamp favorite hub settings (poy)
+* [L#270107] Revamp favorite hub settings (poy)
* Reduce resource consumption when slots are full (poy)
* [L#984330] Make PM windows more aware of the selected hub (poy)
* [L#927821] Don't choke on hub addresses with spaces (poy)
=== added file 'test/testbloom.cpp'
--- test/testbloom.cpp 1970-01-01 00:00:00 +0000
+++ test/testbloom.cpp 2012-09-15 14:25:58 +0000
@@ -0,0 +1,127 @@
+#include <dcpp/stdinc.h>
+#include <dcpp/DCPlusPlus.h>
+
+#include <dcpp/HashBloom.h>
+#include <dcpp/HashValue.h>
+#include <dcpp/TigerHash.h>
+
+#include "gtest.h"
+
+using namespace dcpp;
+
+struct Hasher {
+ static const size_t BITS = 1024;
+ static const size_t BYTES = BITS / 8;
+};
+
+TEST(testbloom, test_0)
+{
+ HashBloom bloom;
+ ByteVector v;
+ bloom.reset(8, 1024, 24);
+ bloom.add(TTHValue("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
+ bloom.copy_to(v);
+ ASSERT_EQ("AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ HashValue<Hasher>(&v[0]).toBase32());
+}
+
+TEST(testbloom, test_1)
+{
+ HashBloom bloom;
+ ByteVector v;
+ bloom.reset(8, 1024, 24);
+ bloom.add(TTHValue("BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
+ bloom.copy_to(v);
+ ASSERT_EQ("AEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ HashValue<Hasher>(&v[0]).toBase32());
+}
+
+TEST(testbloom, test_2)
+{
+ HashBloom bloom;
+ ByteVector v;
+ bloom.reset(8, 1024, 24);
+ bloom.add(TTHValue("QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
+ bloom.copy_to(v);
+ ASSERT_EQ("AEAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ HashValue<Hasher>(&v[0]).toBase32());
+}
+
+TEST(testbloom, test_3)
+{
+ HashBloom bloom;
+ ByteVector v;
+ bloom.reset(8, 1024, 24);
+ bloom.add(TTHValue("BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
+ bloom.add(TTHValue("QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
+ bloom.copy_to(v);
+ ASSERT_EQ("AEAQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ HashValue<Hasher>(&v[0]).toBase32());
+}
+
+TEST(testbloom, test_4)
+{
+ HashBloom bloom;
+ ByteVector v;
+ bloom.reset(8, 1024, 24);
+ bloom.add(TTHValue("UDRJ6EGCH3CGWIIU2V6CH7VLFN4N2PCZKSPTBQA"));
+ bloom.copy_to(v);
+ ASSERT_EQ("AAAAAAAABAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQACAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAA",
+ HashValue<Hasher>(&v[0]).toBase32());
+}
+
+TEST(testbloom, test_5)
+{
+ HashBloom bloom;
+ ByteVector v;
+ bloom.reset(2, 1024, 64);
+ bloom.add(TTHValue("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
+ bloom.copy_to(v);
+ ASSERT_EQ("AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ HashValue<Hasher>(&v[0]).toBase32());
+}
+
+TEST(testbloom, test_6)
+{
+ HashBloom bloom;
+ ByteVector v;
+ bloom.reset(2, 1024, 64);
+ bloom.add(TTHValue("BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
+ bloom.copy_to(v);
+ ASSERT_EQ("AEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ HashValue<Hasher>(&v[0]).toBase32());
+}
+
+TEST(testbloom, test_7)
+{
+ HashBloom bloom;
+ ByteVector v;
+ bloom.reset(2, 1024, 64);
+ bloom.add(TTHValue("QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
+ bloom.copy_to(v);
+ ASSERT_EQ("AEAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ HashValue<Hasher>(&v[0]).toBase32());
+}
+
+TEST(testbloom, test_8)
+{
+ HashBloom bloom;
+ ByteVector v;
+ bloom.reset(2, 1024, 64);
+ bloom.add(TTHValue("BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
+ bloom.add(TTHValue("QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
+ bloom.copy_to(v);
+ ASSERT_EQ("AEAQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ HashValue<Hasher>(&v[0]).toBase32());
+}
+
+TEST(testbloom, test_9)
+{
+ HashBloom bloom;
+ ByteVector v;
+ bloom.reset(2, 1024, 64);
+ bloom.add(TTHValue("UDRJ6EGCH3CGWIIU2V6CH7VLFN4N2PCZKSPTBQA"));
+ bloom.copy_to(v);
+ ASSERT_EQ("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ HashValue<Hasher>(&v[0]).toBase32());
+}