27 vector<mpz_class> v(3);
48 #define MIN_INDEX_TEST(from, to, maxDegree, strict, expectFind, expectedIndex) \
50 Exponent foundIndex = 0; \
51 bool returnValue = grader.getMinIndexLessThan \
52 (0, from, to, foundIndex, maxDegree - strict); \
54 ASSERT_TRUE(returnValue); \
55 ASSERT_EQ(foundIndex, (Exponent)expectedIndex); \
57 ASSERT_FALSE(returnValue); \
145 #define MAX_INDEX_TEST(from, to, maxDegree, strict, expectFind, expectedIndex) \
147 Exponent foundIndex = 0; \
148 bool returnValue = grader.getMaxIndexLessThan \
149 (0, from, to, foundIndex, maxDegree - strict); \
151 ASSERT_TRUE(returnValue); \
152 ASSERT_EQ(foundIndex, (Exponent)expectedIndex); \
154 ASSERT_FALSE(returnValue); \
TEST(TermGrader, getUpperBound)
#define MIN_INDEX_TEST(from, to, maxDegree, strict, expectFind, expectedIndex)
#define MAX_INDEX_TEST(from, to, maxDegree, strict, expectFind, expectedIndex)
A TermGrader assigns a value, the degree, to each monomial.
void getUpperBound(const Term &divisor, const Term &dominator, mpz_class &bound) const
Assigns to bound the degree of the largest term v such that divisor divides v and v divides dominator...
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
Term represents a product of variables which does not include a coefficient.
#define TEST_SUITE(SUITE)