36#include <gtest/gtest.h>
60 std::vector<std::string> vars = {
"a",
"b"};
63 EXPECT_TRUE(R !=
nullptr);
64 EXPECT_EQ(
ringName(*R),
"Tower[ZZ/101[a,b]]");
66 for (
int i = 1; i < 1; i++)
72 std::cout << o.
str() << std::endl;
78 std::vector<std::string> vars = {
"a",
"b"};
std::string ringName(const T &R)
Shared gtest fixture for the legacy Ring-based Ring*Test.cpp suite.
ring_elem getElement< Tower >(const Tower &R, int index)
virtual ring_elem power(const ring_elem f, mpz_srcptr n) const
Exponentiation. This is the default function, if a class doesn't define this.
virtual ring_elem random() const
virtual ring_elem from_long(long n) const
static Tower * create(int charac, M2_ArrayString names)
virtual ring_elem var(int v) const
virtual ring_elem add(const ring_elem f, const ring_elem g) const
virtual void elem_text_out(buffer &o, const ring_elem f, bool p_one=true, bool p_plus=false, bool p_parens=false) const
Ring subclass for tower polynomial rings (Z/p)[x_0][x_1]...[x_{n-1}] modulo a chain of algebraic exte...
Legacy Tower — Ring-derived iterated extension of Z/p (pre-aring).
M2_ArrayString stdvector_to_M2_ArrayString(const std::vector< std::string > &strs)
Conversion helpers between M2 boundary types and standard C++ containers.