15 using namespace gtsam;
28 std::vector<size_t>
keys{0, 1, 2, 3, 4};
31 std::optional<MetisResult> actual = separatorPartitionByMetis<GenericGraph2D>(
graph,
keys,
34 CHECK(actual.has_value());
35 vector<size_t> A_expected{0, 3};
36 vector<size_t> B_expected{2, 4};
37 vector<size_t> C_expected{1};
38 CHECK(A_expected == actual->A);
39 CHECK(B_expected == actual->B);
40 CHECK(C_expected == actual->C);
46 TEST ( Partition, separatorPartitionByMetis2 )
53 std::vector<size_t>
keys{1, 2, 3, 5, 6};
56 std::optional<MetisResult> actual = separatorPartitionByMetis<GenericGraph2D>(
graph,
keys,
59 CHECK(actual.has_value());
60 vector<size_t> A_expected{1, 5};
61 vector<size_t> B_expected{3, 6};
62 vector<size_t> C_expected{2};
63 CHECK(A_expected == actual->A);
64 CHECK(B_expected == actual->B);
65 CHECK(C_expected == actual->C);
76 std::vector<size_t>
keys{0, 1, 2, 3};
79 std::optional<MetisResult> actual = edgePartitionByMetis<GenericGraph3D>(
graph,
keys,
82 CHECK(actual.has_value());
83 vector<size_t> A_expected{0, 1};
84 vector<size_t> B_expected{2, 3};
85 vector<size_t> C_expected;
93 CHECK(A_expected == actual->A || A_expected == actual->B);
94 CHECK(B_expected == actual->B || B_expected == actual->A);
95 CHECK(C_expected == actual->C);
100 TEST ( Partition, edgePartitionByMetis2 )
108 #if !defined(__QNX__)
109 std::vector<size_t>
keys{0, 1, 2, 3, 4};
112 std::vector<size_t>
keys{2, 0, 3, 1, 4};
116 std::optional<MetisResult> actual = edgePartitionByMetis<GenericGraph3D>(
graph,
keys,
118 CHECK(actual.has_value());
119 vector<size_t> A_expected{0, 1};
120 vector<size_t> B_expected{2, 3, 4};
121 vector<size_t> C_expected;
122 CHECK(A_expected == actual->A);
123 CHECK(B_expected == actual->B);
124 CHECK(C_expected == actual->C);
137 std::vector<size_t>
keys{0, 1, 2, 3, 4};
140 int minNodesPerMap = -1;
141 bool reduceGraph =
false;
142 int numSubmaps = findSeparator<GenericGraph2D>(
graph,
keys, minNodesPerMap, workspace,
143 false, {}, reduceGraph, 0, 0);
156 TEST ( Partition, findSeparator2 )
163 std::vector<size_t>
keys{1, 2, 3, 5, 6};
166 int minNodesPerMap = -1;
167 bool reduceGraph =
false;
168 int numSubmaps = findSeparator<GenericGraph2D>(
graph,
keys, minNodesPerMap, workspace,
169 false, {}, reduceGraph, 0, 0);
188 TEST ( Partition, findSeparator3_with_reduced_camera )
191 for (
int j=1;
j<=8;
j++)
193 for (
int j=1;
j<=16;
j++)
195 for (
int j=9;
j<=24;
j++)
197 for (
int j=17;
j<=24;
j++)
200 std::vector<size_t>
keys;
201 for(
int i=1;
i<=28;
i++)
204 vector<Symbol> int2symbol;
205 int2symbol.push_back(
Symbol(
'x',0));
206 for(
int i=1;
i<=24;
i++)
207 int2symbol.push_back(
Symbol(
'l',
i));
208 int2symbol.push_back(
Symbol(
'x',25));
209 int2symbol.push_back(
Symbol(
'x',26));
210 int2symbol.push_back(
Symbol(
'x',27));
211 int2symbol.push_back(
Symbol(
'x',28));
214 bool reduceGraph =
true;
219 for (
int j=1;
j<=8;
j++)
221 for (
int j=9;
j<=16;
j++)
223 for (
int j=17;
j<=24;
j++)