From 04ca8f7bd16c0c855f604188d617a1bf2e8eacfd Mon Sep 17 00:00:00 2001 From: Gloria Mundi Date: Thu, 13 Feb 2025 22:07:35 +0100 Subject: rename Dinic to Dinitz --- test/graph/dinicScaling.cpp | 61 -------------------------------------------- test/graph/dinitzScaling.cpp | 61 ++++++++++++++++++++++++++++++++++++++++++++ test/graph/pushRelabel.cpp | 12 ++++----- 3 files changed, 67 insertions(+), 67 deletions(-) delete mode 100644 test/graph/dinicScaling.cpp create mode 100644 test/graph/dinitzScaling.cpp (limited to 'test') diff --git a/test/graph/dinicScaling.cpp b/test/graph/dinicScaling.cpp deleted file mode 100644 index 967d6b1..0000000 --- a/test/graph/dinicScaling.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "../util.h" -namespace dinic { -#include -} - -namespace pushRelabel { -#include -} - -void stress_test() { - ll queries = 0; - for (int tries = 0; tries < 20'000; tries++) { - int n = Random::integer(2, 30); - int m = Random::integer(n-1, max(n, min(500, n*(n-1) / 2 + 1))); - - dinic::adj.assign(n, {}); - pushRelabel::adj.assign(n, {}); - - Graph g(n); - g.erdosRenyi(m); - g.forEdges([](int a, int b){ - ll w = Random::integer(1, 1'000'000'000'000ll); - dinic::addEdge(a, b, w); - pushRelabel::addEdge(a, b, w); - }); - - ll got = dinic::maxFlow(0, n - 1); - ll expected = pushRelabel::maxFlow(0, n - 1); - - if (got != expected) cerr << "got: " << got << ", expected: " << expected << FAIL; - queries += n; - } - cerr << "tested random queries: " << queries << endl; -} - -constexpr int N = 50000; -constexpr int M = 200000; -void performance_test() { - using namespace dinic; - timer t; - Graph g(N); - g.erdosRenyi(M); - adj.assign(N, {}); - g.forEdges([](int a, int b){ - ll w1 = Random::integer(1, 1'000'000'000'000ll); - ll w2 = Random::integer(1, 1'000'000'000'000ll); - addEdge(a, b, w1); - addEdge(b, a, w2); - }); - - t.start(); - hash_t hash = maxFlow(0, N - 1); - t.stop(); - if (t.time > 2000) cerr << "too slow: " << t.time << FAIL; - cerr << "tested performance: " << t.time << "ms (hash: " << hash << ")" << endl; -} - -int main() { - stress_test(); - performance_test(); -} diff --git a/test/graph/dinitzScaling.cpp b/test/graph/dinitzScaling.cpp new file mode 100644 index 0000000..c06d486 --- /dev/null +++ b/test/graph/dinitzScaling.cpp @@ -0,0 +1,61 @@ +#include "../util.h" +namespace dinitz { +#include +} + +namespace pushRelabel { +#include +} + +void stress_test() { + ll queries = 0; + for (int tries = 0; tries < 20'000; tries++) { + int n = Random::integer(2, 30); + int m = Random::integer(n-1, max(n, min(500, n*(n-1) / 2 + 1))); + + dinitz::adj.assign(n, {}); + pushRelabel::adj.assign(n, {}); + + Graph g(n); + g.erdosRenyi(m); + g.forEdges([](int a, int b){ + ll w = Random::integer(1, 1'000'000'000'000ll); + dinitz::addEdge(a, b, w); + pushRelabel::addEdge(a, b, w); + }); + + ll got = dinitz::maxFlow(0, n - 1); + ll expected = pushRelabel::maxFlow(0, n - 1); + + if (got != expected) cerr << "got: " << got << ", expected: " << expected << FAIL; + queries += n; + } + cerr << "tested random queries: " << queries << endl; +} + +constexpr int N = 50000; +constexpr int M = 200000; +void performance_test() { + using namespace dinitz; + timer t; + Graph g(N); + g.erdosRenyi(M); + adj.assign(N, {}); + g.forEdges([](int a, int b){ + ll w1 = Random::integer(1, 1'000'000'000'000ll); + ll w2 = Random::integer(1, 1'000'000'000'000ll); + addEdge(a, b, w1); + addEdge(b, a, w2); + }); + + t.start(); + hash_t hash = maxFlow(0, N - 1); + t.stop(); + if (t.time > 2000) cerr << "too slow: " << t.time << FAIL; + cerr << "tested performance: " << t.time << "ms (hash: " << hash << ")" << endl; +} + +int main() { + stress_test(); + performance_test(); +} diff --git a/test/graph/pushRelabel.cpp b/test/graph/pushRelabel.cpp index ac3b079..42c2e57 100644 --- a/test/graph/pushRelabel.cpp +++ b/test/graph/pushRelabel.cpp @@ -1,6 +1,6 @@ #include "../util.h" -namespace dinic { -#include +namespace dinitz { +#include } namespace pushRelabel { @@ -13,20 +13,20 @@ void stress_test() { int n = Random::integer(2, 30); int m = Random::integer(n-1, max(n, min(500, n*(n-1) / 2 + 1))); - dinic::adj.assign(n, {}); + dinitz::adj.assign(n, {}); pushRelabel::adj.assign(n, {}); Graph g(n); g.erdosRenyi(m); g.forEdges([](int a, int b){ ll w = Random::integer(1, 1'000'000'000'000ll); - dinic::addEdge(a, b, w); + dinitz::addEdge(a, b, w); pushRelabel::addEdge(a, b, w); }); ll got = pushRelabel::maxFlow(0, n - 1); - ll expected = dinic::maxFlow(0, n - 1); - + ll expected = dinitz::maxFlow(0, n - 1); + if (got != expected) cerr << "got: " << got << ", expected: " << expected << FAIL; queries += n; } -- cgit v1.2.3