Skip to content

Commit 5d79a34

Browse files
committed
Fix tests for unitful conversion
1 parent 8fd5b14 commit 5d79a34

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

src/utils.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Base.iszero(q::Quantity) = iszero(q.value)
3838
Base.getindex(d::Dimensions, k::Symbol) = getfield(d, k)
3939
Base.:(==)(l::Dimensions, r::Dimensions) = @all_dimensions(==, l, r)
4040
Base.:(==)(l::Quantity, r::Quantity) = l.value == r.value && l.dimensions == r.dimensions && l.valid == r.valid
41-
Base.:()(l::Quantity, r::Quantity) = l.value r.value && l.dimensions == r.dimensions && l.valid == r.valid
41+
Base.isapprox(l::Quantity, r::Quantity; kws...) = isapprox(l.value, r.value; kws...) && l.dimensions == r.dimensions && l.valid == r.valid
4242
Base.length(::Dimensions) = 1
4343
Base.length(::Quantity) = 1
4444
Base.iterate(d::Dimensions) = (d, nothing)

test/test_unitful.jl

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,23 @@ import SaferIntegers: SafeInt16
66
using Test
77

88
# Try to work with different preferred units:
9-
Unitful.preferunits(u"mA")
109
Unitful.preferunits(u"km")
1110

11+
risapprox(x::Unitful.Quantity, y::Unitful.Quantity; kws...) =
12+
let (xfloat, yfloat) = (Unitful.ustrip Unitful.upreferred).((x, y))
13+
return isapprox(xfloat, yfloat; kws...)
14+
end
15+
16+
factor_for_preferred_units = 1e-3
17+
1218
for T in [Float16, Float32, Float64], R in [Rational{Int16}, Rational{Int32}, SimpleRatio{Int}, SimpleRatio{SafeInt16}]
13-
x = DynamicQuantities.Quantity(T(0.2), R, length=1, amount=2, current=-1 // 2, luminosity=2 // 5)
14-
x_unitful = T(0.2)u"km*mol^2*A^(-1//2)*cd^(2//5)"
19+
x = DynamicQuantities.Quantity(T(0.2*factor_for_preferred_units), R, length=1, amount=2, current=-1 // 2, luminosity=2 // 5)
20+
x_unitful = T(0.2)u"m*mol^2*A^(-1//2)*cd^(2//5)"
1521

16-
@test convert(Unitful.Quantity, x) x_unitful
22+
@test risapprox(convert(Unitful.Quantity, x), x_unitful; atol=1e-6)
1723
@test typeof(convert(DynamicQuantities.Quantity, convert(Unitful.Quantity, x))) <: DynamicQuantities.Quantity{T,DynamicQuantities.DEFAULT_DIM_TYPE}
18-
@test convert(DynamicQuantities.Quantity{T,R}, convert(Unitful.Quantity, x)) x
24+
@test isapprox(convert(DynamicQuantities.Quantity, convert(Unitful.Quantity, x)), x; atol=1e-6)
25+
26+
@test isapprox(convert(DynamicQuantities.Quantity{T,R}, x_unitful), x; atol=1e-6)
27+
@test risapprox(convert(Unitful.Quantity, convert(DynamicQuantities.Quantity{T,R}, x_unitful)), Unitful.upreferred(x_unitful); atol=1e-6)
1928
end

0 commit comments

Comments
 (0)