@@ -82,6 +82,14 @@ def test_power() -> None:
8282 assert np .array_equal ((s * [1 , 2 , 3 ]) ** 2 , s * s * [1 , 4 , 9 ])
8383
8484
85+ def test_dimensionless_act_like_arrays () -> None :
86+ x = ValueArray (1.5 * np .arange (5 ), '' )
87+ y = ValueArray (1.5 * np .arange (5 ), 'us/ns' )
88+
89+ np .testing .assert_allclose (np .sqrt (x ), np .sqrt (1.5 * np .arange (5 )))
90+ np .testing .assert_allclose (np .sin (y ), np .sin (1.5 * np .arange (5 ) * 1000 ))
91+
92+
8593def test_repr () -> None :
8694 from tunits .units import km , kg , s
8795
@@ -206,18 +214,27 @@ def test_divison_with_dimensionless_preserves_ratios() -> None:
206214
207215
208216def test_units () -> None :
209- A , B = Value (np .random .random (10 ), 'GHz^2' ), Value (np .random .random (10 ), 'MHz/GHz' )
217+ A , B = ValueArray (np .random .random (10 ), 'GHz^2' ), ValueArray (np .random .random (10 ), 'MHz/GHz' )
210218 assert A .units == 'GHz^2'
211219 assert B .units == 'MHz/GHz'
212220
213221
214222def test_base_unit () -> None :
215- A , B = Value (np .random .random (10 ), 'GHz^2' ), Value (np .random .random (10 ), 'MHz/GHz' )
223+ A , B = ValueArray (np .random .random (10 ), 'GHz^2' ), ValueArray (np .random .random (10 ), 'MHz/GHz' )
216224 assert A .base_unit == Value (1 , 'Hz^2' )
217225 assert B .base_unit == Value (1 , '' )
218226
219227
220228def test_sign () -> None :
221229 for x in np .random .random ((10 , 3 , 4 )):
222- v = Value (x , 'ns' )
230+ v = ValueArray (x , 'ns' )
223231 np .testing .assert_equal (v .sign (), np .sign (x ))
232+
233+
234+ def test_dimensionless () -> None :
235+ A , B = ValueArray ([1 , 2 , 3 ], 'GHz^2' ), ValueArray (np .arange (5 ), 'MHz/GHz' )
236+
237+ with pytest .raises (ValueError ):
238+ _ = A .dimensionless ()
239+
240+ np .testing .assert_equal (B .dimensionless (), np .arange (5 ) / 1000 )
0 commit comments