@@ -141,10 +141,10 @@ def PolynomialRing(base_ring, *args, **kwds):
141
141
...
142
142
TypeError: you must specify the names of the variables
143
143
144
- sage: R.<abc> = PolynomialRing(QQ, sparse=True); TestSuite(R).run(); R
144
+ sage: R.<abc> = PolynomialRing(QQ, sparse=True); R
145
145
Sparse Univariate Polynomial Ring in abc over Rational Field
146
146
147
- sage: R.<w> = PolynomialRing(PolynomialRing(GF(7),'k')); TestSuite(R).run(); R
147
+ sage: R.<w> = PolynomialRing(PolynomialRing(GF(7),'k')); R
148
148
Univariate Polynomial Ring in w over Univariate Polynomial Ring in k over Finite Field of size 7
149
149
150
150
The square bracket notation::
@@ -179,9 +179,9 @@ def PolynomialRing(base_ring, *args, **kwds):
179
179
like 2^1000000 * x^1000000 in FLINT may be unwise.
180
180
::
181
181
182
- sage: ZxNTL = PolynomialRing(ZZ, 'x', implementation='NTL'); TestSuite(ZxNTL).run(skip='_test_pickling'); ZxNTL
182
+ sage: ZxNTL = PolynomialRing(ZZ, 'x', implementation='NTL'); ZxNTL
183
183
Univariate Polynomial Ring in x over Integer Ring (using NTL)
184
- sage: ZxFLINT = PolynomialRing(ZZ, 'x', implementation='FLINT'); TestSuite(ZxFLINT).run(); ZxFLINT
184
+ sage: ZxFLINT = PolynomialRing(ZZ, 'x', implementation='FLINT'); ZxFLINT
185
185
Univariate Polynomial Ring in x over Integer Ring
186
186
sage: ZxFLINT is ZZ['x']
187
187
True
@@ -209,7 +209,7 @@ def PolynomialRing(base_ring, *args, **kwds):
209
209
210
210
The generic implementation uses neither NTL nor FLINT::
211
211
212
- sage: Zx = PolynomialRing(ZZ, 'x', implementation='generic'); TestSuite(Zx).run(skip=['_test_construction', '_test_pickling']); Zx
212
+ sage: Zx = PolynomialRing(ZZ, 'x', implementation='generic'); Zx
213
213
Univariate Polynomial Ring in x over Integer Ring
214
214
sage: Zx.element_class
215
215
<... 'sage.rings.polynomial.polynomial_element.Polynomial_generic_dense'>
@@ -218,7 +218,7 @@ def PolynomialRing(base_ring, *args, **kwds):
218
218
219
219
::
220
220
221
- sage: R = PolynomialRing(QQ, 'a,b,c'); TestSuite(R).run(skip='_test_elements'); R
221
+ sage: R = PolynomialRing(QQ, 'a,b,c'); R
222
222
Multivariate Polynomial Ring in a, b, c over Rational Field
223
223
224
224
sage: S = PolynomialRing(QQ, ['a','b','c']); S
@@ -236,9 +236,9 @@ def PolynomialRing(base_ring, *args, **kwds):
236
236
237
237
There is a unique polynomial ring with each term order::
238
238
239
- sage: R = PolynomialRing(QQ, 'x,y,z', order='degrevlex'); TestSuite(R).run(skip='_test_elements'); R
239
+ sage: R = PolynomialRing(QQ, 'x,y,z', order='degrevlex'); R
240
240
Multivariate Polynomial Ring in x, y, z over Rational Field
241
- sage: S = PolynomialRing(QQ, 'x,y,z', order='invlex'); TestSuite(S).run(skip=['_test_construction', '_test_elements']); S
241
+ sage: S = PolynomialRing(QQ, 'x,y,z', order='invlex'); S
242
242
Multivariate Polynomial Ring in x, y, z over Rational Field
243
243
sage: S is PolynomialRing(QQ, 'x,y,z', order='invlex')
244
244
True
@@ -253,15 +253,15 @@ def PolynomialRing(base_ring, *args, **kwds):
253
253
254
254
sage: PolynomialRing(QQ,["x"])
255
255
Univariate Polynomial Ring in x over Rational Field
256
- sage: Q0 = PolynomialRing(QQ,[]); TestSuite(Q0).run(skip=['_test_elements', '_test_elements_eq_transitive', '_test_gcd_vs_xgcd', '_test_quo_rem']); Q0
256
+ sage: PolynomialRing(QQ,[])
257
257
Multivariate Polynomial Ring in no variables over Rational Field
258
258
259
259
The Singular implementation always returns a multivariate ring,
260
260
even for 1 variable::
261
261
262
262
sage: PolynomialRing(QQ, "x", implementation="singular")
263
263
Multivariate Polynomial Ring in x over Rational Field
264
- sage: P.<x> = PolynomialRing(QQ, implementation="singular"); TestSuite(P).run(skip=['_test_construction', '_test_elements', '_test_euclidean_degree', '_test_quo_rem']); P
264
+ sage: P.<x> = PolynomialRing(QQ, implementation="singular"); P
265
265
Multivariate Polynomial Ring in x over Rational Field
266
266
267
267
**3. PolynomialRing(base_ring, n, names, ...)** (where the arguments
@@ -289,9 +289,9 @@ def PolynomialRing(base_ring, *args, **kwds):
289
289
290
290
::
291
291
292
- sage: Q1 = PolynomialRing(QQ,"x",1); TestSuite(Q1).run(skip=['_test_construction', '_test_elements', '_test_euclidean_degree', '_test_quo_rem']); Q1
292
+ sage: PolynomialRing(QQ,"x",1)
293
293
Multivariate Polynomial Ring in x over Rational Field
294
- sage: Q0 = PolynomialRing(QQ,"x",0); TestSuite(Q0).run(skip=['_test_elements', '_test_elements_eq_transitive', '_test_gcd_vs_xgcd', '_test_quo_rem']); Q0
294
+ sage: PolynomialRing(QQ,"x",0)
295
295
Multivariate Polynomial Ring in no variables over Rational Field
296
296
297
297
It is easy in Python to create fairly arbitrary variable names. For
@@ -552,6 +552,49 @@ def PolynomialRing(base_ring, *args, **kwds):
552
552
Traceback (most recent call last):
553
553
...
554
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'])
555
598
"""
556
599
if not ring .is_Ring (base_ring ):
557
600
raise TypeError ("base_ring {!r} must be a ring" .format (base_ring ))
0 commit comments