From d3c7e2e51919de801819847f72ff88460fd5bcf2 Mon Sep 17 00:00:00 2001 From: Tianyi Pu <912396513@qq.com> Date: Wed, 28 Feb 2024 16:12:31 +0000 Subject: [PATCH 1/6] update --- Project.toml | 4 +++- src/EltypeExtensions.jl | 8 ++++---- test/runtests.jl | 5 +++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Project.toml b/Project.toml index c1b9e7b..bbfa030 100644 --- a/Project.toml +++ b/Project.toml @@ -5,12 +5,14 @@ version = "1.0.0-DEV" [compat] Aqua = "0.8" +Documenter = "1" Test = "1" julia = "1" [extras] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" +Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["Aqua", "Test"] +test = ["Aqua", "Documenter", "Test"] diff --git a/src/EltypeExtensions.jl b/src/EltypeExtensions.jl index 6347cfc..83b2347 100644 --- a/src/EltypeExtensions.jl +++ b/src/EltypeExtensions.jl @@ -19,7 +19,7 @@ $(repr("text/plain", Matrix{Float64})) ``` """ elconvert(::Type{T}, A::AbstractArray) where T = AbstractArray{T}(A) -elconvert(::Type{T}, A::AbstractRange) where T = AbstractRange{T}(A) +elconvert(::Type{T}, A::AbstractRange) where T = T(first(A)):T(step(A)):T(last(A)) elconvert(::Type{T}, A::AbstractSet) where T = AbstractSet{T}(A) """ @@ -127,8 +127,8 @@ julia> precisionconvert(Float16, [[m/n for n in 1:3] for m in 1:3]) """ precisionconvert(T,A) = precisionconvert(T,A,precision(T)) precisionconvert(::Type{T}, A::S, prec) where {T,S} = convert(_to_precisiontype(T,S), A) -precisionconvert(::Type{BigFloat}, x::Real, prec) = BigFloat(x, prec) -precisionconvert(::Type{BigFloat}, x::Complex, prec) = Complex(BigFloat(real(x), prec), BigFloat(imag(x), prec)) -precisionconvert(::Type{BigFloat}, A, prec) = precisionconvert.(BigFloat, A, prec) +precisionconvert(::Type{BigFloat}, x::Real, prec) = BigFloat(x, precision=prec) +precisionconvert(::Type{BigFloat}, x::Complex, prec) = Complex(BigFloat(real(x), precision=prec), BigFloat(imag(x), precision=prec)) +precisionconvert(::Type{BigFloat}, A, prec) = precisionconvert.(BigFloat, A, precision=prec) end diff --git a/test/runtests.jl b/test/runtests.jl index 97a2b96..0c5d676 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,9 +1,10 @@ +using Documenter using EltypeExtensions using Test using Aqua -@testset "EltypeExtensions.jl" begin - # Write your tests here. +@testset "Doctest" begin + doctest(EltypeExtensions) end @testset "Aqua" begin From b81344602a8b7c02f4d45afce8c9cee75a5fd167 Mon Sep 17 00:00:00 2001 From: Tianyi Pu <912396513@qq.com> Date: Wed, 28 Feb 2024 16:16:18 +0000 Subject: [PATCH 2/6] Update Project.toml --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index bbfa030..74b6a33 100644 --- a/Project.toml +++ b/Project.toml @@ -5,7 +5,7 @@ version = "1.0.0-DEV" [compat] Aqua = "0.8" -Documenter = "1" +Documenter = "0.28, 1" Test = "1" julia = "1" From 7be23efed248a951eae96520eb134a583cf9e4e2 Mon Sep 17 00:00:00 2001 From: Tianyi Pu <912396513@qq.com> Date: Wed, 28 Feb 2024 16:20:58 +0000 Subject: [PATCH 3/6] Update Project.toml --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 74b6a33..a0b1308 100644 --- a/Project.toml +++ b/Project.toml @@ -5,7 +5,7 @@ version = "1.0.0-DEV" [compat] Aqua = "0.8" -Documenter = "0.28, 1" +Documenter = "0.27, 1" Test = "1" julia = "1" From ac3a1dc368bd76be43f0db5e7d91ca20d25c0897 Mon Sep 17 00:00:00 2001 From: Tianyi Pu <912396513@qq.com> Date: Wed, 28 Feb 2024 16:25:59 +0000 Subject: [PATCH 4/6] Update EltypeExtensions.jl --- src/EltypeExtensions.jl | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/EltypeExtensions.jl b/src/EltypeExtensions.jl index 83b2347..ed6fc0c 100644 --- a/src/EltypeExtensions.jl +++ b/src/EltypeExtensions.jl @@ -127,8 +127,14 @@ julia> precisionconvert(Float16, [[m/n for n in 1:3] for m in 1:3]) """ precisionconvert(T,A) = precisionconvert(T,A,precision(T)) precisionconvert(::Type{T}, A::S, prec) where {T,S} = convert(_to_precisiontype(T,S), A) -precisionconvert(::Type{BigFloat}, x::Real, prec) = BigFloat(x, precision=prec) -precisionconvert(::Type{BigFloat}, x::Complex, prec) = Complex(BigFloat(real(x), precision=prec), BigFloat(imag(x), precision=prec)) -precisionconvert(::Type{BigFloat}, A, prec) = precisionconvert.(BigFloat, A, precision=prec) +precisionconvert(::Type{BigFloat}, x::Real, prec) = bigfloatconvert(x, prec) +precisionconvert(::Type{BigFloat}, x::Complex, prec) = Complex(bigfloatconvert(real(x), prec), bigfloatconvert(imag(x), prec)) +precisionconvert(::Type{BigFloat}, A, prec) = precisionconvert.(BigFloat, A, prec) + +@static if VERSION < v"1.10" + @inline bigfloatconvert(x, prec) = BigFloat(x, prec) +else + @inline bigfloatconvert(x, prec) = BigFloat(x, precision = prec) +end end From b589b47e679f307a1592d49c629f2123b9a0d37c Mon Sep 17 00:00:00 2001 From: Tianyi Pu <912396513@qq.com> Date: Wed, 28 Feb 2024 16:29:20 +0000 Subject: [PATCH 5/6] add codecov badge --- README.md | 1 + src/EltypeExtensions.jl | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 24e1020..3cf3e8f 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,4 @@ [![](https://img.shields.io/badge/docs-stable-blue.svg)](https://putianyi889.github.io/EltypeExtensions.jl/stable) [![](https://img.shields.io/badge/docs-dev-blue.svg)](https://putianyi889.github.io/EltypeExtensions.jl/dev) [![Aqua QA](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl) +[![codecov](https://codecov.io/gh/putianyi889/EltypeExtensions.jl/branch/master/graph/badge.svg?label=codecov)](https://codecov.io/gh/putianyi889/EltypeExtensions.jl) \ No newline at end of file diff --git a/src/EltypeExtensions.jl b/src/EltypeExtensions.jl index ed6fc0c..783cccb 100644 --- a/src/EltypeExtensions.jl +++ b/src/EltypeExtensions.jl @@ -119,7 +119,7 @@ julia> precisionconvert(BigFloat, 1//3+im, 128) 0.3333333333333333333333333333333333333338 + 1.0im julia> precisionconvert(Float16, [[m/n for n in 1:3] for m in 1:3]) -3-element Vector{Vector{Float16}}: +3-element $(repr(Vector{Vector{Float16}})): [1.0, 0.5, 0.3333] [2.0, 1.0, 0.6665] [3.0, 1.5, 1.0] From 34c5a381a47c9699bf3a366df261bbc73c3e92a0 Mon Sep 17 00:00:00 2001 From: Tianyi Pu <912396513@qq.com> Date: Wed, 28 Feb 2024 16:36:20 +0000 Subject: [PATCH 6/6] add coverage test --- .github/workflows/CI.yml | 5 +++++ src/EltypeExtensions.jl | 14 +++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 8b8a0ca..2f2772e 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -39,3 +39,8 @@ jobs: - uses: julia-actions/cache@v1 - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + file: lcov.info diff --git a/src/EltypeExtensions.jl b/src/EltypeExtensions.jl index 783cccb..887a8e1 100644 --- a/src/EltypeExtensions.jl +++ b/src/EltypeExtensions.jl @@ -4,6 +4,12 @@ import Base: convert export elconvert, basetype, baseconvert, precisiontype, precisionconvert +@static if VERSION < v"1.10" + @inline bigfloatconvert(x, prec) = BigFloat(x, prec) +else + @inline bigfloatconvert(x, prec) = BigFloat(x, precision = prec) +end + """ elconvert(T, A) @@ -116,7 +122,7 @@ Convert `A` to have the [`precisiontype`](@ref) of `T`. If `T` has adjustable pr # Examples ```jldoctest; setup = :(using EltypeExtensions: precisionconvert) julia> precisionconvert(BigFloat, 1//3+im, 128) -0.3333333333333333333333333333333333333338 + 1.0im +$(repr(bigfloatconvert(1//3, 128))) + 1.0im julia> precisionconvert(Float16, [[m/n for n in 1:3] for m in 1:3]) 3-element $(repr(Vector{Vector{Float16}})): @@ -131,10 +137,4 @@ precisionconvert(::Type{BigFloat}, x::Real, prec) = bigfloatconvert(x, prec) precisionconvert(::Type{BigFloat}, x::Complex, prec) = Complex(bigfloatconvert(real(x), prec), bigfloatconvert(imag(x), prec)) precisionconvert(::Type{BigFloat}, A, prec) = precisionconvert.(BigFloat, A, prec) -@static if VERSION < v"1.10" - @inline bigfloatconvert(x, prec) = BigFloat(x, prec) -else - @inline bigfloatconvert(x, prec) = BigFloat(x, precision = prec) -end - end