6 #include <gtest/gtest.h>
14 for (
auto & member : set)
15 std::cout << member <<
" ";
22 for (
auto & set : djset)
28 TEST(DisjointSetTests, test)
34 assert(djset.nvalues() == 5 && djset.nsets() == 5);
36 auto s1 = djset.find_or_insert(6);
37 auto s2 = djset.find(6);
40 EXPECT_EQ(djset.nvalues(), 6u);
41 EXPECT_EQ(djset.nsets(), 6u);
43 auto root = djset.merge(1, 2);
45 EXPECT_TRUE(root->is_root());
46 EXPECT_EQ(root->nmembers(), 2u);
47 EXPECT_EQ(djset.nvalues(), 6u);
48 EXPECT_EQ(djset.nsets(), 5u);
50 root = djset.merge(6, 5);
52 EXPECT_TRUE(root->is_root());
53 EXPECT_EQ(root->nmembers(), 2u);
54 EXPECT_EQ(djset.nvalues(), 6u);
55 EXPECT_EQ(djset.nsets(), 4u);
57 root = djset.merge(1, 6);
59 EXPECT_TRUE(root->is_root());
60 EXPECT_EQ(root->nmembers(), 4u);
61 EXPECT_EQ(djset.nvalues(), 6u);
62 EXPECT_EQ(djset.nsets(), 3u);
63 EXPECT_EQ(djset.find(2), djset.find(5));
67 EXPECT_EQ(djset.nvalues(), 0u);
68 EXPECT_EQ(djset.nsets(), 0u);
static void print(const jlm::util::DisjointSet< int >::Set &set)
TEST(DisjointSetTests, test)