numeric.pyi 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. """
  2. Tests for :mod:`_core.numeric`.
  3. Does not include tests which fall under ``array_constructors``.
  4. """
  5. from typing import Any
  6. import numpy as np
  7. import numpy.typing as npt
  8. from typing_extensions import assert_type
  9. class SubClass(npt.NDArray[np.int64]):
  10. ...
  11. i8: np.int64
  12. AR_b: npt.NDArray[np.bool]
  13. AR_u8: npt.NDArray[np.uint64]
  14. AR_i8: npt.NDArray[np.int64]
  15. AR_f8: npt.NDArray[np.float64]
  16. AR_c16: npt.NDArray[np.complex128]
  17. AR_m: npt.NDArray[np.timedelta64]
  18. AR_O: npt.NDArray[np.object_]
  19. B: list[int]
  20. C: SubClass
  21. assert_type(np.count_nonzero(i8), int)
  22. assert_type(np.count_nonzero(AR_i8), int)
  23. assert_type(np.count_nonzero(B), int)
  24. assert_type(np.count_nonzero(AR_i8, keepdims=True), npt.NDArray[np.intp])
  25. assert_type(np.count_nonzero(AR_i8, axis=0), Any)
  26. assert_type(np.isfortran(i8), bool)
  27. assert_type(np.isfortran(AR_i8), bool)
  28. assert_type(np.argwhere(i8), npt.NDArray[np.intp])
  29. assert_type(np.argwhere(AR_i8), npt.NDArray[np.intp])
  30. assert_type(np.flatnonzero(i8), npt.NDArray[np.intp])
  31. assert_type(np.flatnonzero(AR_i8), npt.NDArray[np.intp])
  32. assert_type(np.correlate(B, AR_i8, mode="valid"), npt.NDArray[np.signedinteger[Any]])
  33. assert_type(np.correlate(AR_i8, AR_i8, mode="same"), npt.NDArray[np.signedinteger[Any]])
  34. assert_type(np.correlate(AR_b, AR_b), npt.NDArray[np.bool])
  35. assert_type(np.correlate(AR_b, AR_u8), npt.NDArray[np.unsignedinteger[Any]])
  36. assert_type(np.correlate(AR_i8, AR_b), npt.NDArray[np.signedinteger[Any]])
  37. assert_type(np.correlate(AR_i8, AR_f8), npt.NDArray[np.floating[Any]])
  38. assert_type(np.correlate(AR_i8, AR_c16), npt.NDArray[np.complexfloating[Any, Any]])
  39. assert_type(np.correlate(AR_i8, AR_m), npt.NDArray[np.timedelta64])
  40. assert_type(np.correlate(AR_O, AR_O), npt.NDArray[np.object_])
  41. assert_type(np.convolve(B, AR_i8, mode="valid"), npt.NDArray[np.signedinteger[Any]])
  42. assert_type(np.convolve(AR_i8, AR_i8, mode="same"), npt.NDArray[np.signedinteger[Any]])
  43. assert_type(np.convolve(AR_b, AR_b), npt.NDArray[np.bool])
  44. assert_type(np.convolve(AR_b, AR_u8), npt.NDArray[np.unsignedinteger[Any]])
  45. assert_type(np.convolve(AR_i8, AR_b), npt.NDArray[np.signedinteger[Any]])
  46. assert_type(np.convolve(AR_i8, AR_f8), npt.NDArray[np.floating[Any]])
  47. assert_type(np.convolve(AR_i8, AR_c16), npt.NDArray[np.complexfloating[Any, Any]])
  48. assert_type(np.convolve(AR_i8, AR_m), npt.NDArray[np.timedelta64])
  49. assert_type(np.convolve(AR_O, AR_O), npt.NDArray[np.object_])
  50. assert_type(np.outer(i8, AR_i8), npt.NDArray[np.signedinteger[Any]])
  51. assert_type(np.outer(B, AR_i8), npt.NDArray[np.signedinteger[Any]])
  52. assert_type(np.outer(AR_i8, AR_i8), npt.NDArray[np.signedinteger[Any]])
  53. assert_type(np.outer(AR_i8, AR_i8, out=C), SubClass)
  54. assert_type(np.outer(AR_b, AR_b), npt.NDArray[np.bool])
  55. assert_type(np.outer(AR_b, AR_u8), npt.NDArray[np.unsignedinteger[Any]])
  56. assert_type(np.outer(AR_i8, AR_b), npt.NDArray[np.signedinteger[Any]])
  57. assert_type(np.convolve(AR_i8, AR_f8), npt.NDArray[np.floating[Any]])
  58. assert_type(np.outer(AR_i8, AR_c16), npt.NDArray[np.complexfloating[Any, Any]])
  59. assert_type(np.outer(AR_i8, AR_m), npt.NDArray[np.timedelta64])
  60. assert_type(np.outer(AR_O, AR_O), npt.NDArray[np.object_])
  61. assert_type(np.tensordot(B, AR_i8), npt.NDArray[np.signedinteger[Any]])
  62. assert_type(np.tensordot(AR_i8, AR_i8), npt.NDArray[np.signedinteger[Any]])
  63. assert_type(np.tensordot(AR_i8, AR_i8, axes=0), npt.NDArray[np.signedinteger[Any]])
  64. assert_type(np.tensordot(AR_i8, AR_i8, axes=(0, 1)), npt.NDArray[np.signedinteger[Any]])
  65. assert_type(np.tensordot(AR_b, AR_b), npt.NDArray[np.bool])
  66. assert_type(np.tensordot(AR_b, AR_u8), npt.NDArray[np.unsignedinteger[Any]])
  67. assert_type(np.tensordot(AR_i8, AR_b), npt.NDArray[np.signedinteger[Any]])
  68. assert_type(np.tensordot(AR_i8, AR_f8), npt.NDArray[np.floating[Any]])
  69. assert_type(np.tensordot(AR_i8, AR_c16), npt.NDArray[np.complexfloating[Any, Any]])
  70. assert_type(np.tensordot(AR_i8, AR_m), npt.NDArray[np.timedelta64])
  71. assert_type(np.tensordot(AR_O, AR_O), npt.NDArray[np.object_])
  72. assert_type(np.isscalar(i8), bool)
  73. assert_type(np.isscalar(AR_i8), bool)
  74. assert_type(np.isscalar(B), bool)
  75. assert_type(np.roll(AR_i8, 1), npt.NDArray[np.int64])
  76. assert_type(np.roll(AR_i8, (1, 2)), npt.NDArray[np.int64])
  77. assert_type(np.roll(B, 1), npt.NDArray[Any])
  78. assert_type(np.rollaxis(AR_i8, 0, 1), npt.NDArray[np.int64])
  79. assert_type(np.moveaxis(AR_i8, 0, 1), npt.NDArray[np.int64])
  80. assert_type(np.moveaxis(AR_i8, (0, 1), (1, 2)), npt.NDArray[np.int64])
  81. assert_type(np.cross(B, AR_i8), npt.NDArray[np.signedinteger[Any]])
  82. assert_type(np.cross(AR_i8, AR_i8), npt.NDArray[np.signedinteger[Any]])
  83. assert_type(np.cross(AR_b, AR_u8), npt.NDArray[np.unsignedinteger[Any]])
  84. assert_type(np.cross(AR_i8, AR_b), npt.NDArray[np.signedinteger[Any]])
  85. assert_type(np.cross(AR_i8, AR_f8), npt.NDArray[np.floating[Any]])
  86. assert_type(np.cross(AR_i8, AR_c16), npt.NDArray[np.complexfloating[Any, Any]])
  87. assert_type(np.cross(AR_O, AR_O), npt.NDArray[np.object_])
  88. assert_type(np.indices([0, 1, 2]), npt.NDArray[np.int_])
  89. assert_type(np.indices([0, 1, 2], sparse=True), tuple[npt.NDArray[np.int_], ...])
  90. assert_type(np.indices([0, 1, 2], dtype=np.float64), npt.NDArray[np.float64])
  91. assert_type(np.indices([0, 1, 2], sparse=True, dtype=np.float64), tuple[npt.NDArray[np.float64], ...])
  92. assert_type(np.indices([0, 1, 2], dtype=float), npt.NDArray[Any])
  93. assert_type(np.indices([0, 1, 2], sparse=True, dtype=float), tuple[npt.NDArray[Any], ...])
  94. assert_type(np.binary_repr(1), str)
  95. assert_type(np.base_repr(1), str)
  96. assert_type(np.allclose(i8, AR_i8), bool)
  97. assert_type(np.allclose(B, AR_i8), bool)
  98. assert_type(np.allclose(AR_i8, AR_i8), bool)
  99. assert_type(np.isclose(i8, i8), np.bool)
  100. assert_type(np.isclose(i8, AR_i8), npt.NDArray[np.bool])
  101. assert_type(np.isclose(B, AR_i8), npt.NDArray[np.bool])
  102. assert_type(np.isclose(AR_i8, AR_i8), npt.NDArray[np.bool])
  103. assert_type(np.array_equal(i8, AR_i8), bool)
  104. assert_type(np.array_equal(B, AR_i8), bool)
  105. assert_type(np.array_equal(AR_i8, AR_i8), bool)
  106. assert_type(np.array_equiv(i8, AR_i8), bool)
  107. assert_type(np.array_equiv(B, AR_i8), bool)
  108. assert_type(np.array_equiv(AR_i8, AR_i8), bool)