@@ -418,22 +418,22 @@ def PolynomialRing(base_ring, *args, **kwds):
418
418
419
419
The generic implementation is different in some cases::
420
420
421
- sage: R = PolynomialRing(GF(2), 'j', implementation="generic"); type(R)
421
+ sage: R = PolynomialRing(GF(2), 'j', implementation="generic"); TestSuite(R).run(skip=['_test_construction', '_test_pickling']); type(R)
422
422
<class 'sage.rings.polynomial.polynomial_ring.PolynomialRing_field_with_category'>
423
- sage: S = PolynomialRing(GF(2), 'j'); type(S)
423
+ sage: S = PolynomialRing(GF(2), 'j'); TestSuite(S).run(); type(S)
424
424
<class 'sage.rings.polynomial.polynomial_ring.PolynomialRing_dense_mod_p_with_category'>
425
425
426
- sage: R = PolynomialRing(ZZ, 'x,y', implementation="generic"); type(R)
426
+ sage: R = PolynomialRing(ZZ, 'x,y', implementation="generic"); TestSuite(R).run(skip=['_test_elements', '_test_elements_eq_transitive']); type(R)
427
427
<class 'sage.rings.polynomial.multi_polynomial_ring.MPolynomialRing_polydict_domain_with_category'>
428
- sage: S = PolynomialRing(ZZ, 'x,y'); type(S)
428
+ sage: S = PolynomialRing(ZZ, 'x,y'); TestSuite(S).run(skip='_test_elements'); type(S)
429
429
<class 'sage.rings.polynomial.multi_polynomial_libsingular.MPolynomialRing_libsingular'>
430
430
431
431
Sparse univariate polynomials only support a generic
432
432
implementation::
433
433
434
- sage: R = PolynomialRing(ZZ, 'j', sparse=True); type(R)
434
+ sage: R = PolynomialRing(ZZ, 'j', sparse=True); TestSuite(R).run(); type(R)
435
435
<class 'sage.rings.polynomial.polynomial_ring.PolynomialRing_integral_domain_with_category'>
436
- sage: R = PolynomialRing(GF(49), 'j', sparse=True); type(R)
436
+ sage: R = PolynomialRing(GF(49), 'j', sparse=True); TestSuite(R).run(); type(R)
437
437
<class 'sage.rings.polynomial.polynomial_ring.PolynomialRing_field_with_category'>
438
438
439
439
If the requested implementation is not known or not supported for
@@ -487,11 +487,14 @@ def PolynomialRing(base_ring, *args, **kwds):
487
487
:trac:`7712` and :trac:`13760` are fixed::
488
488
489
489
sage: P.<y,z> = PolynomialRing(RealIntervalField(2))
490
+ sage: TestSuite(P).run(skip=['_test_elements', '_test_elements_eq_transitive'])
490
491
sage: Q.<x> = PolynomialRing(P)
492
+ sage: TestSuite(Q).run(skip=['_test_additive_associativity', '_test_associativity', '_test_distributivity', '_test_prod'])
491
493
sage: C = (y-x)^3
492
494
sage: C(y/2)
493
495
1.?*y^3
494
496
sage: R.<x,y> = PolynomialRing(RIF,2)
497
+ sage: TestSuite(R).run(skip=['_test_elements', '_test_elements_eq_transitive'])
495
498
sage: RIF(-2,1)*x
496
499
0.?e1*x
497
500
@@ -549,6 +552,49 @@ def PolynomialRing(base_ring, *args, **kwds):
549
552
Traceback (most recent call last):
550
553
...
551
554
TypeError: unable to convert 'x' to an integer
555
+
556
+ We run the testsuite for various polynomial rings, skipping tests that currently fail::
557
+
558
+ sage: R.<w> = PolynomialRing(PolynomialRing(GF(7),'k')); TestSuite(R).run(); R
559
+ Univariate Polynomial Ring in w over Univariate Polynomial Ring in k over Finite Field of size 7
560
+ sage: ZxNTL = PolynomialRing(ZZ, 'x', implementation='NTL'); TestSuite(ZxNTL).run(skip='_test_pickling'); ZxNTL
561
+ Univariate Polynomial Ring in x over Integer Ring (using NTL)
562
+ sage: ZxFLINT = PolynomialRing(ZZ, 'x', implementation='FLINT'); TestSuite(ZxFLINT).run(); ZxFLINT
563
+ Univariate Polynomial Ring in x over Integer Ring
564
+ sage: Zx = PolynomialRing(ZZ, 'x', implementation='generic'); TestSuite(Zx).run(skip=['_test_construction', '_test_pickling']); Zx
565
+ Univariate Polynomial Ring in x over Integer Ring
566
+ sage: R = PolynomialRing(QQ, 'a,b,c'); TestSuite(R).run(skip='_test_elements'); R
567
+ Multivariate Polynomial Ring in a, b, c over Rational Field
568
+ sage: R = PolynomialRing(QQ, 'x,y,z', order='degrevlex'); TestSuite(R).run(skip='_test_elements'); R
569
+ Multivariate Polynomial Ring in x, y, z over Rational Field
570
+ sage: S = PolynomialRing(QQ, 'x,y,z', order='invlex'); TestSuite(S).run(skip=['_test_construction', '_test_elements']); S
571
+ Multivariate Polynomial Ring in x, y, z over Rational Field
572
+ sage: Q0 = PolynomialRing(QQ,[]); TestSuite(Q0).run(skip=['_test_elements', '_test_elements_eq_transitive', '_test_gcd_vs_xgcd', '_test_quo_rem']); Q0
573
+ Multivariate Polynomial Ring in no variables over Rational Field
574
+ sage: P.<x> = PolynomialRing(QQ, implementation="singular"); TestSuite(P).run(skip=['_test_construction', '_test_elements', '_test_euclidean_degree', '_test_quo_rem']); P
575
+ Multivariate Polynomial Ring in x over Rational Field
576
+ sage: Q1 = PolynomialRing(QQ,"x",1); TestSuite(Q1).run(skip=['_test_construction', '_test_elements', '_test_euclidean_degree', '_test_quo_rem']); Q1
577
+ Multivariate Polynomial Ring in x over Rational Field
578
+ sage: Q0 = PolynomialRing(QQ,"x",0); TestSuite(Q0).run(skip=['_test_elements', '_test_elements_eq_transitive', '_test_gcd_vs_xgcd', '_test_quo_rem']); Q0
579
+ Multivariate Polynomial Ring in no variables over Rational Field
580
+ sage: R = PolynomialRing(GF(2), 'j', implementation="generic"); TestSuite(R).run(skip=['_test_construction', '_test_pickling']); type(R)
581
+ <class 'sage.rings.polynomial.polynomial_ring.PolynomialRing_field_with_category'>
582
+ sage: S = PolynomialRing(GF(2), 'j'); TestSuite(S).run(); type(S)
583
+ <class 'sage.rings.polynomial.polynomial_ring.PolynomialRing_dense_mod_p_with_category'>
584
+ sage: R = PolynomialRing(ZZ, 'x,y', implementation="generic"); TestSuite(R).run(skip=['_test_elements', '_test_elements_eq_transitive']); type(R)
585
+ <class 'sage.rings.polynomial.multi_polynomial_ring.MPolynomialRing_polydict_domain_with_category'>
586
+ sage: S = PolynomialRing(ZZ, 'x,y'); TestSuite(S).run(skip='_test_elements'); type(S)
587
+ <class 'sage.rings.polynomial.multi_polynomial_libsingular.MPolynomialRing_libsingular'>
588
+ sage: R = PolynomialRing(ZZ, 'j', sparse=True); TestSuite(R).run(); type(R)
589
+ <class 'sage.rings.polynomial.polynomial_ring.PolynomialRing_integral_domain_with_category'>
590
+ sage: R = PolynomialRing(GF(49), 'j', sparse=True); TestSuite(R).run(); type(R)
591
+ <class 'sage.rings.polynomial.polynomial_ring.PolynomialRing_field_with_category'>
592
+ sage: P.<y,z> = PolynomialRing(RealIntervalField(2))
593
+ sage: TestSuite(P).run(skip=['_test_elements', '_test_elements_eq_transitive'])
594
+ sage: Q.<x> = PolynomialRing(P)
595
+ sage: TestSuite(Q).run(skip=['_test_additive_associativity', '_test_associativity', '_test_distributivity', '_test_prod'])
596
+ sage: R.<x,y> = PolynomialRing(RIF,2)
597
+ sage: TestSuite(R).run(skip=['_test_elements', '_test_elements_eq_transitive'])
552
598
"""
553
599
if not ring .is_Ring (base_ring ):
554
600
raise TypeError ("base_ring {!r} must be a ring" .format (base_ring ))
0 commit comments