ufunclike.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from __future__ import annotations
  2. from typing import Any
  3. import numpy as np
  4. class Object:
  5. def __ceil__(self) -> Object:
  6. return self
  7. def __floor__(self) -> Object:
  8. return self
  9. def __ge__(self, value: object) -> bool:
  10. return True
  11. def __array__(self, dtype: np.typing.DTypeLike | None = None,
  12. copy: bool | None = None) -> np.ndarray[Any, np.dtype[np.object_]]:
  13. ret = np.empty((), dtype=object)
  14. ret[()] = self
  15. return ret
  16. AR_LIKE_b = [True, True, False]
  17. AR_LIKE_u = [np.uint32(1), np.uint32(2), np.uint32(3)]
  18. AR_LIKE_i = [1, 2, 3]
  19. AR_LIKE_f = [1.0, 2.0, 3.0]
  20. AR_LIKE_O = [Object(), Object(), Object()]
  21. AR_U: np.ndarray[Any, np.dtype[np.str_]] = np.zeros(3, dtype="U5")
  22. np.fix(AR_LIKE_b)
  23. np.fix(AR_LIKE_u)
  24. np.fix(AR_LIKE_i)
  25. np.fix(AR_LIKE_f)
  26. np.fix(AR_LIKE_O)
  27. np.fix(AR_LIKE_f, out=AR_U)
  28. np.isposinf(AR_LIKE_b)
  29. np.isposinf(AR_LIKE_u)
  30. np.isposinf(AR_LIKE_i)
  31. np.isposinf(AR_LIKE_f)
  32. np.isposinf(AR_LIKE_f, out=AR_U)
  33. np.isneginf(AR_LIKE_b)
  34. np.isneginf(AR_LIKE_u)
  35. np.isneginf(AR_LIKE_i)
  36. np.isneginf(AR_LIKE_f)
  37. np.isneginf(AR_LIKE_f, out=AR_U)