Macaulay2 Engine
Loading...
Searching...
No Matches

◆ TEST() [1/9]

TEST ( Subsets ,
concatenateSubsets  )

Definition at line 147 of file SubsetTest.cpp.

148{
149 const int n = 7;
150 const int p = 3;
151 const int q = 2;
152 const int n_choose_p = 35;
153 Subsets C(n, std::max(p, q));
154
155 Subset a(p, 0);
156 Subset b(q, 0);
157 Subset c(p + q, 0);
158 Subset d(p + q, 0);
159
160 int sign;
161 if ((p % 2 == 1) && (q % 2 == 1))
162 sign = -1;
163 else
164 sign = 1;
165 for (size_t i = 0; i < n_choose_p; i++)
166 {
167 C.decode(i, a);
168 EXPECT_TRUE(C.isValid(a));
169 for (size_t j = 0; j < n_choose_p; j++)
170 {
171 C.decode(j, b);
172 EXPECT_TRUE(C.isValid(b));
173 int ret1 = Subsets::concatenateSubsets(a, b, c);
174 int ret2 = Subsets::concatenateSubsets(b, a, d);
175 if (ret1 == 0 || ret2 == 0)
176 {
177 EXPECT_EQ(ret1, ret2);
178 break;
179 }
180 EXPECT_EQ(ret1, sign * ret2);
181 EXPECT_TRUE(sameSubset(c, d));
182 }
183 }
184}
bool sameSubset(const Subset &a, const Subset &b)
static int concatenateSubsets(const Subset &s, const Subset &t, Subset &result)
Definition comb.cpp:163
Bijective integer encoding of q-subsets of {0, ..., n-1} via binomial(a_0, 1) + binomial(a_1,...
Definition comb.hpp:74
std::vector< size_t > Subset
Definition comb.hpp:58
int p

References Subsets::concatenateSubsets(), Subsets::decode(), Subsets::isValid(), p, and sameSubset().