39#include <gtest/gtest.h>
56 EXPECT_FALSE(
error());
57 EXPECT_TRUE(DR !=
nullptr);
61 std::cout <<
"ring is " << o.
str() << std::endl;
67 EXPECT_FALSE(
error());
68 EXPECT_TRUE(DR !=
nullptr);
72 std::cout <<
"ring is " << o.
str() << std::endl;
82 EXPECT_TRUE(kk !=
nullptr);
85 std::vector<std::string> varnames {
"a",
"b",
"c",
"d" };
86 std::vector<int> degs {1,1,1,1};
87 std::vector<int> heft {1};
97 EXPECT_TRUE(M !=
nullptr);
101 EXPECT_TRUE(R !=
nullptr);
104 std::cout <<
"ring is " << o.
str() << std::endl;
115 EXPECT_TRUE(R !=
nullptr);
118 std::cout <<
"ring is " << o.
str() << std::endl;
TEST(PolyRing, createDegreesRing)
Engine-boundary C API for constructing aring-backed coefficient rings.
Append-only GC-backed byte buffer used throughout the engine for text output.
static Monoid * create(const MonomialOrdering *mo, const PolynomialRing *DR, const std::vector< std::string > &names, const std::vector< int > °s, const std::vector< int > &hefts)
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
static const PolyRing * create(const Ring *K, const Monoid *M)
Concrete PolyRingFlat subclass implementing ordinary commutative polynomial rings K[x_1,...
virtual void text_out(buffer &o) const =0
Engine error-reporting primitives: ERROR, INTERNAL_ERROR, error, error_message.
const Ring * rawARingZZpFlint(unsigned long p)
Engine-boundary C API for constructing and inspecting Monoid objects.
MonomialOrdering * rawGRevLexMonomialOrdering(M2_arrayint degs, int packing)
Engine-boundary C API for assembling block-level MonomialOrderings from declarative pieces.
PolynomialRing — abstract polynomial-ring base, the engine's most-reused class.
Engine-boundary C API for the legacy Ring hierarchy — coefficient, polynomial, and composite rings.
Ring — the legacy abstract base class for every coefficient and polynomial ring.
Front-end-side description of a monomial ordering as a list of mon_part blocks.
const PolynomialRing * degreeRing(const std::vector< std::string > &names)
const PolynomialRing * simplePolynomialRing(const Ring *kk, const std::vector< std::string > &names, MonomialOrdering *monorder)
One-line helpers for building degree monoids and polynomial rings inside gtest cases.
M2_arrayint stdvector_to_M2_arrayint(const std::vector< T > &v)
Conversion helpers between M2 boundary types and standard C++ containers.