MCPcopy Create free account
hub / github.com/LeFroid/Viper-Browser / testStringsShouldMatch_data

Method testStringsShouldMatch_data

tests/core/utility/FastHashTest.cpp:61–96  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

59}
60
61void FastHashTest::testStringsShouldMatch_data()
62{
63 QTest::addColumn<QString>("needle");
64 QTest::addColumn<QString>("haystack");
65
66 QTest::newRow("tag manager") << "tagmanager.com/tag.js" << "target.ad.tagmanager.com/tag.js";
67 QTest::newRow("cdn") << "somecdn.com/img" << "https://subdomain.somecdn.com/img/a/123/4/xyz.jpg";
68 QTest::newRow("quick brown fox") << "fox jumped" << "The quick brown fox jumped over the lazy dog";
69
70 // Make 10 random strings - only generating 10 as the fast hash is benchmarked, and each row of data
71 // is ran tens to hundreds of thousands of times to test correctness and performance
72 const int numRandomStrings = 10;
73 const auto charSet = charset();
74 std::default_random_engine rng(std::random_device{}());
75 std::uniform_int_distribution<> dist(0, charSet.size() - 1);
76 auto randchar = [charSet, &dist,&rng](){
77 return charSet[dist(rng)];
78 };
79
80 std::uniform_int_distribution<size_t> randStringLen(80, 200);
81 std::uniform_int_distribution<size_t> randNeedleLen(5, 70);
82 for (int i = 0; i < numRandomStrings; ++i)
83 {
84 size_t stringLen = randStringLen(rng);
85 size_t needleLen = randNeedleLen(rng);
86
87 auto randomString = random_string(stringLen, randchar);
88
89 std::uniform_int_distribution<size_t> randNeedleOffset(0, randomString.size() - needleLen);
90 size_t needleOffset = randNeedleOffset(rng);
91 auto randomNeedle = randomString.substr(needleOffset, needleLen);
92
93 QString testName = QString("Random string %1").arg(i);
94 QTest::newRow(testName.toStdString().c_str()) << randomNeedle.c_str() << randomString.c_str();
95 }
96}
97
98void FastHashTest::testStringsShouldMatch()
99{

Callers

nothing calls this directly

Calls 2

charsetFunction · 0.85
random_stringFunction · 0.85

Tested by

no test coverage detected