@@ -1487,13 +1487,13 @@ end
14871487 )
14881488 for x in valid_inputs[1 : 3 ]
14891489 qx_dimensionless = Q (x, D)
1490- qx_dimensions = Q (x, convert (D , dimension (u " m/s" )))
1490+ qx_dimensions = convert ( with_type_parameters (Q, Float64, D), Q (x , dimension (u " m/s" )))
14911491 @eval @test $ f ($ qx_dimensionless) == $ f ($ x)
14921492 @eval @test_throws DimensionError $ f ($ qx_dimensions)
14931493 if f in (:atan , :atand )
14941494 for y in valid_inputs[end - 3 : end ]
14951495 qy_dimensionless = Q (y, D)
1496- qy_dimensions = Q (y, convert (D , dimension (u " m/s" )))
1496+ qy_dimensions = convert ( with_type_parameters (Q, Float64, D), Q (y , dimension (u " m/s" )))
14971497 @eval @test $ f ($ y, $ qx_dimensionless) == $ f ($ y, $ x)
14981498 @eval @test $ f ($ qy_dimensionless, $ x) == $ f ($ y, $ x)
14991499 @eval @test $ f ($ qy_dimensionless, $ qx_dimensionless) == $ f ($ y, $ x)
@@ -1521,24 +1521,25 @@ end
15211521 T <: Complex && Q == RealQuantity && continue
15221522 if f == :modf # Functions that return multiple outputs
15231523 for x in 5 rand (T, 3 ) .- 2.5
1524- dim = convert (D, dimension (u " m/s" ))
1525- qx_dimensions = Q (x, dim)
1524+ qx_dimensions = convert (with_type_parameters (Q, T, D), Q (x, dimension (u " m/s" )))
15261525 num_outputs = 2
15271526 for i= 1 : num_outputs
1528- @eval @test $ f ($ qx_dimensions)[$ i] == $ Q ($ f ($ x)[$ i], $ dim )
1527+ @eval @test $ f ($ qx_dimensions)[$ i] == $ Q ($ f ($ x)[$ i], $ ( dimension ( u " m/s " )) )
15291528 end
15301529 end
15311530 elseif f in (:copysign , :flipsign , :rem , :mod ) # Functions that need multiple inputs
15321531 for x in 5 rand (T, 3 ) .- 2.5
15331532 for y in 5 rand (T, 3 ) .- 2.5
1534- dim = convert (D, dimension (u " m/s" ))
1535- qx_dimensions = Q (x, dim)
1536- qy_dimensions = Q (y, dim)
1537- @eval @test $ f ($ qx_dimensions, $ qy_dimensions) == $ Q ($ f ($ x, $ y), $ dim)
1533+ # dim = convert(D, dimension(u"m/s"))
1534+ # qx_dimensions = Q(x, dim)
1535+ # qy_dimensions = Q(y, dim)
1536+ qx_dimensions = convert (with_type_parameters (Q, T, D), Q (x, dimension (u " m/s" )))
1537+ qy_dimensions = convert (with_type_parameters (Q, T, D), Q (y, dimension (u " m/s" )))
1538+ @eval @test $ f ($ qx_dimensions, $ qy_dimensions) == $ Q ($ f ($ x, $ y), dimension (u " m/s" ))
15381539 if f in (:copysign , :flipsign )
15391540 # Also do test without dimensions
15401541 @eval @test $ f ($ x, $ qy_dimensions) == $ f ($ x, $ y)
1541- @eval @test $ f ($ qx_dimensions, $ y) == $ Q ($ f ($ x, $ y), $ dim )
1542+ @eval @test $ f ($ qx_dimensions, $ y) == $ Q ($ f ($ x, $ y), dimension ( u " m/s " ) )
15421543 elseif f in (:rem , :mod )
15431544 # Also do test without dimensions (need dimensionless)
15441545 qx_dimensionless = Q (x, D)
@@ -1550,31 +1551,28 @@ end
15501551 if f == :rem && VERSION >= v " 1.9"
15511552 # Can also do other rounding modes
15521553 for r in (:RoundFromZero , :RoundNearest , :RoundUp , :RoundDown )
1553- @eval @test $ f ($ qx_dimensions, $ qy_dimensions, $ r) ≈ $ Q ($ f ($ x, $ y, $ r), $ dim )
1554+ @eval @test $ f ($ qx_dimensions, $ qy_dimensions, $ r) ≈ $ Q ($ f ($ x, $ y, $ r), dimension ( u " m/s " ) )
15541555 end
15551556 end
15561557 end
15571558 end
15581559 end
15591560 elseif f == :unsigned
1560- for x in 5 rand (- 10 : 10 , 3 )
1561- dim = convert (D, dimension (u " m/s" ))
1562- qx_dimensions = Q (x, dim)
1563- @eval @test $ f ($ qx_dimensions) == $ Q ($ f ($ x), $ dim)
1561+ for x in 5 rand (10 : 50 , 3 )
1562+ qx_dimensions = convert (with_type_parameters (Q, typeof (x), D), Q (x, dimension (u " m/s" )))
1563+ @eval @test $ f ($ qx_dimensions) == $ Q ($ f ($ x), dimension (u " m/s" ))
15641564 end
15651565 elseif f in (:round , :floor , :trunc , :ceil )
15661566 for x in 5 rand (T, 3 ) .- 2.5
1567- dim = convert (D, dimension (u " m/s" ))
1568- qx_dimensions = Q (x, dim)
1569- @eval @test $ f ($ qx_dimensions) == $ Q ($ f ($ x), $ dim)
1570- @eval @test $ f (Int32, $ qx_dimensions) == $ Q ($ f (Int32, $ x), $ dim)
1567+ qx_dimensions = convert (with_type_parameters (Q, T, D), Q (x, dimension (u " m/s" )))
1568+ @eval @test $ f ($ qx_dimensions) == $ Q ($ f ($ x), dimension (u " m/s" ))
1569+ @eval @test $ f (Int32, $ qx_dimensions) == $ Q ($ f (Int32, $ x), dimension (u " m/s" ))
15711570 end
15721571 elseif f == :ldexp
15731572 for x in 5 rand (T, 3 ) .- 2.5
1574- dim = convert (D, dimension (u " m/s" ))
1575- qx_dimensions = Q (x, dim)
1573+ qx_dimensions = convert (with_type_parameters (Q, T, D), Q (x, dimension (u " m/s" )))
15761574 for i= 1 : 3
1577- @eval @test $ f ($ qx_dimensions, $ i) == $ Q ($ f ($ x, $ i), $ dim )
1575+ @eval @test $ f ($ qx_dimensions, $ i) == $ Q ($ f ($ x, $ i), dimension ( u " m/s " ) )
15781576 end
15791577 end
15801578 else
@@ -1584,9 +1582,8 @@ end
15841582 5 rand (T, 100 ) .- 2.5
15851583 )
15861584 for x in valid_inputs[1 : 3 ]
1587- dim = convert (D, dimension (u " m/s" ))
1588- qx_dimensions = Q (x, dim)
1589- @eval @test $ f ($ qx_dimensions) == $ Q ($ f ($ x), $ dim)
1585+ qx_dimensions = convert (with_type_parameters (Q, T, D), Q (x, dimension (u " m/s" )))
1586+ @eval @test $ f ($ qx_dimensions) == $ Q ($ f ($ x), dimension (u " m/s" ))
15901587 end
15911588 end
15921589 end
@@ -1600,8 +1597,8 @@ end
16001597 y = 5 randn (10 ) .- 2.5
16011598 for Q in (RealQuantity, Quantity, GenericQuantity), D in (Dimensions, SymbolicDimensions), f in functions
16021599 ground_truth = @eval $ f .($ x, $ y)
1603- qx_dimensions = [with_type_parameters (Q, Float64, D)(xi, dim ) for xi in x]
1604- qy_dimensions = [with_type_parameters (Q, Float64, D)(yi, dim ) for yi in y]
1600+ qx_dimensions = [convert ( with_type_parameters (Q, Float64, D), Q (xi, dimension ( u " m/s " )) ) for xi in x]
1601+ qy_dimensions = [convert ( with_type_parameters (Q, Float64, D), Q (yi, dimension ( u " m/s " )) ) for yi in y]
16051602 @eval @test all ($ f .($ qx_dimensions, $ qy_dimensions) .== $ ground_truth)
16061603 if f in (:isequal , :(== ))
16071604 # These include a dimension check in the result, rather than
@@ -1617,8 +1614,8 @@ end
16171614 @eval @test all ($ f .($ qx_dimensionless, $ y) .== $ ground_truth)
16181615 @eval @test all ($ f .($ x, $ qy_dimensionless) .== $ ground_truth)
16191616
1620- qx_real_dimensions = [RealQuantity (xi, dim ) for xi in x]
1621- qy_real_dimensions = [RealQuantity (yi, dim ) for yi in y]
1617+ qx_real_dimensions = [convert ( RealQuantity{Float64,D}, Quantity (xi, dimension ( u " m/s " )) ) for xi in x]
1618+ qy_real_dimensions = [convert ( RealQuantity{Float64,D}, Quantity (yi, dimension ( u " m/s " )) ) for yi in y]
16221619 # Mixed quantity input
16231620 @eval @test all ($ f .($ qx_real_dimensions, $ qy_dimensions) .== $ ground_truth)
16241621 @eval @test all ($ f .($ qx_dimensions, $ qy_real_dimensions) .== $ ground_truth)
0 commit comments