comparisons.pyi 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. import numpy as np
  2. import fractions
  3. import decimal
  4. c16 = np.complex128()
  5. f8 = np.float64()
  6. i8 = np.int64()
  7. u8 = np.uint64()
  8. c8 = np.complex64()
  9. f4 = np.float32()
  10. i4 = np.int32()
  11. u4 = np.uint32()
  12. dt = np.datetime64(0, "D")
  13. td = np.timedelta64(0, "D")
  14. b_ = np.bool_()
  15. b = bool()
  16. c = complex()
  17. f = float()
  18. i = int()
  19. AR = np.array([0], dtype=np.int64)
  20. AR.setflags(write=False)
  21. SEQ = (0, 1, 2, 3, 4)
  22. # object-like comparisons
  23. reveal_type(i8 > fractions.Fraction(1, 5)) # E: Any
  24. reveal_type(i8 > [fractions.Fraction(1, 5)]) # E: Any
  25. reveal_type(i8 > decimal.Decimal("1.5")) # E: Any
  26. reveal_type(i8 > [decimal.Decimal("1.5")]) # E: Any
  27. # Time structures
  28. reveal_type(dt > dt) # E: bool_
  29. reveal_type(td > td) # E: bool_
  30. reveal_type(td > i) # E: bool_
  31. reveal_type(td > i4) # E: bool_
  32. reveal_type(td > i8) # E: bool_
  33. reveal_type(td > AR) # E: ndarray[Any, dtype[bool_]]
  34. reveal_type(td > SEQ) # E: ndarray[Any, dtype[bool_]]
  35. reveal_type(AR > SEQ) # E: ndarray[Any, dtype[bool_]]
  36. reveal_type(AR > td) # E: ndarray[Any, dtype[bool_]]
  37. reveal_type(SEQ > td) # E: ndarray[Any, dtype[bool_]]
  38. reveal_type(SEQ > AR) # E: ndarray[Any, dtype[bool_]]
  39. # boolean
  40. reveal_type(b_ > b) # E: bool_
  41. reveal_type(b_ > b_) # E: bool_
  42. reveal_type(b_ > i) # E: bool_
  43. reveal_type(b_ > i8) # E: bool_
  44. reveal_type(b_ > i4) # E: bool_
  45. reveal_type(b_ > u8) # E: bool_
  46. reveal_type(b_ > u4) # E: bool_
  47. reveal_type(b_ > f) # E: bool_
  48. reveal_type(b_ > f8) # E: bool_
  49. reveal_type(b_ > f4) # E: bool_
  50. reveal_type(b_ > c) # E: bool_
  51. reveal_type(b_ > c16) # E: bool_
  52. reveal_type(b_ > c8) # E: bool_
  53. reveal_type(b_ > AR) # E: ndarray[Any, dtype[bool_]]
  54. reveal_type(b_ > SEQ) # E: ndarray[Any, dtype[bool_]]
  55. # Complex
  56. reveal_type(c16 > c16) # E: bool_
  57. reveal_type(c16 > f8) # E: bool_
  58. reveal_type(c16 > i8) # E: bool_
  59. reveal_type(c16 > c8) # E: bool_
  60. reveal_type(c16 > f4) # E: bool_
  61. reveal_type(c16 > i4) # E: bool_
  62. reveal_type(c16 > b_) # E: bool_
  63. reveal_type(c16 > b) # E: bool_
  64. reveal_type(c16 > c) # E: bool_
  65. reveal_type(c16 > f) # E: bool_
  66. reveal_type(c16 > i) # E: bool_
  67. reveal_type(c16 > AR) # E: ndarray[Any, dtype[bool_]]
  68. reveal_type(c16 > SEQ) # E: ndarray[Any, dtype[bool_]]
  69. reveal_type(c16 > c16) # E: bool_
  70. reveal_type(f8 > c16) # E: bool_
  71. reveal_type(i8 > c16) # E: bool_
  72. reveal_type(c8 > c16) # E: bool_
  73. reveal_type(f4 > c16) # E: bool_
  74. reveal_type(i4 > c16) # E: bool_
  75. reveal_type(b_ > c16) # E: bool_
  76. reveal_type(b > c16) # E: bool_
  77. reveal_type(c > c16) # E: bool_
  78. reveal_type(f > c16) # E: bool_
  79. reveal_type(i > c16) # E: bool_
  80. reveal_type(AR > c16) # E: ndarray[Any, dtype[bool_]]
  81. reveal_type(SEQ > c16) # E: ndarray[Any, dtype[bool_]]
  82. reveal_type(c8 > c16) # E: bool_
  83. reveal_type(c8 > f8) # E: bool_
  84. reveal_type(c8 > i8) # E: bool_
  85. reveal_type(c8 > c8) # E: bool_
  86. reveal_type(c8 > f4) # E: bool_
  87. reveal_type(c8 > i4) # E: bool_
  88. reveal_type(c8 > b_) # E: bool_
  89. reveal_type(c8 > b) # E: bool_
  90. reveal_type(c8 > c) # E: bool_
  91. reveal_type(c8 > f) # E: bool_
  92. reveal_type(c8 > i) # E: bool_
  93. reveal_type(c8 > AR) # E: ndarray[Any, dtype[bool_]]
  94. reveal_type(c8 > SEQ) # E: ndarray[Any, dtype[bool_]]
  95. reveal_type(c16 > c8) # E: bool_
  96. reveal_type(f8 > c8) # E: bool_
  97. reveal_type(i8 > c8) # E: bool_
  98. reveal_type(c8 > c8) # E: bool_
  99. reveal_type(f4 > c8) # E: bool_
  100. reveal_type(i4 > c8) # E: bool_
  101. reveal_type(b_ > c8) # E: bool_
  102. reveal_type(b > c8) # E: bool_
  103. reveal_type(c > c8) # E: bool_
  104. reveal_type(f > c8) # E: bool_
  105. reveal_type(i > c8) # E: bool_
  106. reveal_type(AR > c8) # E: ndarray[Any, dtype[bool_]]
  107. reveal_type(SEQ > c8) # E: ndarray[Any, dtype[bool_]]
  108. # Float
  109. reveal_type(f8 > f8) # E: bool_
  110. reveal_type(f8 > i8) # E: bool_
  111. reveal_type(f8 > f4) # E: bool_
  112. reveal_type(f8 > i4) # E: bool_
  113. reveal_type(f8 > b_) # E: bool_
  114. reveal_type(f8 > b) # E: bool_
  115. reveal_type(f8 > c) # E: bool_
  116. reveal_type(f8 > f) # E: bool_
  117. reveal_type(f8 > i) # E: bool_
  118. reveal_type(f8 > AR) # E: ndarray[Any, dtype[bool_]]
  119. reveal_type(f8 > SEQ) # E: ndarray[Any, dtype[bool_]]
  120. reveal_type(f8 > f8) # E: bool_
  121. reveal_type(i8 > f8) # E: bool_
  122. reveal_type(f4 > f8) # E: bool_
  123. reveal_type(i4 > f8) # E: bool_
  124. reveal_type(b_ > f8) # E: bool_
  125. reveal_type(b > f8) # E: bool_
  126. reveal_type(c > f8) # E: bool_
  127. reveal_type(f > f8) # E: bool_
  128. reveal_type(i > f8) # E: bool_
  129. reveal_type(AR > f8) # E: ndarray[Any, dtype[bool_]]
  130. reveal_type(SEQ > f8) # E: ndarray[Any, dtype[bool_]]
  131. reveal_type(f4 > f8) # E: bool_
  132. reveal_type(f4 > i8) # E: bool_
  133. reveal_type(f4 > f4) # E: bool_
  134. reveal_type(f4 > i4) # E: bool_
  135. reveal_type(f4 > b_) # E: bool_
  136. reveal_type(f4 > b) # E: bool_
  137. reveal_type(f4 > c) # E: bool_
  138. reveal_type(f4 > f) # E: bool_
  139. reveal_type(f4 > i) # E: bool_
  140. reveal_type(f4 > AR) # E: ndarray[Any, dtype[bool_]]
  141. reveal_type(f4 > SEQ) # E: ndarray[Any, dtype[bool_]]
  142. reveal_type(f8 > f4) # E: bool_
  143. reveal_type(i8 > f4) # E: bool_
  144. reveal_type(f4 > f4) # E: bool_
  145. reveal_type(i4 > f4) # E: bool_
  146. reveal_type(b_ > f4) # E: bool_
  147. reveal_type(b > f4) # E: bool_
  148. reveal_type(c > f4) # E: bool_
  149. reveal_type(f > f4) # E: bool_
  150. reveal_type(i > f4) # E: bool_
  151. reveal_type(AR > f4) # E: ndarray[Any, dtype[bool_]]
  152. reveal_type(SEQ > f4) # E: ndarray[Any, dtype[bool_]]
  153. # Int
  154. reveal_type(i8 > i8) # E: bool_
  155. reveal_type(i8 > u8) # E: bool_
  156. reveal_type(i8 > i4) # E: bool_
  157. reveal_type(i8 > u4) # E: bool_
  158. reveal_type(i8 > b_) # E: bool_
  159. reveal_type(i8 > b) # E: bool_
  160. reveal_type(i8 > c) # E: bool_
  161. reveal_type(i8 > f) # E: bool_
  162. reveal_type(i8 > i) # E: bool_
  163. reveal_type(i8 > AR) # E: ndarray[Any, dtype[bool_]]
  164. reveal_type(i8 > SEQ) # E: ndarray[Any, dtype[bool_]]
  165. reveal_type(u8 > u8) # E: bool_
  166. reveal_type(u8 > i4) # E: bool_
  167. reveal_type(u8 > u4) # E: bool_
  168. reveal_type(u8 > b_) # E: bool_
  169. reveal_type(u8 > b) # E: bool_
  170. reveal_type(u8 > c) # E: bool_
  171. reveal_type(u8 > f) # E: bool_
  172. reveal_type(u8 > i) # E: bool_
  173. reveal_type(u8 > AR) # E: ndarray[Any, dtype[bool_]]
  174. reveal_type(u8 > SEQ) # E: ndarray[Any, dtype[bool_]]
  175. reveal_type(i8 > i8) # E: bool_
  176. reveal_type(u8 > i8) # E: bool_
  177. reveal_type(i4 > i8) # E: bool_
  178. reveal_type(u4 > i8) # E: bool_
  179. reveal_type(b_ > i8) # E: bool_
  180. reveal_type(b > i8) # E: bool_
  181. reveal_type(c > i8) # E: bool_
  182. reveal_type(f > i8) # E: bool_
  183. reveal_type(i > i8) # E: bool_
  184. reveal_type(AR > i8) # E: ndarray[Any, dtype[bool_]]
  185. reveal_type(SEQ > i8) # E: ndarray[Any, dtype[bool_]]
  186. reveal_type(u8 > u8) # E: bool_
  187. reveal_type(i4 > u8) # E: bool_
  188. reveal_type(u4 > u8) # E: bool_
  189. reveal_type(b_ > u8) # E: bool_
  190. reveal_type(b > u8) # E: bool_
  191. reveal_type(c > u8) # E: bool_
  192. reveal_type(f > u8) # E: bool_
  193. reveal_type(i > u8) # E: bool_
  194. reveal_type(AR > u8) # E: ndarray[Any, dtype[bool_]]
  195. reveal_type(SEQ > u8) # E: ndarray[Any, dtype[bool_]]
  196. reveal_type(i4 > i8) # E: bool_
  197. reveal_type(i4 > i4) # E: bool_
  198. reveal_type(i4 > i) # E: bool_
  199. reveal_type(i4 > b_) # E: bool_
  200. reveal_type(i4 > b) # E: bool_
  201. reveal_type(i4 > AR) # E: ndarray[Any, dtype[bool_]]
  202. reveal_type(i4 > SEQ) # E: ndarray[Any, dtype[bool_]]
  203. reveal_type(u4 > i8) # E: bool_
  204. reveal_type(u4 > i4) # E: bool_
  205. reveal_type(u4 > u8) # E: bool_
  206. reveal_type(u4 > u4) # E: bool_
  207. reveal_type(u4 > i) # E: bool_
  208. reveal_type(u4 > b_) # E: bool_
  209. reveal_type(u4 > b) # E: bool_
  210. reveal_type(u4 > AR) # E: ndarray[Any, dtype[bool_]]
  211. reveal_type(u4 > SEQ) # E: ndarray[Any, dtype[bool_]]
  212. reveal_type(i8 > i4) # E: bool_
  213. reveal_type(i4 > i4) # E: bool_
  214. reveal_type(i > i4) # E: bool_
  215. reveal_type(b_ > i4) # E: bool_
  216. reveal_type(b > i4) # E: bool_
  217. reveal_type(AR > i4) # E: ndarray[Any, dtype[bool_]]
  218. reveal_type(SEQ > i4) # E: ndarray[Any, dtype[bool_]]
  219. reveal_type(i8 > u4) # E: bool_
  220. reveal_type(i4 > u4) # E: bool_
  221. reveal_type(u8 > u4) # E: bool_
  222. reveal_type(u4 > u4) # E: bool_
  223. reveal_type(b_ > u4) # E: bool_
  224. reveal_type(b > u4) # E: bool_
  225. reveal_type(i > u4) # E: bool_
  226. reveal_type(AR > u4) # E: ndarray[Any, dtype[bool_]]
  227. reveal_type(SEQ > u4) # E: ndarray[Any, dtype[bool_]]