From c90fd9b45d9549fe25797ffe86ded97cc7f3062b Mon Sep 17 00:00:00 2001 From: Tommy Hofmann Date: Tue, 6 Jul 2021 17:24:21 +0200 Subject: [PATCH] Fix return type of homogenous_components --- src/Rings/MPolyQuo.jl | 3 ++- test/Rings/mpoly-graded-test.jl | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Rings/MPolyQuo.jl b/src/Rings/MPolyQuo.jl index ba2153d5fa3d..cfb3686ad94d 100644 --- a/src/Rings/MPolyQuo.jl +++ b/src/Rings/MPolyQuo.jl @@ -863,7 +863,8 @@ end function homogeneous_components(a::MPolyQuoElem{<:MPolyElem_dec}) simplify!(a) - return homogeneous_components(a.f) + h = homogeneous_components(a.f) + return Dict{keytype(h), typeof(a)}(x => parent(a)(y) for (x, y) in h) end function ishomogeneous(a::MPolyQuoElem{<:MPolyElem_dec}) diff --git a/test/Rings/mpoly-graded-test.jl b/test/Rings/mpoly-graded-test.jl index dcdcb6b5330f..c6555fa151c6 100644 --- a/test/Rings/mpoly-graded-test.jl +++ b/test/Rings/mpoly-graded-test.jl @@ -1,3 +1,10 @@ +@testset "MPolyQuo.graded" begin + R, (x, y) = grade(PolynomialRing(QQ, ["x", "y"])[1]); + Q = quo(R, ideal([x^2, y]))[1]; + h = homogeneous_components(Q[1]) + @test valtype(h) === elem_type(Q) +end + function _random_poly(RR, n) pols = elem_type(RR)[] for t in 1:n @@ -125,7 +132,7 @@ end for deg in [degree(R_quo(mon)) for mon = Oscar.monomials(f.f)] h = get(D, deg, 'x') @test ishomogeneous(R_quo(h)) - @test h == homogeneous_component(f, deg) + @test h == R_quo(homogeneous_component(f, deg)) end @test Oscar.isfiltered(R_quo) == Oscar.isfiltered(RR)