TEST(ARingZZpFlint, create) { M2::ARingZZpFlint R(101); EXPECT_EQ(ringName(R), "AZZFlint/101"); testSomeMore(R); M2::ARingZZpFlint::ElementType a; R.init(a); R.set_from_long(a, 99); R.set_from_long(a, 101); R.set_from_long(a, 103); R.clear(a); }
TEST(ARingZZpFFPACK, create) { M2::ARingZZpFFPACK R(101); EXPECT_EQ(ringName(R), "ZZpFPACK(101,1)"); testSomeMore(R); std::cout << "max modulus for ffpack zzp: " << M2::ARingZZpFFPACK::getMaxModulus() << std::endl; M2::ARingZZpFFPACK::ElementType a; R.init(a); R.set_from_long(a, 99); R.set_from_long(a, 101); R.set_from_long(a, 103); R.clear(a); }
TEST(ARingGFGivaroGivaro, create) { M2::ARingGFGivaro R(5,3); EXPECT_EQ(ringName(R), "GF(5,3,Givaro)"); EXPECT_EQ(R.cardinality(), 125); EXPECT_EQ(R.characteristic(), 5); M2_arrayint gen_modpoly = R.getModPolynomialCoeffs(); std::cout << "minimal polynomial = "; dintarray(gen_modpoly); std::cout << std::endl; M2_arrayint gen_coeffs = R.getGeneratorCoeffs(); std::cout << "generator polynomial = "; dintarray(gen_coeffs); std::cout << std::endl; // Check what values integers go to M2::ARingGFGivaro::ElementType a; R.init(a); for (int i=-5; i<R.characteristic(); i++) { R.set_from_long(a, i); M2_arrayint coeffs = R.fieldElementToM2Array(a); if (i >= 0) EXPECT_EQ(coeffs->array[0], i); EXPECT_EQ(coeffs->len, 3); for (int j=1; j<3; j++) EXPECT_EQ(coeffs->array[j], 0); std::cout << i << " = "; dintarray(coeffs); std::cout << std::endl; } R.clear(a); testSomeMore(R); }