Skip to content

Commit efa9a01

Browse files
authored
Merge pull request #119 from ahumenberger/zero_one
Zero and one should return RationalPoly
2 parents 006c85c + a481116 commit efa9a01

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/rational.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ Base.:*(r::RationalPoly, p::APL) = (r.num * p) / r.den
6666
Base.:*(α, r::RationalPoly) =* r.num) / r.den
6767
Base.:*(r::RationalPoly, α) = (r.num * α) / r.den
6868

69-
Base.zero(::RationalPoly{NT}) where {NT} = zero(NT)
70-
Base.zero(::Type{RationalPoly{NT, DT}}) where {NT, DT} = zero(NT)
71-
Base.one(::RationalPoly{NT}) where {NT} = one(NT)
72-
Base.one(::Type{RationalPoly{NT, DT}}) where {NT, DT} = one(NT)
69+
Base.zero(r::RationalPoly) = zero(typeof(r))
70+
Base.zero(::Type{RationalPoly{NT, DT}}) where {NT, DT} = zero(NT) / one(DT)
71+
Base.one(r::RationalPoly) = one(typeof(r))
72+
Base.one(::Type{RationalPoly{NT, DT}}) where {NT, DT} = one(NT) / one(DT)

test/rational.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@
2828
@test x / x^2 == inv(x)
2929
@test isone(((x+1) / (x-1)) / ((x+1) / (x-1)))
3030
@test ((x+1)^2 / (x-1)) / ((x+1) / (x-1)) == x+1
31-
RType = typeof(x+1/x)
31+
poly = (x+1)/(x+2.0)
32+
RType = typeof(poly)
3233
@test RType(true) == one(RType)
3334
@test RType(false) == zero(RType)
35+
@test one(RType) isa RType
36+
@test zero(RType) isa RType
37+
@test one(poly) isa RType
38+
@test zero(poly) isa RType
3439
end

0 commit comments

Comments
 (0)