Skip to content

Commit a9a81e5

Browse files
authored
Merge pull request #80 from jkrumbiegel/jk/symbolic-conversion-error
Add informative error when converting symbolic dimensions to Unitful
2 parents 6769df1 + bfd9d0e commit a9a81e5

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

ext/DynamicQuantitiesUnitfulExt.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ Base.convert(::Type{Unitful.Quantity}, x::DynamicQuantities.Quantity) =
2828
validate_upreferred()
2929
cumulator = DynamicQuantities.ustrip(x)
3030
dims = DynamicQuantities.dimension(x)
31+
if dims isa DynamicQuantities.SymbolicDimensions
32+
throw(ArgumentError("Conversion of a `DynamicQuantities.Quantity` to a `Unitful.Quantity` is not defined with dimensions of type `SymbolicDimensions`. Instead, you can first use the `uexpand` function to convert the dimensions to their base SI form of type `Dimensions`, then convert this quantity to a `Unitful.Quantity`."))
33+
end
3134
equiv = unitful_equivalences()
3235
for dim in keys(dims)
3336
value = dims[dim]

test/test_unitful.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,8 @@ x = 1.0u"scale"
3838
@test typeof(x) <: Unitful.Quantity{Float64, MyScaleUnit.𝐒}
3939
@test_throws ErrorException convert(DynamicQuantities.Quantity, x)
4040
# These are not supported because there is no SI equivalency
41+
42+
# issue 79
43+
symbolic = DynamicQuantities.us"s"
44+
@test_throws ArgumentError convert(Unitful.Quantity, symbolic)
45+
@test convert(Unitful.Quantity, DynamicQuantities.uexpand(symbolic)) == 1.0 * Unitful.u"s"

0 commit comments

Comments
 (0)