Skip to content

Commit 06fe0af

Browse files
committed
Add coverage for div
1 parent 0fcc5d0 commit 06fe0af

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

src/math.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ end
143143
############################## Same dimension as input ##################################
144144
for f in (
145145
:float, :abs, :real, :imag, :conj, :adjoint, :unsigned,
146-
:nextfloat, :prevfloat, :identity, :transpose,
146+
:nextfloat, :prevfloat, :identity, :transpose, :significand
147147
)
148148
@eval function Base.$f(q::UnionAbstractQuantity)
149149
return new_quantity(typeof(q), $f(ustrip(q)), dimension(q))
@@ -173,7 +173,7 @@ end
173173
function Base.round(::Type{Ti}, q::UnionAbstractQuantity, r::RoundingMode=RoundNearest) where {Ti<:Integer}
174174
return new_quantity(typeof(q), round(Ti, ustrip(q), r), dimension(q))
175175
end
176-
for f in (:floor, :trunc, :ceil, :significand)
176+
for f in (:floor, :trunc, :ceil)
177177
@eval begin
178178
function Base.$f(q::UnionAbstractQuantity)
179179
return new_quantity(typeof(q), $f(ustrip(q)), dimension(q))

test/unittests.jl

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1154,6 +1154,8 @@ end
11541154
for y in valid_inputs[end-3:end]
11551155
qy_dimensionless = Quantity(y, D)
11561156
qy_dimensions = Quantity(y, convert(D, dimension(u"m/s")))
1157+
@eval @test $f($y, $qx_dimensionless) == $f($y, $x)
1158+
@eval @test $f($qy_dimensionless, $x) == $f($y, $x)
11571159
@eval @test $f($qy_dimensionless, $qx_dimensionless) == $f($y, $x)
11581160
@eval @test $f($qy_dimensions, $qx_dimensions) == $f($y, $x)
11591161
@eval @test_throws DimensionError $f($qy_dimensions, $x)
@@ -1170,7 +1172,7 @@ end
11701172
:nextfloat, :prevfloat, :identity, :transpose,
11711173
:copysign, :flipsign, :mod, :modf,
11721174
:floor, :trunc, :ceil, :significand,
1173-
:ldexp, :round
1175+
:ldexp, :round,
11741176
)
11751177
for Q in (Quantity, GenericQuantity), D in (Dimensions, SymbolicDimensions), f in functions
11761178
T = f in (:abs, :real, :imag, :conj) ? ComplexF64 : Float64
@@ -1190,6 +1192,11 @@ end
11901192
qx_dimensions = Q(x, dim)
11911193
qy_dimensions = Q(y, dim)
11921194
@eval @test $f($qx_dimensions, $qy_dimensions) == $Q($f($x, $y), $dim)
1195+
if f in (:copysign, :flipsign, :mod)
1196+
# Also do test without dimensions
1197+
@eval @test $f($x, $qy_dimensions) == $f($x, $y)
1198+
@eval @test $f($qx_dimensions, $y) == $Q($f($x, $y), $dim)
1199+
end
11931200
end
11941201
end
11951202
elseif f == :unsigned
@@ -1198,7 +1205,7 @@ end
11981205
qx_dimensions = Q(x, dim)
11991206
@eval @test $f($qx_dimensions) == $Q($f($x), $dim)
12001207
end
1201-
elseif f == :round
1208+
elseif f in (:round, :floor, :trunc, :ceil)
12021209
for x in 5rand(T, 3) .- 2.5
12031210
dim = convert(D, dimension(u"m/s"))
12041211
qx_dimensions = Q(x, dim)
@@ -1227,3 +1234,16 @@ end
12271234
end
12281235
end
12291236
end
1237+
1238+
@testset "Test div" begin
1239+
for Q in (Quantity, GenericQuantity)
1240+
x = Q{Int}(10, length=1)
1241+
y = Q{Int}(3, mass=-1)
1242+
@test div(x, y) == Q{Int}(3, length=1, mass=1)
1243+
@test div(x, y, RoundFromZero) == Q{Int}(4, length=1, mass=1)
1244+
@test div(x, 3) == Q{Int}(3, length=1)
1245+
@test div(x, 3, RoundFromZero) == Q{Int}(4, length=1)
1246+
@test div(10, y) == Q{Int}(3, mass=1)
1247+
@test div(10, y, RoundFromZero) == Q{Int}(4, mass=1)
1248+
end
1249+
end

0 commit comments

Comments
 (0)