Blender  V3.3
BLI_disjoint_set_test.cc
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0 */
2 
3 #include "BLI_disjoint_set.hh"
4 #include "BLI_strict_flags.h"
5 
6 #include "testing/testing.h"
7 
8 namespace blender::tests {
9 
10 TEST(disjoint_set, Test)
11 {
12  DisjointSet disjoint_set(6);
13  EXPECT_FALSE(disjoint_set.in_same_set(1, 2));
14  EXPECT_FALSE(disjoint_set.in_same_set(5, 3));
15  EXPECT_TRUE(disjoint_set.in_same_set(2, 2));
16  EXPECT_EQ(disjoint_set.find_root(3), 3);
17 
18  disjoint_set.join(1, 2);
19 
20  EXPECT_TRUE(disjoint_set.in_same_set(1, 2));
21  EXPECT_FALSE(disjoint_set.in_same_set(0, 1));
22 
23  disjoint_set.join(3, 4);
24 
25  EXPECT_FALSE(disjoint_set.in_same_set(2, 3));
26  EXPECT_TRUE(disjoint_set.in_same_set(3, 4));
27 
28  disjoint_set.join(1, 4);
29 
30  EXPECT_TRUE(disjoint_set.in_same_set(1, 4));
31  EXPECT_TRUE(disjoint_set.in_same_set(1, 3));
32  EXPECT_TRUE(disjoint_set.in_same_set(2, 4));
33  EXPECT_FALSE(disjoint_set.in_same_set(0, 4));
34 }
35 
36 } // namespace blender::tests
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
Strict compiler flags for areas of code we want to ensure don't do conversions without us knowing abo...
int64_t find_root(int64_t x)
void join(int64_t x, int64_t y)
bool in_same_set(int64_t x, int64_t y)
TEST(any, DefaultConstructor)
Definition: BLI_any_test.cc:10