@@ -1291,21 +1291,21 @@ end
12911291 withenv (" UNITFUL_FANCY_EXPONENTS" => false ) do
12921292 @static if VERSION ≥ v " 1.6.0-DEV.770"
12931293 @test string (typeof (1.0 m/ s)) ==
1294- " Quantity{Float64, 𝐋 𝐓^-1 , FreeUnits{(m, s^-1), 𝐋 𝐓^-1 , nothing}}"
1294+ " Quantity{Float64, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Time}(-1//1))}() , FreeUnits{(Unitful.Unit{:Meter, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}()}(0, 1//1), Unitful.Unit{:Second, Unitful.Dimensions{(Unitful.Dimension{:Time}(1//1),)}()}(0, -1//1)), Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Time}(-1//1))}() , nothing}}"
12951295 @test string (typeof (m/ s)) ==
1296- " FreeUnits{(m, s^-1), 𝐋 𝐓^-1 , nothing}"
1296+ " FreeUnits{(Unitful.Unit{:Meter, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}()}(0, 1//1), Unitful.Unit{:Second, Unitful.Dimensions{(Unitful.Dimension{:Time}(1//1),)}()}(0, -1//1)), Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Time}(-1//1))}() , nothing}"
12971297 else
12981298 @test string (typeof (1.0 m/ s)) ==
1299- " Quantity{Float64,𝐋 𝐓^-1, FreeUnits{(m, s^-1),𝐋 𝐓^-1, nothing}}"
1299+ " Quantity{Float64, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Time}(-1//1))}(), FreeUnits{(Unitful.Unit{:Meter, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}()}(0, 1//1), Unitful.Unit{:Second, Unitful.Dimensions{(Unitful.Dimension{:Time}(1//1),)}()}(0, -1//1)), Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Time}(-1//1))}(), nothing}}"
13001300 @test string (typeof (m/ s)) ==
1301- " FreeUnits{(m, s^-1),𝐋 𝐓^-1, nothing}"
1301+ " FreeUnits{(Unitful.Unit{:Meter, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}()}(0, 1//1), Unitful.Unit{:Second, Unitful.Dimensions{(Unitful.Dimension{:Time}(1//1),)}()}(0, -1//1)), Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Time}(-1//1))}(), nothing}"
13021302 end
13031303 @test string (dimension (1 u " m/s" )) == " 𝐋 𝐓^-1"
13041304 @test string (NoDims) == " NoDims"
13051305 end
13061306 @testset " :fancy_exponent IOContext property" begin
1307- @test sprint (io -> show ( IOContext (io, :fancy_exponent => true ), u " m/s " ) ) == " m s⁻¹"
1308- @test sprint (io -> show ( IOContext (io, :fancy_exponent => false ), u " m/s " ) ) == " m s^-1"
1307+ @test sprint (print, u " m/s " , context = :fancy_exponent => true ) == " m s⁻¹"
1308+ @test sprint (print, u " m/s " , context = :fancy_exponent => false ) == " m s^-1"
13091309 end
13101310end
13111311
@@ -1315,31 +1315,45 @@ Base.show(io::IO, ::MIME"text/plain", ::Foo) = print(io, "42.0")
13151315
13161316@testset " Show quantities" begin
13171317 withenv (" UNITFUL_FANCY_EXPONENTS" => false ) do
1318- @test repr (1.0 * u " m * s * kg^-1" ) == " 1.0 m s kg^-1 "
1318+ @test repr (1.0 * u " m * s * kg^-1" ) == " Quantity{Float64, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Mass}(-1//1), Unitful.Dimension{:Time}(1//1))}(), FreeUnits{(Unitful.Unit{:Gram, Unitful.Dimensions{(Unitful.Dimension{:Mass}(1//1),)}()}(3, -1//1), Unitful.Unit{:Meter, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}()}(0, 1//1), Unitful.Unit{:Second, Unitful.Dimensions{(Unitful.Dimension{:Time}(1//1),)}()}(0, 1//1)), Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Mass}(-1//1), Unitful.Dimension{:Time}(1//1))}(), nothing}}(1.0) "
13191319 @test repr (" text/plain" , 1.0 * u " m * s * kg^-1" ) == " 1.0 m s kg^-1"
1320- @test repr (Foo () * u " m * s * kg^-1" ) == " 1 m s kg^-1 "
1320+ @test repr (Foo () * u " m * s * kg^-1" ) == " Quantity{Foo, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Mass}(-1//1), Unitful.Dimension{:Time}(1//1))}(), FreeUnits{(Unitful.Unit{:Gram, Unitful.Dimensions{(Unitful.Dimension{:Mass}(1//1),)}()}(3, -1//1), Unitful.Unit{:Meter, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}()}(0, 1//1), Unitful.Unit{:Second, Unitful.Dimensions{(Unitful.Dimension{:Time}(1//1),)}()}(0, 1//1)), Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Mass}(-1//1), Unitful.Dimension{:Time}(1//1))}(), nothing}}(1) "
13211321 @test repr (" text/plain" , Foo () * u " m * s * kg^-1" ) == " 42.0 m s kg^-1"
13221322
13231323 # Complex quantities
1324- @test repr ((1 + 2im ) * u " m/s" ) == " (1 + 2im) m s^-1 "
1324+ @test repr ((1 + 2im ) * u " m/s" ) == " Quantity{Complex{Int64}, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Time}(-1//1))}(), FreeUnits{(Unitful.Unit{:Meter, Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1),)}()}(0, 1//1), Unitful.Unit{:Second, Unitful.Dimensions{(Unitful.Dimension{:Time}(1//1),)}()}(0, -1//1)), Unitful.Dimensions{(Unitful.Dimension{:Length}(1//1), Unitful.Dimension{:Time}(-1//1))}(), nothing}}(1 + 2im) "
13251325 @test repr (" text/plain" , (1 + 2im ) * u " m/s" ) == " (1 + 2im) m s^-1"
13261326
13271327 # Angular degree printing #253
1328- @test sprint (show, 1.0 °) == " 1.0° "
1328+ @test sprint (show, 1.0 °) == " Quantity{Float64, Unitful.Dimensions{()}(), FreeUnits{(Unitful.Unit{:Degree, Unitful.Dimensions{()}()}(0, 1//1),), Unitful.Dimensions{()}(), nothing}}(1.0) "
13291329 @test repr (" text/plain" , 1.0 °) == " 1.0°"
13301330
13311331 # Concise printing of ranges
1332- @test repr ((1 : 10 )* u " kg/m^3" ) == " (1:10) kg m^-3"
1333- @test repr ((1.0 : 0.1 : 10.0 )* u " kg/m^3" ) == " (1.0:0.1:10.0) kg m^-3"
1334- @test repr ((1 : 10 )* °) == " (1:10)°"
1332+ @test repr (" text/plain " , (1 : 10 )* u " kg/m^3" ) == " (1:10) kg m^-3"
1333+ @test repr (" text/plain " , (1.0 : 0.1 : 10.0 )* u " kg/m^3" ) == " (1.0:0.1:10.0) kg m^-3"
1334+ @test repr (" text/plain " , (1 : 10 )* °) == " (1:10)°"
13351335 end
13361336 withenv (" UNITFUL_FANCY_EXPONENTS" => true ) do
1337- @test repr (1.0 * u " m * s * kg^(-1//2)" ) == " 1.0 m s kg⁻¹ᐟ²"
1337+ @test repr (" text/plain " , 1.0 * u " m * s * kg^(-1//2)" ) == " 1.0 m s kg⁻¹ᐟ²"
13381338 end
13391339 withenv (" UNITFUL_FANCY_EXPONENTS" => nothing ) do
1340- @test repr (1.0 * u " m * s * kg^(-1//2)" ) ==
1340+ @test repr (" text/plain " , 1.0 * u " m * s * kg^(-1//2)" ) ==
13411341 (Sys. isapple () ? " 1.0 m s kg⁻¹ᐟ²" : " 1.0 m s kg^-1/2" )
13421342 end
1343+
1344+ @testset " roundtripping show" begin
1345+ u = u " m/s"
1346+ u2 = eval (Meta. parse (repr (u)))
1347+ @test u == u2
1348+
1349+ q = Quantity (5 , u " m" )
1350+ q2 = eval (Meta. parse (repr (q)))
1351+ @test q == q2
1352+
1353+ d = u " 𝐌*𝐋/𝐓^2"
1354+ d2 = eval (Meta. parse (repr (d)))
1355+ @test d == d2
1356+ end
13431357end
13441358
13451359@testset " DimensionError message" begin
@@ -1673,7 +1687,7 @@ end
16731687
16741688 @testset " > Display" begin
16751689 withenv (" UNITFUL_FANCY_EXPONENTS" => false ) do
1676- @test repr (3 u " dB/Hz" ) == " [3 dB] Hz^-1 "
1690+ @test repr (3 u " dB/Hz" ) == " Quantity{Gain{LogInfo{:Decibel, 10, 10}, :?, Int64}, Unitful.Dimensions{(Unitful.Dimension{:Time}(1//1),)}(), FreeUnits{(Unitful.Unit{:Hertz, Unitful.Dimensions{(Unitful.Dimension{:Time}(-1//1),)}()}(0, -1//1),), Unitful.Dimensions{(Unitful.Dimension{:Time}(1//1),)}(), nothing}}(Gain{LogInfo{:Decibel, 10, 10}, :?, Int64}(3)) "
16771691 @test repr (" text/plain" , 3 u " dB/Hz" ) == " [3 dB] Hz^-1"
16781692 end
16791693 @test Unitful. abbr (3 u " dBm" ) == " dBm"
0 commit comments