Skip to content

Commit 3bbf8aa

Browse files
committed
fixing the pex case, but in fact others don't return the correct error for negative degree input
1 parent 3dd953c commit 3bbf8aa

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/sage/rings/polynomial/polynomial_zz_pex.pyx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -513,13 +513,18 @@ cdef class Polynomial_ZZ_pEX(Polynomial_template):
513513
sage: f.reverse(degree=200)
514514
2*x^200 + 3*x^199 + 5*x^198 + 7*x^197 + 11*x^196 + 13*x^195 + 17*x^194 + 19*x^193
515515
sage: f.reverse(degree=0)
516-
Traceback (most recent call last):
517-
...
518-
ValueError: degree argument must be a non-negative integer, got 0
516+
2
519517
sage: f.reverse(degree=-5)
520518
Traceback (most recent call last):
521519
...
522520
ValueError: degree argument must be a non-negative integer, got -5
521+
522+
Check that this implementation is compatible with the generic one::
523+
524+
sage: p = R([0,1,0,2])
525+
sage: all(p.reverse(d) == Polynomial.reverse(p, d)
526+
....: for d in [None, 0, 1, 2, 3, 4])
527+
True
523528
"""
524529
self._parent._modulus.restore()
525530

@@ -533,12 +538,9 @@ cdef class Polynomial_ZZ_pEX(Polynomial_template):
533538
# When a degree has been supplied, ensure it is a valid input
534539
cdef unsigned long d
535540
if degree is not None:
536-
if degree <= 0:
537-
raise ValueError("degree argument must be a non-negative integer, got %s" % (degree))
538-
try:
539-
d = degree
540-
except ValueError:
541-
raise ValueError("degree argument must be a non-negative integer, got %s" % (degree))
541+
d = degree
542+
if d != degree:
543+
raise ValueError("degree argument must be a non-negative integer, got %s"%(degree))
542544
ZZ_pEX_reverse_hi(r.x, (<Polynomial_ZZ_pEX> self).x, d)
543545
else:
544546
ZZ_pEX_reverse(r.x, (<Polynomial_ZZ_pEX> self).x)

0 commit comments

Comments
 (0)