TEST_F(MatcherGTest, testPgaMatching) { count n = 50; Graph G(n); G.forNodePairs([&](node u, node v){ G.addEdge(u,v); }); PathGrowingMatcher pgaMatcher(G); DEBUG("Start PGA matching on 50-clique"); pgaMatcher.run(); Matching M = pgaMatcher.getMatching(); count numExpEdges = n / 2; bool isProper = M.isProper(G); EXPECT_TRUE(isProper); EXPECT_EQ(M.size(G), numExpEdges); DEBUG("Finished PGA matching on 50-clique"); #if !defined _WIN32 && !defined _WIN64 && !defined WIN32 && !defined WIN64 DibapGraphReader reader; Graph airfoil1 = reader.read("input/airfoil1.gi"); PathGrowingMatcher pga2(airfoil1); pga2.run(); M = pga2.getMatching(); isProper = M.isProper(airfoil1); EXPECT_TRUE(isProper); DEBUG("PGA on airfoil1 produces matching of size: " , M.size(G)); #endif }
TEST_F(MatcherGTest, testLocalMaxMatching) { count n = 50; Graph G(n); G.forNodePairs([&](node u, node v){ G.addEdge(u,v); }); LocalMaxMatcher localMaxMatcher(G); TRACE("Start localMax matching"); localMaxMatcher.run(); Matching M = localMaxMatcher.getMatching(); TRACE("Finished localMax matching"); count numExpEdges = n / 2; bool isProper = M.isProper(G); EXPECT_TRUE(isProper); EXPECT_EQ(M.size(G), numExpEdges); #if !defined _WIN32 && !defined _WIN64 && !defined WIN32 && !defined WIN64 DibapGraphReader reader; Graph airfoil1 = reader.read("input/airfoil1.gi"); LocalMaxMatcher lmm(airfoil1); lmm.run(); M = lmm.getMatching(); isProper = M.isProper(airfoil1); EXPECT_TRUE(isProper); DEBUG("LocalMax on airfoil1 produces matching of size: " , M.size(G)); #endif }
TEST_F(MatcherGTest, tryValidMatching) { METISGraphReader reader; Graph G = reader.read("coAuthorsDBLP.graph"); LocalMaxMatcher pmatcher(G); pmatcher.run(); Matching M = pmatcher.getMatching(); bool isProper = M.isProper(G); EXPECT_TRUE(isProper); }