Skip to content

Commit 4162e06

Browse files
Handle measurement units
Due to JuliaPhysics/Measurements.jl#135
1 parent b8f5f47 commit 4162e06

File tree

5 files changed

+25
-1
lines changed

5 files changed

+25
-1
lines changed

Project.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Zygote = "0.6.56"
3232
julia = "1.6"
3333

3434
[extensions]
35+
RecursiveArrayToolsMeasurementsExt = "Measurements"
3536
RecursiveArrayToolsTrackerExt = "Tracker"
3637
RecursiveArrayToolsZygoteExt = "Zygote"
3738

@@ -40,6 +41,7 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
4041
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
4142
LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800"
4243
NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56"
44+
Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
4345
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
4446
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
4547
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
@@ -52,8 +54,9 @@ Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
5254
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"
5355

5456
[targets]
55-
test = ["SafeTestsets", "Aqua", "ForwardDiff", "LabelledArrays", "NLsolve", "OrdinaryDiffEq", "Pkg", "Test", "Unitful", "Random", "StaticArrays", "StructArrays", "Zygote"]
57+
test = ["SafeTestsets", "Aqua", "ForwardDiff", "LabelledArrays", "NLsolve", "OrdinaryDiffEq", "Pkg", "Test", "Unitful", "Random", "StaticArrays", "StructArrays", "Zygote", "Measurements"]
5658

5759
[weakdeps]
60+
Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
5861
Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
5962
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module RecursiveArrayToolsMeasurementsExt
2+
3+
import RecursiveArrayTools
4+
isdefined(Base, :get_extension) ? (import Measurements) : (import ..Measurements)
5+
6+
function RecursiveArrayTools.recursive_unitless_bottom_eltype(a::Type{<:Measurements.Measurement})
7+
typeof(oneunit(a))
8+
end
9+
10+
function RecursiveArrayTools.recursive_unitless_eltype(a::Type{<:Measurements.Measurement})
11+
typeof(oneunit(a))
12+
end
13+
14+
end

src/RecursiveArrayTools.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ Base.convert(T::Type{<:GPUArraysCore.AbstractGPUArray}, VA::AbstractVectorOfArra
3131
import Requires
3232
@static if !isdefined(Base, :get_extension)
3333
function __init__()
34+
Requires.@require Measurements="eff96d63-e80a-5855-80a2-b1b0885c5ab7" begin include("../ext/RecursiveArrayToolsMeasurementsExt.jl") end
3435
Requires.@require Tracker="9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" begin include("../ext/RecursiveArrayToolsTrackerExt.jl") end
3536
Requires.@require Zygote="e88e6eb3-aa80-5325-afca-941959d7151f" begin include("../ext/RecursiveArrayToolsZygoteExt.jl") end
3637
end

test/measurements.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
using RecursiveArrayTools, Measurements, Test
2+
3+
x = 1.0 ± 0.0
4+
@test recursive_unitless_bottom_eltype(x) isa Measurements.Measurement
5+
@test recursive_unitless_eltype(x) isa Measurements.Measurement

test/runtests.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ end
3333
@time @safetestset "Linear Algebra Tests" begin include("linalg.jl") end
3434
@time @safetestset "Upstream Tests" begin include("upstream.jl") end
3535
@time @safetestset "Adjoint Tests" begin include("adjoints.jl") end
36+
@time @safetestset "Measurement Tests" begin include("measurements.jl") end
3637
end
3738

3839
if !is_APPVEYOR && GROUP == "Downstream"

0 commit comments

Comments
 (0)