@@ -1487,13 +1487,13 @@ end
1487
1487
)
1488
1488
for x in valid_inputs[1 : 3 ]
1489
1489
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" )))
1491
1491
@eval @test $ f ($ qx_dimensionless) == $ f ($ x)
1492
1492
@eval @test_throws DimensionError $ f ($ qx_dimensions)
1493
1493
if f in (:atan , :atand )
1494
1494
for y in valid_inputs[end - 3 : end ]
1495
1495
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" )))
1497
1497
@eval @test $ f ($ y, $ qx_dimensionless) == $ f ($ y, $ x)
1498
1498
@eval @test $ f ($ qy_dimensionless, $ x) == $ f ($ y, $ x)
1499
1499
@eval @test $ f ($ qy_dimensionless, $ qx_dimensionless) == $ f ($ y, $ x)
@@ -1521,24 +1521,25 @@ end
1521
1521
T <: Complex && Q == RealQuantity && continue
1522
1522
if f == :modf # Functions that return multiple outputs
1523
1523
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" )))
1526
1525
num_outputs = 2
1527
1526
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 " )) )
1529
1528
end
1530
1529
end
1531
1530
elseif f in (:copysign , :flipsign , :rem , :mod ) # Functions that need multiple inputs
1532
1531
for x in 5 rand (T, 3 ) .- 2.5
1533
1532
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" ))
1538
1539
if f in (:copysign , :flipsign )
1539
1540
# Also do test without dimensions
1540
1541
@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 " ) )
1542
1543
elseif f in (:rem , :mod )
1543
1544
# Also do test without dimensions (need dimensionless)
1544
1545
qx_dimensionless = Q (x, D)
@@ -1550,31 +1551,28 @@ end
1550
1551
if f == :rem && VERSION >= v " 1.9"
1551
1552
# Can also do other rounding modes
1552
1553
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 " ) )
1554
1555
end
1555
1556
end
1556
1557
end
1557
1558
end
1558
1559
end
1559
1560
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" ))
1564
1564
end
1565
1565
elseif f in (:round , :floor , :trunc , :ceil )
1566
1566
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" ))
1571
1570
end
1572
1571
elseif f == :ldexp
1573
1572
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" )))
1576
1574
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 " ) )
1578
1576
end
1579
1577
end
1580
1578
else
@@ -1584,9 +1582,8 @@ end
1584
1582
5 rand (T, 100 ) .- 2.5
1585
1583
)
1586
1584
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" ))
1590
1587
end
1591
1588
end
1592
1589
end
@@ -1600,8 +1597,8 @@ end
1600
1597
y = 5 randn (10 ) .- 2.5
1601
1598
for Q in (RealQuantity, Quantity, GenericQuantity), D in (Dimensions, SymbolicDimensions), f in functions
1602
1599
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]
1605
1602
@eval @test all ($ f .($ qx_dimensions, $ qy_dimensions) .== $ ground_truth)
1606
1603
if f in (:isequal , :(== ))
1607
1604
# These include a dimension check in the result, rather than
@@ -1617,8 +1614,8 @@ end
1617
1614
@eval @test all ($ f .($ qx_dimensionless, $ y) .== $ ground_truth)
1618
1615
@eval @test all ($ f .($ x, $ qy_dimensionless) .== $ ground_truth)
1619
1616
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]
1622
1619
# Mixed quantity input
1623
1620
@eval @test all ($ f .($ qx_real_dimensions, $ qy_dimensions) .== $ ground_truth)
1624
1621
@eval @test all ($ f .($ qx_dimensions, $ qy_real_dimensions) .== $ ground_truth)
0 commit comments