diff --git a/src/polynomials/standard-basis/immutable-polynomial.jl b/src/polynomials/standard-basis/immutable-polynomial.jl index a1749e23..01e5a003 100644 --- a/src/polynomials/standard-basis/immutable-polynomial.jl +++ b/src/polynomials/standard-basis/immutable-polynomial.jl @@ -145,8 +145,6 @@ derivative(p::ImmutableDensePolynomial{B,T,X,0}) where {B<:StandardBasis,T,X} = derivative(p::ImmutableDensePolynomial{B,T,X,1}) where {B<:StandardBasis,T,X} = zero(p) function derivative(p::ImmutableDensePolynomial{B,T,X,N}) where {B<:StandardBasis,T,X,N} - N == 0 && return p - N == 1 && return zero(p) hasnan(p) && return ImmutableDensePolynomial{B,T,X,1}(zero(T)/zero(T)) # NaN{T} cs = ntuple(i -> i*p.coeffs[i+1], Val(N-1)) R = eltype(cs) diff --git a/test/StandardBasis.jl b/test/StandardBasis.jl index f9ef0784..3f45e594 100644 --- a/test/StandardBasis.jl +++ b/test/StandardBasis.jl @@ -1094,6 +1094,15 @@ end @test_throws ArgumentError derivative(pR, -1) @test integrate(P([1,1,0,0]), 0, 2) == 4.0 + p₀, p₁, p₂ = zero(P), one(P), variable(P) + @test derivative(p₂) == p₁ + @test derivative(p₁) == p₀ + @test integrate(p₀, 1) == p₁ + @test integrate(p₁) == p₂ + if P != Polynomials.MutableSparseVectorPolynomial{Polynomials.StandardBasis} + @test repr(derivative(p₁)) == string(P)*"(0.0)" # #615 display issue + end + P <: FactoredPolynomial && continue @testset for i in 1:10