@@ -1794,19 +1794,26 @@ def _check_binary_with_scalars(func_data, x1x2):
1794
1794
def _filter_zero (x ):
1795
1795
return x != 0 if dh .is_scalar (x ) else (not xp .any (x == 0 ))
1796
1796
1797
+ # workarounds for xp.copysign etc only available in 2023.12
1798
+ # Without it, test suite fails to import with ARRAY_API_VERSION=2022.12
1799
+ _xp_copysign = getattr (xp , "copysign" , None )
1800
+ _xp_hypot = getattr (xp , "hypot" , None )
1801
+ _xp_maximum = getattr (xp , "maximum" , None )
1802
+ _xp_minimum = getattr (xp , "minimum" , None )
1803
+
1797
1804
1798
1805
@pytest .mark .min_version ("2024.12" )
1799
1806
@pytest .mark .parametrize ('func_data' ,
1800
1807
# xp_func, name, refimpl, kwargs, expected_dtype
1801
1808
[
1802
1809
(xp .add , "add" , operator .add , {}, None ),
1803
1810
(xp .atan2 , "atan2" , math .atan2 , {}, None ),
1804
- (xp . copysign , "copysign" , math .copysign , {}, None ),
1811
+ (_xp_copysign , "copysign" , math .copysign , {}, None ),
1805
1812
(xp .divide , "divide" , operator .truediv , {"filter_" : lambda s : s != 0 }, None ),
1806
- (xp . hypot , "hypot" , math .hypot , {}, None ),
1813
+ (_xp_hypot , "hypot" , math .hypot , {}, None ),
1807
1814
(xp .logaddexp , "logaddexp" , logaddexp_refimpl , {}, None ),
1808
- (xp . maximum , "maximum" , max , {'strict_check' : True }, None ),
1809
- (xp . minimum , "minimum" , min , {'strict_check' : True }, None ),
1815
+ (_xp_maximum , "maximum" , max , {'strict_check' : True }, None ),
1816
+ (_xp_minimum , "minimum" , min , {'strict_check' : True }, None ),
1810
1817
(xp .multiply , "mul" , operator .mul , {}, None ),
1811
1818
(xp .subtract , "sub" , operator .sub , {}, None ),
1812
1819
0 commit comments