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

◆ TEST() [4/9]

TEST ( RingRRR ,
multDivide  )

Definition at line 103 of file RingRRRTest.cpp.

104{
105 RingRRR *R = RingRRR::create(std::make_unique<M2::ARingRRR>(100));
107 for (int i = 0; i < ntrials; i++)
108 {
109 // test: (a*b) // b == a
110 ring_elem a = gen.nextElement();
111 ring_elem b = gen.nextElement();
112 ring_elem c = R->mult(a, b);
113 if (R->is_zero(b))
114 EXPECT_TRUE(R->is_zero(c));
115 else
116 {
117 ring_elem d = R->divide(c, b);
118 EXPECT_TRUE(almostEqual(R, 94, d, a));
119 }
120 }
121}
const int ntrials
Definition ARingTest.hpp:42
M2::ConcreteRing< M2::ARingRRR > RingRRR
bool almostEqual(const RingRRR *R, int nbits, ring_elem a, ring_elem b)
virtual ring_elem mult(const ring_elem f, const ring_elem g) const
virtual bool is_zero(const ring_elem f) const
virtual ring_elem divide(const ring_elem f, const ring_elem g) const
static ConcreteRing< M2::ARingRRR > * create(std::unique_ptr< M2::ARingRRR > R)

References almostEqual(), M2::ConcreteRing< M2::ARingRRR >::create(), M2::ConcreteRing< RingType >::divide(), M2::ConcreteRing< RingType >::is_zero(), M2::ConcreteRing< RingType >::mult(), RingElementGenerator< RingType >::nextElement(), and ntrials.