JuliaMath / JuliaMath/Polynomials.jl

Some ambiguities found with Aqua

Open
#435 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
320
Forks
80
Avg merge
8h 46m
Merged PRs (30d)
3

Description

I tried to check my packages with [Aqua.jl](https://github.com/JuliaTesting/Aqua.jl) (just for fun).

Performing the ambiguity test strictly for my package I obtained no ambiguities in my code
```
julia> Aqua.test_ambiguities(MatrixPencils,recursive=false)
Test Passed
Expression: success(pipeline(cmd; stdout = stdout, stderr = stderr))
```

However, without the `recursive = false` setting, I obtained a lot of complaints, which apparently originate from `Polynomials`. So, I performed the test only for `Polynomials `and got

```
julia> Aqua.test_ambiguities(Polynomials,recursive=false)
Skipping Polynomials.order
12 ambiguities found
Ambiguity #1
/(p::P, c::S) where {S, T, X, P<:Polynomials.FactoredPolynomial{T, X}} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\factored_polynomial.jl:276
/(p::Polynomials.AbstractPolynomial, q::PQ) where PQ<:Polynomials.AbstractRationalFunction in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\rational-functions\common.jl:354

Possible fix, define
/(::P, ::PQ) where {PQ<:Polynomials.AbstractRationalFunction, T, X, P<:Polynomials.FactoredPolynomial{T, X}}

Ambiguity #2
+(p::P, c::T) where {T, X, P<:Polynomials.ChebyshevT{T, X}} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\ChebyshevT.jl:225
+(p::Polynomials.AbstractPolynomial, q::Polynomials.AbstractRationalFunction) in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\rational-functions\common.jl:299

Possible fix, define
+(::P, ::T) where {T<:Polynomials.AbstractRationalFunction, X, P<:Polynomials.ChebyshevT{T, X}}

Ambiguity #3
+(x, ::MutableArithmetics.Zero) in MutableArithmetics at C:\Users\Andreas\.julia\packages\MutableArithmetics\Lnlkl\src\rewrite.jl:62
+(p::P, c::S) where {T, X, P<:Polynomials.AbstractPolynomial{T, X}, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:848

Possible fix, define
+(::P, ::MutableArithmetics.Zero) where {T, X, P<:Polynomials.AbstractPolynomial{T, X}}

Ambiguity #4
+(p::P, c::T) where {T, P<:(Polynomials.StandardBasisPolynomial{T})} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\standard-basis.jl:75
+(p::Polynomials.AbstractPolynomial, q::Polynomials.AbstractRationalFunction) in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\rational-functions\common.jl:299

Possible fix, define
+(::P, ::T) where {T<:Polynomials.AbstractRationalFunction, P<:(Polynomials.StandardBasisPolynomial{T})}

Ambiguity #5
isapprox(p1::Polynomials.AbstractPolynomial{T}, n::S; rtol, atol) where {T, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:1078
isapprox(::Any, ::Missing; kwargs...) in Base at missing.jl:91

Possible fix, define
isapprox(::Polynomials.AbstractPolynomial{T}, ::Missing) where T

Ambiguity #6
scalar_mult(p::P, c::S) where {S, T, X, P<:Polynomials.AbstractPolynomial{T, X}} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:935
scalar_mult(c::S, p::P) where {S, T, X, P<:Polynomials.AbstractPolynomial{T, X}} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:941

Possible fix, define
scalar_mult(::S, ::Union{P, S}) where {S<:(Polynomials.AbstractPolynomial), T, S<:(Polynomials.AbstractPolynomial{T}), X, P<:Polynomials.AbstractPolynomial{T, X}}

Ambiguity #7
convert(P::Type{<:Polynomials.ArnoldiFit}, p::Polynomials.ArnoldiFit{var"#64#T", var"#65#X"}) where {var"#64#T", var"#65#X"} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\abstract.jl:84
convert(::Type{P}, p::Polynomials.ArnoldiFit) where P<:Polynomials.AbstractPolynomial in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\standard-basis.jl:647

Possible fix, define
convert(::Type{P}, ::Polynomials.ArnoldiFit{var"#64#T", var"#65#X"}) where {P<:Polynomials.ArnoldiFit, var"#64#T", var"#65#X"<:AbstractMatrix{var"#64#T"}}

Ambiguity #8
(::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), n::S, p1::Polynomials.AbstractPolynomial{T}) where {T, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:1088
(::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), ::Missing, ::Any) in Base at missing.jl:90

Possible fix, define
(::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), ::Missing, ::Polynomials.AbstractPolynomial{T}) where T

Ambiguity #9
convert(::Type{P}, q::Polynomials.AbstractPolynomial) where P<:Polynomials.LaurentPolynomial in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\LaurentPolynomial.jl:154
convert(::Type{P}, p::Polynomials.ArnoldiFit) where P<:Polynomials.AbstractPolynomial in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\standard-basis.jl:647

Possible fix, define
convert(::Type{P}, ::Polynomials.ArnoldiFit) where P<:Polynomials.LaurentPolynomial

Ambiguity #10
(::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), p1::Polynomials.AbstractPolynomial{T}, n::S) where {T, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:1078
(::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), ::Any, ::Missing) in Base at missing.jl:91

Possible fix, define
(::Base.var"#isapprox##kw")(::Any, ::typeof(isapprox), ::Polynomials.AbstractPolynomial{T}, ::Missing) where T

Ambiguity #11
/(p::Polynomials.ImmutablePolynomial{T, X, N}, c::S) where {T, X, N, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\polynomials\ImmutablePolynomial.jl:206
/(p::Polynomials.AbstractPolynomial, q::PQ) where PQ<:Polynomials.AbstractRationalFunction in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\rational-functions\common.jl:354

Possible fix, define
/(::Polynomials.ImmutablePolynomial{T, X, N}, ::PQ) where {PQ<:Polynomials.AbstractRationalFunction, T, X, N}

Ambiguity #12
isapprox(n::S, p1::Polynomials.AbstractPolynomial{T}; rtol, atol) where {T, S} in Polynomials at C:\Users\Andreas\.julia\packages\Polynomials\3kKqS\src\common.jl:1088
isapprox(::Missing, ::Any; kwargs...) in Base at missing.jl:90

Possible fix, define
isapprox(::Missing, ::Polynomials.AbstractPolynomial{T}) where T

Test Failed at C:\Users\Andreas\.julia\packages\Aqua\HWLbM\src\ambiguities.jl:117
Expression: success(pipeline(cmd; stdout = stdout, stderr = stderr))
ERROR: There was an error during testing

```
I wonder if this is of any relevance for this package.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.