From a2d1e410f0a84108d63e580c206e4aecc217ce42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20A=2E=20Michel=C3=A9n=20Str=C3=B6fer?= Date: Mon, 3 Jul 2023 15:56:02 -0600 Subject: [PATCH] allow Periodic() to be used even when converting different units of same dimension --- src/derived.jl | 10 +++++++--- test/test_core_package.jl | 3 +++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/derived.jl b/src/derived.jl index dd9290e..3f1b5ec 100644 --- a/src/derived.jl +++ b/src/derived.jl @@ -76,6 +76,10 @@ julia> uconvert(u"radᵃ/s", 1u"Hz", Periodic()) ``` """ struct Periodic <: Equivalence end -@eqrelation Periodic (AngularVelocity / Frequency=2π * radᵃ) -@eqrelation Periodic (Frequency * Time=1) -@eqrelation Periodic (AngularVelocity * Time=2π * radᵃ) +@eqrelation Periodic (AngularVelocity / Frequency = 2π * radᵃ) +@eqrelation Periodic (Frequency * Time = 1) +@eqrelation Periodic (AngularVelocity * Time = 2π * radᵃ) +# so that it defaults to `uconvert` behavior +@eqrelation Periodic (AngularVelocity / AngularVelocity = 1) +@eqrelation Periodic (Frequency / Frequency = 1) +@eqrelation Periodic (Time / Time = 1) diff --git a/test/test_core_package.jl b/test/test_core_package.jl index 037ebe0..2e506d7 100644 --- a/test/test_core_package.jl +++ b/test/test_core_package.jl @@ -132,6 +132,9 @@ end @test uconvert(u"s", 10u"Hz", Periodic()) ≈ 0.1u"s" @test uconvert(u"s", 2u"radᵃ/s", Periodic()) ≈ (π)u"s" @test uconvert(u"radᵃ/s", (π)u"s", Periodic()) ≈ 2u"radᵃ/s" + @test uconvert(u"radᵃ/s", 10u"radᵃ/s", Periodic()) ≈ 10u"radᵃ/s" + @test uconvert(u"1/s", 10u"1/s", Periodic()) ≈ 10u"1/s" + @test uconvert(u"s", 10u"s", Periodic()) ≈ 10u"s" end @testset "DefaultSymbols" begin