Skip to content

Commit 246cf34

Browse files
committed
Ensure degree and total degree return Integer
1 parent e417e22 commit 246cf34

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

src/sage/rings/polynomial/multi_polynomial_element.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -668,11 +668,22 @@ def degree(self, x=None, std_grading=False):
668668
sage: R.<x,y> = GF(3037000453)[] # needs sage.rings.finite_rings
669669
sage: R.zero().degree(x)
670670
-1
671+
672+
Ensure that :issue:`37603` is fixed::
673+
674+
sage: R.<x,y,z> = PolynomialRing(QQbar)
675+
sage: f = 3*x^2 - 2*y + 7*x^2*y^2 + 5
676+
sage: type(f.degree())
677+
<class 'sage.rings.integer.Integer'>
678+
sage: type(f.degree(x))
679+
<class 'sage.rings.integer.Integer'>
680+
sage: type(f.degree(x)) == type(f.degree(y)) == type(f.degree(z))
681+
True
671682
"""
672683
if x is None:
673684
if std_grading or not self.parent().term_order().is_weighted_degree_order():
674-
return self.element().degree(None)
675-
return self.weighted_degree(self.parent().term_order().weights())
685+
return Integer(self.element().degree(None))
686+
return Integer(self.weighted_degree(self.parent().term_order().weights()))
676687
if isinstance(x, MPolynomial):
677688
if not x.parent() is self.parent():
678689
try:
@@ -683,7 +694,7 @@ def degree(self, x=None, std_grading=False):
683694
raise TypeError("x must be one of the generators of the parent")
684695
else:
685696
raise TypeError("x must be one of the generators of the parent")
686-
return self.element().degree(x.element())
697+
return Integer(self.element().degree(x.element()))
687698

688699
def total_degree(self):
689700
"""
@@ -712,6 +723,16 @@ def total_degree(self):
712723
sage: f = z^9 + 10*x^4 + y^8*x^2
713724
sage: f.total_degree()
714725
10
726+
727+
TESTS::
728+
729+
Ensure that :issue:`37603` is fixed::
730+
sage: R.<x,y,z> = QQbar[]
731+
sage: f = 2*x*y^3*z^2
732+
sage: f.total_degree()
733+
6
734+
sage: type(f.total_degree())
735+
<class 'sage.rings.integer.Integer'>
715736
"""
716737
return self.degree()
717738

0 commit comments

Comments
 (0)